[Courses][Linux commands] installing GRUB without a floppy disk
Carla Schroder
carla at bratgrrl.com
Fri Apr 16 11:55:39 EST 2004
One more GRUB thing: what these things mean in menu.lst:
title Libranet GNU/Linux, kernel 2.4.21
root (hd0,5)
kernel /boot/vmlinuz-2.4.21 root=/dev/hda6 ro
'title' is anything you want- you must have some kind of title, to identify
the entry, and to tell GRUB where the start of each entry is.
'root' is a continual source of confusion. Hopefully this will clear it up. In
GRUB-speak, 'root' points to the 'root device.' This has a dual meaning:
1. it points to the location of the boot images, usually a partition
containing /boot/grub/stage1
2. it also points to the root filesystem
So, the meaning of 'root' is entirely contextual. In menu.list, the 'root'
line means 'this is where /boot/grub/stage1 is'
On the 'kernel' line, 'root' means 'the root filesystem'
On a single-Linux system, this is easy. Most likely /boot is a directory on
your root filesystem:
$ ls /
bin cdrom dev floppy initrd mnt proc sbin tmp var
boot cdrom1 etc home lib opt root shared usr
$ ls /boot
System.map-2.4.21 boot grub config-2.4.21 splash.xpm.gz vmlinuz
vmlinuz-2.4.21
$ ls /boot/grub
device.map ffs_stage1_5 menu.lst.adminmenu-old reiserfs_stage1_5
vstafs_stage1_5
e2fs_stage1_5 jfs_stage1_5 menu.lst~ stage1
xfs_stage1_5
fat_stage1_5 menu.lst minix_stage1_5 stage2
So, this is simple- the boot images and kernel, or kernels, and root
filesystem are all on the same partition. On my Libranet system, this
is /dev/hda6. So my root device is (hd0,5) and the root filesystem, on the
kernel line, is root=/dev/hda6
If I install other Linuxes, and I do not have a separate /boot partition, then
the 'root' device is always on the root filesystem of each Linux. Let's say I
install another Linux on /dev/hda2. It looks like this:
title Fedora1
root (hd0,1)
kernel /boot/vmlinuz-2.4.24 root=/dev/hda2 ro
Now, if you have a separate /boot partition, the root device is always in
the /boot partition. I like to put it on /dev/hda1. So the above two entries
would look like this:
title Libranet GNU/Linux, kernel 2.4.21
root (hd0,0)
kernel /boot/vmlinuz-2.4.21 root=/dev/hda6 ro
title Fedora1
root (hd0,0)
kernel /boot/vmlinuz-2.4.24 root=/dev/hda2 ro
The kewlest bit is you can test this all out in GRUB's command shell, without
having to edit menu.lst until you have it all figured out.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Carla Schroder
this message brought to you
by Libranet 2.8 and Kmail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the Courses
mailing list