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"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

<ul>
<li>ディスク:ada0</li>
<li>デバイスタイプ:stripe</li>
<li>プール名:zroot</li>
<li>パーティションスキーム:GPT</li>
<li>スワップサイズ:2G</li>
<li>マウントポイント</li>
</ul>```
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”

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

<ul>
<li>マウントポイント</li>
</ul>```
zroot                 none
zroot/ROOT            none
zroot/ROOT/default    /
zroot/tmp             /tmp
zroot/usr             /usr
zroot/var             /var
```<br/>
※自動インストール時のZFS設定の詳細は、zfsbootのソースコード(<a href="https://github.com/freebsd/freebsd/blob/master/usr.sbin/bsdinstall/scripts/zfsboot">freebsd/zfsboot at master · freebsd/freebsd · GitHub</a>)を確認すると良いと思います。

</div>
</div>
<div class="section">
    ### 参考URL
    
<ul>
<li><a href="https://www.freebsd.org/cgi/man.cgi?bsdinstall(8)">bsdinstall(8)</a></li>
<li><a href="http://www.yosbits.com/opensonar/rest/man/freebsd/man/ja/man8/bsdinstall.8.html?l=ja">BSDINSTALL(8) - システム管理コマンド - YOS OPENSONAR</a></li>
<li><a href="https://github.com/freebsd/freebsd/blob/master/usr.sbin/bsdinstall/scripts/script">freebsd/script at master · freebsd/freebsd · GitHub</a></li>
<li><a href="https://github.com/freebsd/freebsd/blob/master/usr.sbin/bsdinstall/scripts/zfsboot">freebsd/zfsboot at master · freebsd/freebsd · GitHub</a></li>
<li><a href="https://groups.google.com/d/msg/fa.freebsd.stable/kg6svI6b8Fk/X-MIYF0lCEAJ">https://groups.google.com/d/msg/fa.freebsd.stable/kg6svI6b8Fk/X-MIYF0lCEAJ</a></li>
</ul>
</div>