I use OS X as my primary operating system. Since December 2008, I've been using ZFS for keeping my data safe. Here's some disorganised notes which may or may not be useful for people considering this system.
ZFS is read-only on OS X by default. Get the latest version from Mac OS Forge.
This implementation isn't fully integrated with the OS X interface yet, but it's still very usable if you're comfortable with the command line. You'll also need to RTFM, lest ye be plagued by kernel panics. Make sure to read the getting started guide and the ZFS FAQ.
See also: my ZFS bookmarks on Delicious.
$ diskutil list
...
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *931.5 Gi disk1
1: EFI 200.0 Mi disk1s1
2: Apple_HFS PipBoy 751.5 Gi disk1s2
3: Apple_HFS Paranoia 179.6 Gi disk1s3
...
$ diskutil eraseVolume ZFS %noformat% /dev/disk1s2
Finished erase on disk disk1s2
$ diskutil list
...
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *931.5 Gi disk1
1: EFI 200.0 Mi disk1s1
2: ZFS 751.5 Gi disk1s2
3: Apple_HFS Paranoia 179.6 Gi disk1s3
...
$ zpool create pipboy disk1s2
$ zpool upgrade
This system is currently running ZFS pool version 8.
The following pools are out of date, and can be upgraded. After being
upgraded, these pools will no longer be accessible by older software versions.
VER POOL
--- ------------
6 pipboy
Use 'zpool upgrade -v' for a list of available versions and their associated
features.
$ zpool upgrade -a
This system is currently running ZFS pool version 8.
Successfully upgraded 'pipboy'
$
To mount or unmount a zpool, use the zpool import [pool_name]
and zpool export -f [pool_name]
commands, respectively.
Do not try to unmount/eject the volume like you would any other
volume in OS X (I got my first kernel panic this way).
I use the following aliases in my .bashrc file:
alias zim='zpool import' zex='zpool export -f'
The desktop and Get Info window both show the available space of a zpool
as its total capacity (e.g. "123 GB, 123 GB free"). You can still get
the correct figure with the command zpool list.
ZFS filesystems appear as aliases.
In the path bar, the root of the filesystem appears as the zpool
containing that filesystem. For example, in
/Volumes/zpool/filesystem/stuff, the path bar shows
zpool → stuff instead of
filesystem → stuff.
When navigating to the "enclosing folder" (Cmd-Up) at the root of a filesystem, you are not taken to the enclosing filesystem/zpool, but to Finder's list of all mounted volumes. (Because of this, I prefer to use the column view when browsing ZFS filesystems.)
This is a known bug we are currently working on. As a workaround for now you can use the Secure Delete option in Finder to empty the trash, or just empty the .Trash directory by using the rm command in a terminal window to remove files from the trash.
All mounted filesystems appear in the ignore list under the name of the associated zpool (similar to the path bar bug above).
