nvme SSDを追加してみました。
追加したのはWD社のSN750 1TBです。放熱板なしのを購入して、PCIe 3.0×4の変換カードに載せ、変換カードに附属していた放熱板を付けました。今まではSATAのSSDだったのでgsmartcontrolが使えましたが、gsmartcontrolは未だにnvme未対応なのでsmartctl -x /dev/nmve0
で頑張ることになります。
またこのデスクトップマシンではufsを使っていましたが、今回追加したSSDではzfsを使うことにしました。
# gpart create -s GPT /dev/nvd0 # gpart add -t freebsd-ufs -l dummy -s 500m nvd0 # 現在はada0(SATA SSD)のEFIを使用しているが将来のためにEFI用に確保 # でも、-t efi にするとwindowsが悪さをするかもしれないので暫定的に # windowsが理解できないtypeとしてfreebsd-ufsにしました # gpart add -t freebsd-zfs -l fbroot-zfs -s 384g nvd0 # zpool create -o altroot=/mnt -m none hoge nvd0p2 # zfs set compression=lz4 hoge # zfs set atime=off hoge # zfs create -o mountpoint=none hoge/ROOT # zfs create -o mountpoint=/ hoge/ROOT/default # zfs create -o mountpoint=/usr hoge/usr (snip) # zpool set bootfs=hoge/ROOT/default hoge # cd /mnt # dump 0af - / | restore rf - # chflags noschg,nosunlnk .sujournal # rm -rf .sujournal .snap # echo 'zfs_load="YES"' >> boot/loader.conf # echo 'vfs.root.mountfrom="zfs:hoge/ROOT/default"' >> boot/loader.conf # echo 'zfsd_enable="YES"' >> /etc/rc.conf # reboot
これで動くと思ったら、vostro 3267ってnvme SSDから起動できないんですね。studio 1558ではEFI bootが使えないのでaiobootでcloverを使っているけど、EFI boot可能なvostro 3267ではcloverは使いたくないので既存のSATA SSDで起動してnvme SSDをzfs mountする構成にしました。具体的には、SATA SSDに小さな領域(/boot配下が入れば良いので1GB程度でも大丈夫ですが、8GBの空きエリアがあったのでそれを利用しました)をufsで作成して、そこからbootしてzfs領域はlegacy mountすることにしました。手順は以下の通り。
# gpart add -t freebsd-ufs -l fbzfsboot -s 8g ada0 # newfs -j /dev/gpt/fbzfsboot # mkdir /fbzfsboot # echo '/dev/gpt/fszfsboot /fbzfsboot ufs rw 1 1' >> /etc/fstab # mount /fbzfsboot # mv -i /boot /fbzfsboot/ # ln -s /fbzfsboot/boot / # cat <<EOF >>/etc/fstab hoge/usr /usr zfs rw 0 0 hoge/usr/local /usr/local zfs rw 0 0 (snip) hoge/var/log /var/log zfs rw 0 0 EOF
あとはrefindにfbzfsbootからufsで起動するように書いて、やっと正常に起動するようになりました。即ち、SATA SSDのufsから起動するけど、ファイルシステムは殆どnvme SSD上のzfsを使用しているという構成です。実は/homeや/var/mailはufsを使っている(このマシンには複数のバージョンのFreeBSDが共存しているので、/homeや/var/mailはどのバージョンのFreeBSDも同一のufsパーティションを使うようにしている)のでこんな設定になりました。