summaryrefslogtreecommitdiff
path: root/grub.mdwn
blob: 9327ecdf7d9b09c989273bb453f2b5a58c5d9f73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<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-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.
* <http://khazad.dyndns.org/packages/grub-disk/> contains a Debian packaged makefile for creating CD &amp; floppy images. Looks like it doesn't work properly. If you fix it, please send patches to the maintainer.
* essential GRUB commands &amp; 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