ZFS (Zettabyte File System) — файловая система, разработанная компанией Sun Microsystems и обладающая такими характеристиками как возможность хранения больших объёмов данных, управления томами и множеством других. Первоначально файловая система была разработана для ОС Solaris, но впоследствии перенесена на ряд других операционных систем, в том числе на FreeBSD и Mac OS X.
Файловая система ZFS распространяется с открытым кодом по opensource-лицензии CDDL (несовместимой с GPL).
Появление ZFS наделало много шума, и до сих пор эта файловая является предметом горячих обсуждений. Причин у такой популярности несколько, в первую очередь:
1) Большие технические возможности файловой системы, в частности возможность хранения огромных объёмов данных и интеграция возможностей управления томами, квот, резервирования и контроля целостности данных в саму файловую систему.
2) Факт уже выполненного её портирования на несколько платформ и продолжение портирования на другие на фоне запрета на портирование на Linux.

Я использовал FreeBSD 9.1-RC1 amd64.
Грузимся с CD и выбираем Live CD.

Создаем GPT диск:
# gpart create -s gpt ada0
ada0 created

Создаем разделы:
1) boot
# gpart add -s 64k -t freebsd-boot ada0
ad0p1 added

2) ZFS
# gpart add -t freebsd-zfs -l root ada0
ad0p2 added

Устанавливаем pMBR и gptzfsboot загрузчик:
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0

Если после первой команды получили ошибку gpart: geom 'ada0': File exists, то следует выполнить:
# dd if=/dev/zero of=/dev/ada0 bs=512 count=1

Загружаем модули ядра для ZFS:
# kldload /boot/kernel/opensolaris.ko
# kldload /boot/kernel/zfs.ko

Создаем пул с именем zroot
# zpool create zroot /dev/gpt/root

Экспортируем и импортруем кеш в /tmp
# zpool export zroot
# zpool import -o cachefile=/tmp/zpool.cache zroot

Создаем разделы:
# zfs set mountpoint=none zroot
# zfs create -o mountpoint=/mnt zroot/freebsd
# zfs create zroot/freebsd/usr
# zfs create zroot/freebsd/usr/home
# zfs create zroot/freebsd/var
# zfs create -o compression=on -o setuid=off zroot/freebsd/usr/ports
# zfs create -o compression=off -o exec=off -o setuid=off zroot/freebsd/usr/ports/distfiles
# zfs create -o compression=on zroot/freebsd/usr/src
# zfs create -o compression=on -o exec=on -o setuid=off zroot/freebsd/tmp
# zfs create -o compression=on -o exec=on -o setuid=off zroot/freebsd/var/tmp

Создание swap размеров 4ГБ
# zfs create -V 4G zroot/swap
# zfs set org.freebsd:swap=on zroot/swap
# zfs set checksum=off zroot/swap

Устанавливаем соответствующие разрешения на tmp каталоги и добавляем симлинк на домашний каталог.
# chmod 1777 /mnt/tmp /mnt/var/tmp
# cd /mnt
# ln -s usr/home home
# cd ~

Устанавливаем загрузочный том
# zpool set bootfs=zroot/freebsd zroot

Теперь мы можем установить систему FreeBSD базы на наш раздел ZFS.
# sh
# cd /usr/freebsd-dist
# export DESTDIR=/mnt
# for file in base.txz doc.txz kernel.txz lib32.txz ports.txz src.txz; do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done

Копируем файл кэша zpool
# cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache

Включаем автозагрузку ZFS
# echo zfs_load="YES" >> /mnt/boot/loader.conf
# echo vfs.root.mountfrom="zfs:zroot/freebsd" >> /mnt/boot/loader.conf
# echo zfs_enable="YES" >> /mnt/etc/rc.conf

FreeBSD будет жаловаться на отсутствие Fstab, так что создаем пустой файл
# touch /mnt/etc/fstab

Теперь нам нужно размонтировать файловые системы ZFS и установить соответствующие точки монтирования.
# zfs umount -a
# zfs set mountpoint=legacy zroot/freebsd
# zfs set mountpoint=/tmp zroot/freebsd/tmp
# zfs set mountpoint=/usr zroot/freebsd/usr
# zfs set mountpoint=/var zroot/freebsd/var

Перезагружаемся в только что установленную FreeBSD
# shutdown -r now

После того, как система загрузится, логинимся под root и задаем пароль для root и часовой пояс
# passwd
# tzsetup

Проверяем результат
# mount
zroot/freebsd on / (zfs, local, nfsv4acls)
devfs on /dev (devfs, local, multilabel)
zroot/freebsd/tmp on /tmp (zfs, local, nosuid, nfsv4acls)
zroot/freebsd/usr on /usr (zfs, local, nfsv4acls)
zroot/freebsd/usr/home on /usr/home (zfs, local, nfsv4acls)
zroot/freebsd/usr/ports on /usr/ports (zfs, local, nosuid, nfsv4acls)
zroot/freebsd/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, noexec, nosuid, nfsv4acls)
zroot/freebsd/usr/src on /usr/src (zfs, local, nfsv4acls)
zroot/freebsd/var on /var (zfs, local, nfsv4acls)
zroot/freebsd/var/tmp on /var/tmp (zfs, local, nosuid, nfsv4acls)

Теперь у нас имеется FreeBSD на файловой системе ZFS.