bsdinstallを使ったFreeBSDの自動インストールについて[基本編] - くんすとの備忘録 の続き。今度は、bsdinstallを使ってZFSへインストールする方法を調べてみます。

### ZFSの自動レイアウトでインストールする マニュアルに記載されているように、前半(preamble)へ、環境変数「PARTITIONS」の代わりに「ZFSBOOT_DISKS」を記述すればZFSへインストールすることができます。ただし、以下の2点の注意が必要です。
  • 自動インストールする場合は、環境変数「nonInteractive」の設定も行う
  • 環境変数「ZFSBOOT_DISKS」と「nonInteractive」はexportする
特に2点目については注意が必要です。
(freebsd/script at master · freebsd/freebsd · GitHubを覗いてみた感じではおそらく、DISTRIBUTIONSはexportされていたのにZFSBOOT_DISKSなどはexportされていなかったので、それが原因かと……)
#### 前半(preamble) ```sh export ZFSBOOT_DISKS=ada0 export nonInteractive="YES" DISTRIBUTIONS="base.txz kernel.txz" ```上記の設定では、デフォルト設定でZFSパーティションが作成されました。
  • ディスク:ada0
  • デバイスタイプ:stripe
  • プール名:zroot
  • パーティションスキーム:GPT
  • スワップサイズ:2G
  • マウントポイント
``` zroot none zroot/ROOT none zroot/ROOT/default / zroot/tmp /tmp zroot/usr /usr zroot/usr/home /usr/home zroot/usr/ports /usr/home zroot/usr/src /usr/home zroot/var /var zroot/var/crash /var/crash zroot/var/log /var/log zroot/var/mail /var/mail zroot/var/tmp /var/tmp ```
### ZFSのカスタムレイアウトでインストールする 環境変数「ZFSBOOT_DATASETS」を設定することで、自由にZFSレイアウトを作成できるようです。とりあえず、/・/tmp・/usr・/varで分割してみます。
#### 前半(preamble) ```sh export ZFSBOOT_DISKS=ada0 export ZFSBOOT_DATASETS=" /ROOT mountpoint=none /ROOT/default mountpoint=/ /tmp mountpoint=/tmp,exec=on,setuid=off /usr mountpoint=/usr,canmount=off /var mountpoint=/var,canmount=off " export nonInteractive="YES" DISTRIBUTIONS="base.txz kernel.txz" ```上記の設定では、以下の設定でZFSパーティションが作成されました。
  • マウントポイント
``` zroot none zroot/ROOT none zroot/ROOT/default / zroot/tmp /tmp zroot/usr /usr zroot/var /var ```
※自動インストール時のZFS設定の詳細は、zfsbootのソースコード(freebsd/zfsboot at master · freebsd/freebsd · GitHub)を確認すると良いと思います。