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. – a CVn 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! – Ryan Kennedy 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

