Dual booting FreeBSD and Linux using GRUB fails

Mark Ovens parish at magichamster.com
Fri Aug 22 15:02:16 UTC 2008


I have an all-SCSI system with FreeBSD 6.3 on one disk and 7.0 on the 
other. It booted using GRUB and worked OK.

I installed Mandriva Linux on the disk that had 7.0 on it (replacing 7.0)

The setup now is:

SCSI ID 15 73GB /dev/sda - running FreeBSD
SCSI ID 14 36GB /dev/sdb - Mandriva

The device names above are as reported by Mandriva when doing the install.

Mandriva installed OK onto the 36GB HDD and wrote this menu.lst:

Code:
timeout 10
color black/cyan yellow/cyan
gfxmenu (hd0,0)/boot/gfxmenu
default 0

title linux
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux 
root=UUID=77a15e0a-b9f5-46ab-8236-886418dbbfd8  resume=/dev/sdb5 
splash=silent vga=788
initrd (hd0,0)/boot/initrd.img

title linux-nonfb
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux-nonfb 
root=UUID=77a15e0a-b9f5-46ab-8236-886418dbbfd8  resume=/dev/sdb5
initrd (hd0,0)/boot/initrd.img

title failsafe
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=failsafe 
root=UUID=77a15e0a-b9f5-46ab-8236-886418dbbfd8  failsafe
initrd (hd0,0)/boot/initrd.img


Note that it has used hd0 even though the disk is /dev/sdb (which 
implies the second disk).

The problem is that when it boots the Adaptec SCSI BIOS searches for 
bootable drives from the highest SCSI ID downwards. Since the 73GB 
(FreeBSD) disk is id 15 it boots from that. That disk also has GRUB 
installed with an entry for FreeBSD which is also hd0. The FreeBSD entry 
works.

Because the disks are seen by the SCSI BIOS as id 15 first, id 14 
second, id 14 - the disk with Mandriva installed, is hd1 so I copied the 
Mandriva menu.lst file into the one on the FreeBSD partition and edited 
hd0 to hd1 (for both the lernel and initrd lines) but Mandriva won't 
boot, I get

Error 2: Bad File or Directory type

In fact, the FreeBSD GRUB seems unable to read the Linux disk - it knows 
it's there, but can't access anything on it.

I've tried numerous things as suggested on the Mandriva forums but 
nothing works:

grub> root (hd0,0,a)

   Filesystem type is ufs2, partition type is 0xa5

grub> cat /boot/grub/device.map

   (fd0)  /dev/fd0
   (hd0)  /dev/da0
   (hd1)  /dev/da1

grub> root (hd1,0)

   Filesystem type is ext2, partition type is 0x83

grub> cat /boot/grub/device.map

   Error 2: Bad file or directory type

grub> root (hd <TAB>
   Possible disks are: hd0 hd1

grub> root (hd1, <TAB>
   Possible partitions are:
     Partition num: 0, Filesystem type is ext2fs, partition type 0x83
     Partition num: 4, Filesystem type is unknown, partition type 0x82
     Partition num: 5, Filesystem type is ext2fs, partition type 0x83

grub> root (hd0, <TAB>
   Possible partitions are:
     Partition num: 0, [BSD sub-partitions immediately follow]
       BSD Partition num: 'a', Filesystem type is ufs2, partition type 0xa5
       BSD Partition num: 'b', Filesystem type is unknown, partition 
type 0xa5
       BSD Partition num: 'd', Filesystem type is ufs2, partition type 0xa5
       BSD Partition num: 'e', Filesystem type is ufs2, partition type 0xa5
       BSD Partition num: 'f', Filesystem type is ufs2, partition type 0xa5

Can anyone suggest how to make this work? The root of the problem is 
that both OSes think their disk is hd0.

Regards,

Mark


More information about the freebsd-questions mailing list