With two or more Linux installations, I always use grub, put the master installation in the MBR of the first boot device, chainload the other grub(s) from that menu.
I'm not sure how you want to handle your dual-boot but I recommend this method. One advantage is you never have to edit the bootloader menu for a new kernel, as long as your distribution kernel install scripts make the edit automatically.
This is the chainloader syntax I use:
Code: Select all
title 2010.1rc
root (hd1,0)
chainloader +1I've got six hard drives on three or four controllers and I've run into some confusion with how grub sees a partition. Also, I find grub invoked from the boot menu ("Press c for command line") will sometimes see a partition with a different number than the grub invoked after a kernel/OS is booted. To deal with that, one thing I will do is mark the / partition(s) by putting a file there. For example,
When booted in Fedora. Also, you can mount another installation / partition and mark it, for example:
Code: Select all
# mount /dev/sda1 /mnt/disk
# touch /mnt/disk/archThe mount point is arbitrary but it must exist and it should be unused, atm. Then, call the grub shell at the boot menu by pressing c:
Code: Select all
grub> find /shit
find /shit
(hd2,6)
grub>for example. Usually, quit grub with quit but I think you use Esc at the boot menu grub. The label file name is arbitrary but should be easy to remember and type.
You also need to know how grub sees your boot drive and you need to set the one you want. Each drive has an MBR and each partition has a boot sector. To install grub from the grub shell, you need to tell grub where the grub files are of the installation of interest, then where to install the grub code, to MBR or boot sector of a partition. Install the primary grub to MBR of the boot device, install the grub(s) you wish to chainload to the boot sector of the partition where that installations grub files are. For the secondary, chainloaded rc example on my machine:
Code: Select all
[root@localhost rolf]# grub
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> find /boot/grub/menu.lst
find /boot/grub/menu.lst
(hd2,5)
(hd3,0)
grub> root (hd3,0)
root (hd3,0)
Filesystem type is reiserfs, partition type 0x83
grub> setup (hd3,0)
setup (hd3,0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
Running "embed /boot/grub/reiserfs_stage1_5 (hd3,0)"... 20 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd3,0) (hd3,0)1+20 p (hd3,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
quit
[root@localhost rolf]#Here, grub was installed to the boot sector of my rc installation / partition. It is an example how, booted to 2010, grub sees it as (hd3,0), per the find command output, while I have to put (hd1,0) in the chainloader stanza of my master grub menu.lst, as that is how grub sees it at boot time, before any kernel or modules are loaded. To install my 2010 grub to MBR of the boot device:
Code: Select all
grub> root (hd2,5)
root (hd2,5)
Filesystem type is reiserfs, partition type 0x83
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
Running "embed /boot/grub/reiserfs_stage1_5 (hd0)"... 23 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 d (hd0) (hd0)1+23 p (hd2,5)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
quit
[root@localhost rolf]#You have to be sure what grub is seeing and the find command is a good way to double-check.