after long way using Windows, Linux, Solaris, BeOS, MacOSX and some others I decide to learn the BSD philosofy.

I always use GRUB to boot all them (yes, I have all them installed). I have no problems installing FreeBSD OR NetBSD OR OpenBSD, but when I install all them or at least 2 of them, all except the last one, doesn't boot. So I have some questions:

1. I can boot FreeBSD with GRUB as:

title FreeBSD
root (hdX,Y,a)
kernel /boot/loader

but I can't boot either NetBSD or OpenBSD:

title NetBSD
root (hdX,Y,a)
kernel --type=netbsd /netbsd

title OpenBSD
root (hdX,Y,a)
kernel --type=openbsd /bsd

Bootloader does recognize the slice and partition and can see the files on it, but says it hasn't executable format. Is it possible to boot NetBSD and OpenBSD in such a way, or have I to use:

title NetBSD
root (hdX,Y)
chainloader +1

title OpenBSD
root (hdX,Y)
chainloader +1

instead?

2. After installing the second *BSD it seems the first has missconfigured disklabel. GRUB can't find previously installed system or mount its filesystem. On the other hand it finds the filesystem via the second's slice disklabel. However this time it doesn't boot (I beleave, because of incorrect /etc/fstab or missing partition bootcode). Is it possible to force these 3 BSDs to use independent disklabel?

3. It seems that FreeBSD uses disklabel on the slace scale:

# disklabel adXsY

and the "c" partition is the whole slace, while NetBSD and OpenBSD both use disk-wide disklabel:

# disklabel wdX

the "c" partition is the whole slice and "d" is the whole disk. In addition, OpenBSD seems to use the partition offsets starting at the begining of disk (not slice). Are there FreeBSD, NetBSD and OpenBSD disklabels compatible? Are they capable to understand / read / write each other?