While [Neal's install guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html) is very good it does not have complete information regarding the GRUB boot loader. The syntax is also different from Lilo's and so to scratch my own itch I'm creating this quick reference. The [Grub manual](http://www.gnu.org/manual/grub/html_mono/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. * contains a Debian packaged makefile for creating CD & floppy images. * 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/Hurd 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 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 (Kernel 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