前回(FreeBSDをワンライナーでインストールしてみた、の解説 - くんすとの備忘録)に引き続き、bsdinstallネタです。bsdinstallにはいくつかのターゲットがありますが、とりあえずぜんぶ試してみましょう。
※どんなターゲットがあるのかは、マニュアル(bsdinstall(8))を参照です。

前準備

一旦マルチユーザーモードでログインして、それからshellに移行します。
(/tmpや/varをマウントしてくれるので…)その後、DHCP設定をします。

1
dhclient -l /tmp/dhclient.lease.em0 em0

必要に応じてキーボード配列を変更しておきます。

1
kbdmap

マニュアルに載っている順番に、各種ターゲットを試す

bsdtinstall auto


キーマップの選択が出てきました。
オプションなしで実行した時と同じです。

bsdinstall entropy

ソースによると、

1
dd if=/dev/random of=$BSDINSTALL_CHROOT/entropy bs=4096 count=1

するらしいです。bsdinstall mountしてから実行すると、/mnt/entropy が作成されました。

bsdinstall jail <destination>

jail環境を作成します。
※構築済みのFreeBSD環境で実施しました。

1
2
3
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>

パーティションの設定をコマンドラインで指定して設定します。

1
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

ディストリビューションのアーカイブをダウンロードします。環境設定を行ってから実行

1
2
3
4
5
6
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 time

新環境の日付と時刻を合わせます。
※/mnt 以下にシステムが存在しないとちゃんと動かない模様


/mnt/etc 以下の時刻関連のファイルが更新されました

bsdinstall services

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

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

bsdinstall config

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


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

まとめ

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

参考URL

bsdinstall関連