This section complements the [[InstallNotes]] with complete information
regarding the GRUB 2 boot loader. The syntax is different from GRUB Legacy aka
GRUB 1 (see below).
* `update-grub` is *Debian specific* and very useful. It will automatically
create a `/boot/grub/grub.cfg` file for the kernels in `/boot/` and for
OSes that it finds on various partitions, including GNU/Hurd.
* Make sure that GRUB 2's version is at least 20091130 and GNU Mach's version
is at least 20091020.
* Sample file:
menuentry "GNU/Linux" {
insmod ext2
set root=(hd0,12)
linux /boot/vmlinuz-2.6.32 root=/dev/hda12 ro
initrd /boot/initrd.img-2.6.32
}
menuentry "GNU" {
insmod ext2
set root=(hd0,16)
multiboot /boot/gnumach.gz root=device:hd0s16
module /hurd/ext2fs.static ext2fs --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 exec /hurd/exec '$(exec-task=task-create)'
}
---
**The following information may be outdated and should be revised.**
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.
* 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
-- [[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