A while back I tried setting up a quad boot system with 4 different UNIX operating systems: Gentoo Linux, FreeBSD, NetBSD, and OpenBSD. One big issue was sharing data between all four OSes, each support a different set of file systems. My main focus was FreeBSD and Linux, so I wanted to make sure each of them could read all of the other partitions, OpenBSD and NetBSD were less important as long as there was at least one shared partition. All four operation systems support at least reading UFS1, Ext2, and FAT. As I prefer to use only UNIX filesystems and Linux has questionable UFS write support, I chose to make my primary data partition to be Ext2 which while running in Linux could be mounted as Ext3 to get the benifits of journalling. Once I enabled the BSD partition support in linux and the UFS1/2 filesystem support available under the 2.6 kernel I was able to read all the BSD partitions with the option of also using their swap partitions as additional swap space if I so chose too. The only difficulty in sharing swap space with *BSD is that linux requires some formating of the swap partition and the mkswap command needs to be run on boot every time to make sure it's formatted accordingly. The disk drive that I had this installed on was a SATA drive, but the Linux driver I was using operated under libata and the drive appeared as /dev/hde. Later, I switched to another motherboard which a different SATA chipset. The driver for this particular chipset made the disk available through the SCSI subsystem and it appeared as /dev/sda when I discovered a limitation of Linux's SCSI disk implementation, it cannot deal with more than 16 partitions total on a drive making the /usr partition of NetBSD unavailable and OpenBSD completely hidden.
FreeBSD had it's own issues, I could read and write Linux's Ext2/3 filesystems as well as read a reiserfs partition, but NetBSD and OpenBSD partitions did not appear at all. After further research I discovered that the GEOM that implements the BSD partitions did not support the differences inherent in the NetBSD and OpenBSD partition format. I spent a couple of days playing around with different patches to the BSD GEOM until I had something that satifactorily read the partitons. I have not submitted the patch yet, but I have it available here.