linux- doesn't boot

Bruce Dubbs bruce.dubbs at
Sun Nov 29 19:47:28 PST 2009

Alberto Hernando wrote:
> Hi.
> I've tried it, and:
> root:/boot/grub# grub-setup -r '(hd0,8)'
> No device is specified.

I gave incorrect advice before.  Try:

   grub-setup '(hd0)'


   grub-setup /dev/sda

The -r should not be there.  The syntax is:

   grub-setup [OPTION]... DEVICE

If you use -r, then that is an option and DEVICE is still required.
For instance, look at the entry:

menuentry "GNU/Linux, Linux" {
         insmod ext2
         set root=(hd0,1)
         linux   /linux- root=/dev/sda5 ro

In this example, the root partition is /dev/sda1 and is mounted as /boot.

If no 'set root' instruction is specified, it will use the default.  The 
default is set by the -r option or if not specified at all it will be 
guessed.   How you figure this all out is not really obvious.  I 
couldn't find any documentation about it, so I read the code.  :)

Note that the term root is overloaded and the 'set root' refers to the 
partition where grub should search for files which is something quite 
different from the root= parameter on the line starting with 'linux' 
which is the partition that the linux kernel mounts as /.

However both these 'root's can point to the same place.  It would look
something like:

menuentry "GNU/Linux, Linux" {
         insmod ext2
         set root=(hd0,5)
         linux   /boot/linux- root=/dev/sda5 ro

This is the case of a standard LFS build where /boot is just another 
directory in /.  As I wrote in the book, "Using the current lfs 
partition will also work, but configuration for multiple systems is more 

   -- Bruce

More information about the lfs-support mailing list