For anyone who is unaware: you can add ZFS support to macOS by installing OpenZFS [0]. If you have homebrew you can just run: `brew cask install openzfs`.
While I believe it's possible to boot from ZFS, I'd suggest sticking with APFS.
One of the ways I use ZFS is with external HDDs, so I can easily move em between computers running Debian, FreeBSD, or macOS.
I tried zfs on Mac a while back. A few years I think. My trial was with external disks. It seemed super easy to basically lose the disk by forgetting to export it or whatever the terminology is, before unplugging it.
Probably just my lack of understand, but for something that was supposed to be all about not losing data, it seemed very fragile in that use case.
Again, it may have just been my ignorance and I didn’t lose anything, but I couldn’t figure out how to recover.
I haven't experimented much with this, so perhaps someone with more experience can confirm. There's a lot of ZFS options and features which I don't fully understand.
If your pool consists of a single drive and it was not exported correctly before being moved to a different system you can still import it by running `zpool import -f pool_name`. I've had this happen previously, and it hasn't been an issue. The zpool man page says the following:
> If a device is removed from a system without running zpool export first, the device appears as potentially active. It cannot be determined if this was a failed export, or whether the device is really in use from another host. To import a pool in this state, the -f option is required.
If your pool consisted of multiple drives, I think it would vary depending on your configuration. It seems like at worse you'd have to use the -F flag when importing, which would cause some data to be lost due to incomplete transactions:
> Recovery mode for a non-importable pool. Attempt to return the pool to an importable state by discarding the last few transactions. Not all damaged pools can be recovered by using this option. If successful, the data from the discarded transactions is irretrievably lost. This option is ignored if the pool is importable or already imported.
However I haven't encountered a scenario which caused me to have to use the -F flag, so I'm unable to speculate further. As I understand it, it still provides stronger guarantees than alternatives.
Ah, you don't lose anything if you forget to "export" it. Exporting is just the act of telling the file system that it is no longer attached to any OS. This prevents accidental import into another OS.
If you don't export it, you need to just force import it :)
While I believe it's possible to boot from ZFS, I'd suggest sticking with APFS.
One of the ways I use ZFS is with external HDDs, so I can easily move em between computers running Debian, FreeBSD, or macOS.
[0] https://openzfsonosx.org/wiki/Downloads