GRUB
This section complements the ?InstallNotes with complete information regarding the GRUB boot loader. The syntax is different from Lilo's and so to scratch my own itch I'm creating this quick reference. The Grub manual is another good reference.
- update-grub is Debian specific and very nice. It will automatically create a /boot/grub/menu.lst file for the kernels in /boot/. It will also append a manually configured set for other partitions like the GNU/Hurd.
- grub-floppy is a Debian specific boot floppy creation script.
- mkbimage is a Debian specific boot disk image creation script.
- http://khazad.dyndns.org/packages/grub-disk/ contains a Debian packaged makefile for creating CD & floppy images. Looks like it doesn't work properly. If you fix it, please send patches to the maintainer.
- essential GRUB commands & disk syntax
- root
- kernel
- module
- boot
sample file
title GNU/Linux root (hd0,11) kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro initrd /boot/initrd.img-2.4.18 savedefault
title GNU root (hd0,15) kernel /boot/oskit-mach root=device:hd0s16 -- module /hurd/ext2fs.static \ --multiboot-command-line=${kernel-command-line} \ --host-priv-port=${host-port} \ --device-master-port=${device-port} \ --exec-server-task=${exec-task} \ -T typed ${root} $(task-create) $(task-resume) module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) savedefault
title DOS rootnoverify (hd0,0) chainloader +1
-- ?GrantBow - 01 Oct 2002
-- ?GrantBow - 22 Dec 2002
Another example, just as good, but a lot easier to read. The backslash at the end of each line is to "escape" the enter-key. So make sure there are no spaces following the backslashes!
title GNU/Linux (Linux 2.4.18)
root (hd0,11)
kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro
initrd /boot/initrd.img-2.4.18
savedefault
title GNUmach 1.3
root (hd0,1)
kernel /boot/gnumach.gz root=device:hd0s2
module /hurd/ext2fs.static --readonly \
--multiboot-command-line=${kernel-command-line} \
--host-priv-port=${host-port} \
--device-master-port=${device-port} \
--exec-server-task=${exec-task} \
-T typed ${root} $(task-create) $(task-resume)
module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
title GNUmach 1.90 (CVS)
root (hd0,1)
kernel /boot/oskit-mach.gz root=device:hd0s2 --
module /hurd/ext2fs.static --readonly \
--multiboot-command-line=${kernel-command-line} \
--host-priv-port=${host-port} \
--device-master-port=${device-port} \
--exec-server-task=${exec-task} \
-T typed ${root} $(task-create) $(task-resume)
module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
Note the differences between GNUmach and OSKit-Mach. The latter needs the two dashes after the root specification!
-- ?JoachimNilsson - 09 Nov 2002
