I have a FreeBSD fileserver configured with one ZFS pool created from whole disk devices. That is, the pool was created like this:
zpool create pool0 raidz ada0 ada1 ada2
This means the disks have ZFS disklabels, rather than FreeBSD disk labels. This is the recommended way of using disks with ZFS:
ZFS can use individual slices or partitions, though the recommended mode of operation is to use whole disks. [ from
zpool(1M)
]
Formatting the disks like this maximizes the portability of the filesystem between various ZFS implementations. Unfortunately, it means there's nowhere to put a freebsd-boot
partition containing the FreeBSD loader...or at least, I think that's what it means, but I'm looking for confirmation.
The system currently boots from a CF card containing the embedded loader (as well as the /boot
directory, although this could live in ZFS just fine). This works just fine, but Im curious -- is there any way to install the embedded loader onto the ZFS-labelled disks?
EDIT: I've been trying to answer this myself. I thought maybe I could apply a GPT label non-destructively to the ZFS disks, and then try embedding the boot code -- but while the GPT label didn't cause a problem with ZFS, ZFS seems to tromp on the label somehow. So here's a different question: does OpenSolaris support GPT disk labels? The ultimate goal here is to have a disk pool that will work under both FreeBSD and OpenSolaris while being able to boot from it into FreeBSD.