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](http://www.gnu.org/software/grub/manual/grub.html) 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 -- [[Main/GrantBow]] - 01 Oct 2002 <br /> -- [[Main/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! -- [[Main/JoachimNilsson]] - 09 Nov 2002