First you can rename any slice on any partition (for FreeBSD based disklabels) or any drive (for OpenBSD/NetBSD based disklabels) by editing the disklabel with disklabel -e. I don’t rename mounted partitions on a running system though (but you can rename the slices in ad8s1 if you boot another FreeBSD from another partition/disk).
Second if you installed FreeBSD ‘normally’ on (hd2,0), it should have its root partition on ad8s1a. If you installed DesktopBSD ‘normally’ on (hd2,2) it should have its root partition on ad8s3a. Having the root partition on the ‘a’ slice is not required, but that’s where the bootstrap will normally look for the root device. If it is somewhere else you have to specify it at the bootprompt or hard code it in the kernel.
If you didn’t make mistakes (I don’t know) … I would say that maybe DesktopBSD might not be as clean as the other BSDs, ignore the active partition (some Unices care about that, some others don’t) and take the root device of the first 0xA5 partition it finds, your FreeBSD partition. That would explain why you were about to boot it by hiding this partition.
I don’t see a real solution but different hacks. However, recompiling DesktopBSD’s kernel with the option I gave you previously (which has been in the BSD kernel since the beginning) is a solution.
Other hacks/workaround would be :
-
install DesktopBSD on the first 0xA5 partition on a disk. FreeBSD doesn’t care. I have several FreeBSD on the same harddisk in different partitions. This has never been a problem.
-
Try the dirty trick of switching (hd2,0) and (hd2,2) entries in the partition table, so that (hd2,2) would appear as the first partition and (hd0,2) as the third partition. However if the trick works, you’ll have to edit /etc/fstab in both your BSDs before rebooting (change all ad8s1 in ad8s3 and vice versa). And if it does not work and you changed those names in /etc/fstab, you won’t be able to boot FreeBSD … So in the worst case you’ll need a third BSD which can mount your FreeBSD partition in order to repare /etc/fstab.
-
similarly rewrite (hd2,0) and (hd2,2) geometry (and back) from Grub before booting so that your DesktopBSD partition will appear fisrt in the partition table. The partitions offset and size below are of course an example. Same changes apply to /etc/fstab.
###Don't change this comment - YaST2 identifier: Original name: other###
title FreeBSD 8.1
partnew (hd2,0) 0xA5 514080 65593395
partnew (hd2,2) 0xA5 18539010 534016665
rootnoverify (hd2,0)
makeactive
chainloader +1
###Don't change this comment - YaST2 identifier: Original name: other###
title DesktopBSD-1.7-amd64
partnew **(hd2,2)** 0xA5 514080 65593395
partnew **(hd2,0)** 0xA5 18539010 534016665
rootnoverify (hd2,3)
makeactive
chainloader +1
- In Linux Grub change the partition ID of (hd0,2) in the entry booting (hd2,2) and back:
###Don't change this comment - YaST2 identifier: Original name: other###
title FreeBSD 8.1
parttype (hd2,0) 0xA5
rootnoverify (hd2,0)
makeactive
chainloader +1
###Don't change this comment - YaST2 identifier: Original name: other###
title DesktopBSD-1.7-amd64
**parttype (hd2,0) 0xA9**
rootnoverify (hd2,3)
makeactive
chainloader +1
If DesktopBSD is stupid (or clever) enough to look for its root device it what looks like a NetBSD partition (0xA9), try 0xA8 (Darwin UFS) … or 0x63 (GNU HURD) !
Although the third hack works (I’ve been using it on a daily - if not hourly basis - on a half a dozen machines for years), I could not honnestly recommend anyone to rewrite the partition table at any boot as often as I am doing. But I have to admit that I am still alive.
hope it helps and wish you a nice holiday too.