デスクトップマシン(vostro 3267)を購入しました(その16:nvme SSDを追加)

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パーティションを使うようにしている)のでこんな設定になりました。

その15へ戻る その17へ続く