http://www.gnu.org/software/grub/
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-grubis Debian specific and very useful. It will automatically create a/boot/grub/grub.cfgfile 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 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
