Differences between revisions 2 and 3
Revision 2 as of 2005-05-06 09:58:57
Size: 2358
Editor: anonymous
Comment:
Revision 3 as of 2005-05-06 14:34:03
Size: 3374
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 27: Line 27:
Please note that the paths are relative to the partion. If you have a /boot partition the you should write: Please note that the ''root'' command is not related to the root parameter for the linux kernel. ''root'' specifies the partition to look relative paths . If you have a /boot partition in (hd0,0) then
Line 29: Line 29:
 root (hd0,0)
Line 30: Line 31:
 initrd /initrd.img }}}

Is the same as
{{{
 kernel (hd0,0)/vmlinuz
Line 41: Line 46:
== Examples ==
=== Linux ===
Line 46: Line 53:
And press tab, if boot is found in that partition the line will be completed. This works also on the boot menu. For example, I have windoze in hda1 a /boot partition on hda2: And press tab, if boot is found in that partition the line will be completed. This works also on the boot menu. For example, I have windoze in hda1, a ''boot partition on hda2, and '' is in hda3
Line 53: Line 60:
  Possible files are: vmlinuz-2.6.10-1-k7 vmlinuz.old vmlinuz-2.6.11.old vmlinuz vmlinuz-2.6.11   Possible files are: vmlinuz-2.6.10-1-k7 vmlinuz
Line 56: Line 63:
So I see /boot is in hd0,1 I see /boot is in hd0,1. Then my lines are:
{{{
 tittle Linux
 root (hd0,1)
 kernel /vmlinuz root=/dev/hda3 vga=792
 initrd /initrd.img
}}}

=== Windows on hda1 ===
These are the lines I have to boot windoze, located at hda1
{{{
 title ["SuckingXP"]
 rootnoverify (hd0,0)
 makeactive
 chainloader +1
}}}

=== Windows in other place not in hda1 ===
If the disk order has changed the ms boot system gets confused and refuses to boot. If you have it in hdb1 this can solve the problem:
{{{
 title Windoze
  map (hd0) (hd1)
  map (hd1) (hd0)
  rootnoverify (hd1,0)
  makeactive
  chainloader +1
}}}

You can do more magic hiding partitions with the command ''hide''. For example, if it's in hda2
{{{
 title Windoze
  hide (hd0,0)
  rootnoverify (hd0,1)
  makeactive
  chainloader +1
}}}

> '''note: ms boot system has several critical holes, and its behaviour changes depending in version and patch level'''

GRUB


Configuration

The GRUB configuration file is /boot/grub/menu.lst. In some places you will see references to /etc/grub.conf, but that file does not exists in debian (note: at least not in my machine)

It must contain at least these lines:

 default=0
 timeout=30
 # To boot the default kernel
 title Debian Linux
 root (hd0,1)
 kernel /boot/vmlinuz root=LABEL=/
 initrd /boot/initrd.img

Quick command overview

  • default: the default OS to boot if you do not hit any key (surprised?). Note the first is the 0.

  • timeout: the time in seconds to wait before the default OS is booted.

  • tittle: the text that is going to appear in the menu. Starts a OS section until other tittle line is found.

  • root: the partition where /boot directory is. All paths will be relative to this partition, so we do not need to especify it for each file

  • kernel: the linux kernel image to load along with all the options for it

  • initrd: the initrd image to boot the kernel with.

Please note that the root command is not related to the root parameter for the linux kernel. root specifies the partition to look relative paths . If you have a /boot partition in (hd0,0) then

 root (hd0,0)
 kernel ''vmlinuz root=LABEL=''

Is the same as

 kernel (hd0,0)/vmlinuz

GRUB device and partition naming

Grub uses numbers to name hard disk and partitions begining with 0. This is a bit confusing for the linux user used to call hda1 the first disk - first partition. A simple table illustrates it:

linux

grub

First IDE bus, master

hda

hd0

First IDE bus, master, first primary partition

hda1

hd0,0

First IDE bus, slave, first extended partition

hdb5

hd1,4

Examples

Linux

If you do not know where /boot lives just exec grub and try to find a file, example:

 grub> kernel (hd0,1)/bo

And press tab, if boot is found in that partition the line will be completed. This works also on the boot menu. For example, I have windoze in hda1, a boot partition on hda2, and is in hda3

 grub> kernel (hd0,0)/vm (<- I press TAB here)
 Error 15: File not found

 grub> kernel (hd0,1)/vm (<- I press TAB again, then completes to vmlinuz)
  Possible files are: vmlinuz-2.6.10-1-k7 vmlinuz

I see /boot is in hd0,1. Then my lines are:

 tittle Linux
 root (hd0,1)
 kernel /vmlinuz root=/dev/hda3 vga=792
 initrd /initrd.img

Windows on hda1

These are the lines I have to boot windoze, located at hda1

 title ["SuckingXP"]
 rootnoverify (hd0,0)
 makeactive
 chainloader  +1

Windows in other place not in hda1

If the disk order has changed the ms boot system gets confused and refuses to boot. If you have it in hdb1 this can solve the problem:

 title Windoze
  map (hd0) (hd1)
  map (hd1) (hd0)
  rootnoverify (hd1,0)
  makeactive
  chainloader +1

You can do more magic hiding partitions with the command hide. For example, if it's in hda2

 title Windoze
  hide (hd0,0)
  rootnoverify (hd0,1)
  makeactive
  chainloader +1

> note: ms boot system has several critical holes, and its behaviour changes depending in version and patch level