zfs setup memo

zfsのルートファイルシステムでインストールし、/homeを5台のHDDにraidz2のファイルシステムを作成する手順のメモ。

参考: bsdinstall でも自由なパーティションレイアウトで Root on ZFS

bsdinstallのpartitioningにてShellを選択して。

# gpart create -s gpt ada0
# gpart add -a 4k -s 512k -t freebsd-boot -l boot0 ada0
# gpart add -a 4k -s 60g -t freebsd-zfs -l sys0 ada0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
# gpart set -a active ada0

# gnop create -S 4096 ada0p2
# zpool create -o altroot=/mnt -m none -f rpool ada0p2.nop
# zfs set atime=off rpool
# zfs set checksum=fletcher4 rpool
# zfs create -V 8g -o checksum=off rpool/swap0

# zfs create -o mountpoint=none rpool/ROOT
# zfs create -o mountpoint=/ rpool/ROOT/default
# zfs create -o mountpoint=/tmp -o setuid=off rpool/tmp
# zfs create -o mountpoint=/usr rpool/usr
# zfs create -o compression=lz4 -o setuid=off rpool/usr/ports
# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/usr/src
# zfs create -o mountpoint=/var rpool/var
# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/var/crash
# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/var/log
# zfs create -o compression=lz4 -o atime=on rpool/var/mail
# zfs create -o compression=lz4 -o setuid=off rpool/var/tmp

# zpool export rpool
# gnop destroy ada0p2.nop
# zpool import -o altroot=/mnt rpool
# mkdir -p /mnt/boot/zfs
# zpool set cachefile=/mnt/boot/zfs/rpool.cache rpool
# zpool set bootfs=rpool/ROOT/default rpool

# exit

bsdinstallの終了時にManual ConfigurationをYesで選択して。

# echo 'zfs_load="YES"' >> /boot/loader.conf
# echo 'zfs_enable="YES"' >> /etc/rc.conf
# echo '/dev/zvol/rpool/swap0 none swap sw 0 0' >> /etc/fstab

# exit

rebootした後に、rootでログインして。

# zpool create hpool raidz2 ada1 ada2 ada3 ada4 ada5
# zfs create hpool/home
# zfs set mountpoint=/home hpool/home
# zfs set mountpoint=none hpool

# gpart add -a 4k -s 32G -t freebsd-zfs -l zil0 ada0
# gpart add -a 4k -s 60G -t freebsd-zfs -l l2arc0 ada0
# zpool add hpool log gpt/zil0 cache gpt/l2arc0