Its not necessary to do so in BIOS, although it is likely cleaner if this is the only boot drive.
I currently have openSUSE-11.4, Tumbleweed-11.4 on sda and openSUSE-12.1 M2 on sdb. The mbr on sda has the PC boot the openSUSE-12.1 M2 partition on sdb. This (IMHO) is very messy, but it works. Its messy to boot Tumbleweed 12.1 (on sda) but clean to also boot openSUSE-11.4 (on sda).
Let me explain:
Here is my “fdisk -l” output:
stonehenge01:/home/oldcpu # fdisk -l
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bcd34
Device Boot Start End Blocks Id System
/dev/sda1 63 1044224 522081 6 FAT16
/dev/sda2 * 1044225 52243379 25599577+ 83 Linux
/dev/sda3 52243380 54283634 1020127+ 82 Linux swap / Solaris
/dev/sda4 54283635 625137344 285426855 5 Extended
/dev/sda5 54283698 515076029 230396166 83 Linux
/dev/sda6 515076093 566275184 25599546 83 Linux
/dev/sda7 566275248 625137344 29431048+ 83 Linux
Disk /dev/sdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders, total 320173056 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00070b93
Device Boot Start End Blocks Id System
/dev/sdb1 2048 52436991 26217472 83 Linux
/dev/sdb2 52436992 104871935 26217472 83 Linux
/dev/sdb3 104871936 110446591 2787328 82 Linux swap / Solaris
/dev/sdb4 110446592 320172031 104862720 f W95 Ext'd (LBA)
/dev/sdb5 110448640 215302143 52426752 83 Linux
/dev/sdb6 215304192 320143359 52419584 83 Linux
Note /sda2 is openSUSE-11.4. Note /sda6 is Tumbleweed-11.4. Note sdb1 is openSUSE-12.1 M2. By default the PC will boot openSUSE-12.1 M2, where this is the 12.1 M2 menu.lst:
# Modified by YaST2. Last modification on Thu Jun 23 10:26:17 CEST 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader
default 0
timeout 8
gfxmenu (hd1,0)/boot/message
###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 12.1 Milestone 2 - 2.6.39-2
root (hd1,0)
kernel /boot/vmlinuz-2.6.39-2-default root=/dev/disk/by-id/ata-Maxtor_6Y160P0_Y4319JDE-part1 resume=/dev/disk/by-id/ata-Maxtor_6Y160P0_Y4319JDE-part3 splash=silent quiet showopts vga=0x317
initrd /boot/initrd-2.6.39-2-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 12.1 Milestone 2 - 2.6.39-2
root (hd1,0)
kernel /boot/vmlinuz-2.6.39-2-default root=/dev/disk/by-id/ata-Maxtor_6Y160P0_Y4319JDE-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
initrd /boot/initrd-2.6.39-2-default
###Don't change this comment - YaST2 identifier: Original name: Linux other###
title Linux other
rootnoverify (hd0,1)
chainloader +1
###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
rootnoverify (fd0)
chainloader +1
If I choose 12.1 on (hd1,0) it boots !
If choose the “Linux other” it brings me to the grub boot menu.lst for /sda2, which gives me a choice of /sda2 (openSUSE-11.4) or /sda6 which brings me to the grub menu of Tumbleweed-11.4. I can boot Tumbleweed-11.4 from that.
I tried to add Tumbleweed-11.4 (on sda6) direct to the menu.lst of openSUSE-12.1 M2 (where that file is on sdb1) but that does not work. I get a memory (?) or out of range error(?) when I try to go direct to my Tumbleweed-11.4 (on sda6). I need to reach sda6 via the menu.lst on sda2. Sound confusing? Well yes it is confusing because I am confused, even though it works.
So this CAN be made to work, but it requires knowledge that is superior to what I currently possess to explain. I can only say I have it working, but not explain why nor how.