I've got Arch Linux mostly installed, and I seem to have installed GRUB with no problem. My partition table looks like this:

                              cgdisk 0.8.7
                          Disk Drive: /dev/sda
                       Size: 625142448, 298.1 GiB

Part. #     Size        Partition Type              Partition Name
            1007.0 KiB  free space
   1        15.0 GiB    Linux filesystem            root
   2        1007.0 KiB  BIOS boot partition         bios
            17.0 KiB    free space
   3        283.1 GiB   Linux filesystem            home

After partitioning my drive like this, I ran:

root@archiso ~ # arch-chroot /mnt /bin/zsh
root@archiso [02:19:45] [/]
-> # grub-install --target=i386-pc --recheck /dev/sda
Installation finished. No error reported.

However, when I boot, I get


The underscore blinks, but I can't type anything. I still have access to the Arch installation by using the original install disk and chrooting into it, but obviously I don't want to do this every time I start up my laptop. What could possibly be preventing me from booting properly? I've made sure my partitions conform to what the GRUB page says I need, but to no avail.

For reference, I'm using the Arch Beginner's Guide and I've chronicled the epic story of how I spent my Saturday on my wiki.

  • 1
    I've never needed to specify --target for grub-install. Does it by any chance work better if you don't? Also, it seems a weird failure case for something like that, but I'd double-check /boot/grub/menu.lst to make sure it isn't broken, and maybe try using a GRUB device specifier such as (hd0) rather than /dev/sda.
    – user
    Oct 12 '13 at 22:33
  • Yes, it worked perfectly without --target. I did end up using /dev/sda to specify the device. After these changes, and an overdue adjustment to my fstab, it booted to a login shell. Thanks so much! Oct 13 '13 at 0:46

I notice that you are specifying the CPU architecture using the --target parameter to grub-install. This would normally not be needed, as you'd want to use the same architecture GRUB as your running system is using.

Unless you have some specific need like "cross-compiling" a boot device for a different architecture, you shouldn't need to specify --target at all.

It may also be worth using a GRUB device identifier rather than a Linux device node name to identify the place whereto install the boot loader. In your case, that would probably be (hd0) rather than /dev/sda.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.