前回(FreeBSDをワンライナーでインストールしてみた、の解説 - くんすとの備忘録)に引き続き、bsdinstallネタです。
bsdinstallにはいくつかのターゲットがありますが、とりあえずぜんぶ試してみましょう。
※どんなターゲットがあるのかは、マニュアル(bsdinstall(8))を参照です。
前準備
一旦マルチユーザーモードでログインして、それからshellに移行します。
(/tmpや/varをマウントしてくれるので…)
その後、DHCP設定をします。
dhclient -l /tmp/dhclient.lease.em0 em0
必要に応じてキーボード配列を変更しておきます。
kbdmap
マニュアルに載っている順番に、各種ターゲットを試す
bsdtinstall auto

キーマップの選択が出てきました。
オプションなしで実行した時と同じです。
bsdinstall entropy
ソースによると、
dd if=/dev/random of=$BSDINSTALL_CHROOT/entropy bs=4096 count=1
するらしいです。
bsdinstall mountしてから実行すると、/mnt/entropy が作成されました。

bsdinstall jail <destination>
jail環境を作成します。
※構築済みのFreeBSD環境で実施しました。
mkdir -p /usr/freebsd-dist mkdir aaa bsdinstll jail aaa
(./aaa にjail環境を構築する)




./aaa にFreeBSD Jail環境が構築されました。

bsdinstall script
前回の記事(FreeBSDをワンライナーでインストールしてみた、の解説 - くんすとの備忘録)で使用したので割愛。
bsdinstall keymap
キーボード選択のみを行います。

設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall hostname
ホスト名の設定のみを行います。

設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall netconfig
ネットワーク設定のみを行います。


設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall autopart
パーティションの設定のみを行います。
※パーティションの切り方は自動です


パーティション情報が書き込まれ、設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall zfsboot
zfsの設定のみを行います。

パーティション情報が書き込まれ、設定ファイルが/tmp/bsdinstall_etc/と/tmp/bsdinstall_boot/以下に出力されました。


bsdinstall partedit
パーティションの設定のみを行います。
※autopartとは異なり、こちらはパーティションの切り方は手動設定です。


パーティション情報が書き込まれ、設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall scriptedpart <parameters>
bsdinstall scriptedpart ada0 { 512M freebsd-ufs /, 512M freebsd-swap, 512M freebsd-ufs /var, auto freebsd-ufs /usr }

パーティション情報が書き込まれ、設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall mount
/tmp/bsdinstall_etc/fstab にしたがって、/mnt以下にディスクをマウントします。


マウント後、/tmp/bsdinstall-tmp-fstab が作成されました。

bsdinstall distfetch
ディストリビューションのアーカイブをダウンロードします。
環境設定を行ってから実行
export FTP_PASSIVE_MODE=YES export DISTRIBUTIONS="base.txz kernel.txz" export BSDINSTALL_DISTDIR=/mnt/usr/freebsd-dist export BSDINSTALL_DISTSITE=ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE mkdir -p /mnt/usr/freebsd-dist bsdinstall distfetch

base.txzとkernel.txzが、/mnt/usr/freebsd-dist に落ちてきました。

bsdinstall checksum
ダウンロードしたディストリビューションのアーカイブのチェックサムを検証するらしいですが、何も起こらず……
ちょっとよくわかりません。。。

bsdinstall distextract
ダウンロードしたディストリビューションのアーカイブを解凍します。


bsdinstall distfetchで取ってきたアーカイブが/mnt以下に展開されました。
なお、/mnt/usr/freebsd-dist以下は残っている様子。

bsdinstall rootpass
新環境で、rootユーザのパスワードを設定します。
※/mnt 以下にシステムが存在しないとちゃんと動かない模様

/mnt/etc 以下のパスワード関連のファイルが更新されました

bsdinstall adduser
新環境で、ユーザの追加を行います。
※/mnt 以下にシステムが存在しないとちゃんと動かない模様


/mnt/home以下にホームディレクトリが作成されていました。

bsdinstall services
サービスの選択のみを行います。

設定ファイルが/tmp/bsdinstall_etc/以下に出力されました。

bsdinstall config
/tmp/bsdinstall_etcや/tmp/bsdinstall_boot内のファイルを新環境へコピーします。
※/mnt 以下にシステムが存在しないとちゃんと動かない模様


rc.conf~がrc.confに統合され、新環境に上書きされました。


まとめ
bsdinstallの日本語情報があまり見当たらなかったので、この記事が何かの参考にでもなれば幸いです。
……酔狂ではある。。。


