zfs root FreeBSD

新しいHDDに交換ついでにzfs

pt2 kernel: ad4: 305245MB  at ata2-master UDMA100 SATA 3Gb/s
pt2 kernel: ad6: 1907729MB  at ata3-master UDMA100 SA

でけぇw。
FreeBSD 8.1-RELEASEでGPTなHDDにZFSでRootを確保してそこからbootする - mteramotoの日記
などを参考に実施。

pt2# gpart create -s gpt ad6
ad6 created
pt2# gpart add -b 40 -s 128 -t freebsd-boot ad6
ad6p1 added
pt2# gpart add -t freebsd-zfs ad6
ad6p2 added
pt2# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad6
bootcode written to ad6
pt2# kldload zfs
pt2# zpool create zroot ad6p2
pt2# zpool set bootfs=zroot zroot
pt2# zfs create zroot/tmp
pt2# zfs create zroot/var
pt2# zfs create zroot/var/empty
pt2# zfs create zroot/usr
pt2# zfs create zroot/home
pt2# zfs create -V 2G zroot/swap
pt2# zfs set org.freebsd:swap=on zroot/swap
pt2# zfs set checksum=off zroot/swap

でこの後dump restoreしようとしたら鯖死んだぽ。
どうする俺w
再起動後もう一度。

pt2#zfs mount -a
pt2#dump -0 -a -L -f /;(cd zroot;restore rf -)
pt2# cd /boot/zfs
pt2# zpool export zroot && zpool import zroot
pt2# cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache
pt2#echo 'vfs.root.mountfrom="zfs:zroot"' >> /zroot/boot/loader.conf
pt2#mv /zroot/etc/fstab /zroot/etc/fstab.bak
pt2#touch /zroot/etc/fstab
pt2# cd /
pt2# zfs umount -a
pt2# zfs set mountpoint=legacy zroot
pt2# zfs set mountpoint=/tmp zroot/tmp
pt2# zfs set mountpoint=/usr zroot/usr
pt2# zfs set mountpoint=/var zroot/var
pt2# zfs set mountpoint=/home zroot/home

古いHDDを捨てて新しいHDDから起動。
無事上がってきた。

Filesystem      1K-blocks      Used      Avail Capacity  Mounted on
zroot           1833812905   390944 1833421961     0%    /
devfs                    1        1          0   100%    /dev
zroot/home      1833421982       21 1833421961     0%    /home
zroot/tmp       1833438265    16304 1833421961     0%    /tmp
zroot/usr       1918675139 85253178 1833421961     4%    /usr
zroot/var       1834183072   761111 1833421961     0%    /var
zroot/var/empty 1833421982       21 1833421961     0%    /var/empty