話題のZFSファイルシステムですが、ZFSを使ってみたかったので、8.1をセットアップしてみました。
導入時、それなりに苦労がありましたので、備忘録として、記録しておきます。

大雑把に手順を説明しておきます。
bootとrootパーティションを分けてインストールします。
bootは、ミラーを行いufsとして運用します。
rootは、zfsとして運用します。
bootをミラー化する為に別のドライブから起動をかけてgmirror化します。
rootは、一旦、ufsにインストールして、zfsにコピーします。
以上です。

前提
まず、ZFSは、Googleやwiki等で調べてもらうとわかるのですが、基本的に次世代ファイルシステムということで、大量のメモリと64BitOSを前提としています。
そこで、FreeBSDは、amd64版をチョイスしました。

当方のサーバは、基本的にUSBメモリで運用することを前提としていますので、rootパーティションをUSBメモリに導入しなければなりません。
かといって、USBメモリで、通常のインストールを行うと時間がかかりすぎるので、基本的なインストールをHDDディスクで行い、後でUSBメモリに移す方法を取ります。

HDDディスクは、2つ必要となります。 VMWareでインストールこともできます。 <-おすすめ

準備
HDD(A)に3.9Gのパーティションを2つ作り、そこに1つ目のパーティションに最小構成で、インストールを行います。
次に別のHDD(B)を用意し、1.8Gのパーティションを作り、そこにカーネルのみで、インストールを行います。

bootのミラー化
ブートパーティションをmirrorにしたいので、HDD(A)で起動し、HDD(B)をmirror化します。
kldload geom_mirror.ko
gmirror label -b round-robin gboot ad1s1

gmirrorをカーネルロードする為に、loader.confを編集します。
/boot/loader.conf
geom_mirror_load="YES"  <-追加

rootパーティション
HDD(A)で起動しているので、/bootを別名にして、空の/bootを作成しておきます。
HDD(B)を適当なパス(/mnt/bootdisk等)にマウントして、/bootをHDD(B)の/bootにリンクしておきます。

mv /boot /boot.bak
mkdir /boot
mkdir /mnt/bootdisk
mount /dev/mirror/gboot /mnt/bootdisk
ln -s /mnt/bootdisk/boot /boot

次に、/etc/fstabを編集します。
/dev/mirror/gboot /mnt/bootdisk ufs rw 1 1   <- 最後に追加します。

ZFSのマウントを有効化する為にrc.confを編集します。
zfs_enable="YES"

ZFS作成
いよいよ、zfsの作成です。
HDD(A)の2つめのパーティションをzfsとして作成し、rootファイルを豪快にコピーします。
zpool create zroot /dev/ad0s2
zfs create zroot/rootzone
cp -Rp / /zroot/rootzone/
としても良いですが、ちゃんと、一つずつディレクトリをコピーした方が良さそうです。

zfsをルートマウントする為にloader.confを編集します。
/boot/loader.conf
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot/rootzone"  <-追加

既存のrootをマウントしないようにfstabを編集します。
/mnt/bootdisk/etc/fstab
#/dev/ad0s1a / .....   <-[/]マウントの記述の先頭に[#]を付けてコメントアウトします。
/etc/fstabも編集しておきます。
#/dev/ad0s1a / .....   <-[/]マウントの記述の先頭に[#]を付けてコメントアウトします。

これで、HDD(B)から起動をかければ、zfsをrootとして、起動します。

Joomla templates by a4joomla