日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
BSDINSTALL(8) FreeBSD システム管理者マニュアル BSDINSTALL(8)
名称
bsdinstall -- システムインストーラ
書式
bsdinstall [options] [target] [...]
解説
bsdinstall は、インストールメディア、例えば、CD-ROM、からのシステムセット
アップと、VM イメージと jail を準備するためのライブ (live) システムの両方
に対して、新しいシステムのインストールのために使用されます。
make(1) のように、bsdinstall は、引数としてターゲットとターゲットの指定可
能なパラメータを取ります。引数なしで呼び出されるなら、順々に他のものを呼
び出して、標準の対話式インストールを提供する auto ターゲットを呼び出しま
す。スプリプト化されたインストールを実行するためには、インストールスクリ
プトによって、これらのサブターゲットを別々に呼び出すことができます。
オプション
bsdinstall は、すべてのターゲットに対してグローバルである、次のオプション
をサポートしています:
-D file インストールのログファイル (BSDINSTALL_LOG を上書きする) のパス
を与えます。BSDINSTALL_LOG の詳細については、環境変数を参照して
ください。
ターゲット
次のターゲットのほとんどは、インストーラのスクリプトを書くためにだけに役
に立ちます。対話的な使用のために、ほとんどのユーザは、auto, jail と
script ターゲットだけに興味があるでしょう。
auto ディスクのパーティショニングを含む標準の対話式インス
トールを実行します。
jail destination jail(8) での使用に適した、destination で新しい chroot
システムをセットアップします。一般的に、振る舞いは、
ディスクのパーティショニングとネットワークセットアップ
が、スキップされ、カーネルが新しいシステムにインストー
ルされないことを除いて、auto と同様です。
script script script でインストールのスクリプトを実行します。このター
ゲットに関する詳細については、スクリプト記述
(SCRIPTING) を参照してください。
keymap 現在制御されている TTY が syscons(4) または vt(4) コン
ソールであるなら、現在の keymap を設定するためにユーザ
に問い合わせ、新しいシステムの rc.conf に結果を保存しま
す。
hostname 新しいシステムのホスト名についてユーザにプロンプトを出
し、新しいシステムの rc.conf に結果を保存します。また、
BSDINSTALL_CONFIGCURRENT が設定されているなら、現在のシ
ステムのホスト名を設定します。
netconfig 新しいシステムの rc.conf と resolv.conf に結果を保存
し、(最初に、無線インタフェースで wlanconfig を呼び出
し) ネットワークインタフェースを対話的に設定します。ま
た、BSDINSTALL_CONFIGCURRENT が設定されているなら、マッ
チする現在のシステムのネットワークインタフェースを設定
します。
autopart 単一のディスクのインストールのためにインストーラの対話
的なガイドを行うディスクパーティショナを提供します。デ
フォルトは、UFS です。
bootconfig 適切なパーティションを検出し、UEFI ブートローダファイル
をインストールします。
zfsboot ZFS のみの自動的な対話型のディスクパーティショナ (par
titioner) を提供します。/tmp, /usr, /usr/home,
/usr/ports, /usr/src と /var のための個別のデータセット
で単一の zpool を作成します。オプションで、ディスクを暗
号するために geli(8) をセットアップすることができます。
partedit sade(8) と同一のインタフェースでインストーラの対話型の
手動ディスクパーティショナを供給します。UFS、ZFS と FAT
ファイルシステムと同様に複数のディスクをサポートしま
す。ZFS は、パーティションごとに 1 つのプールとデータ
セットでセットアップされます。
scriptedpart parameters
autopart と partedit のようにディスクをセットアップしま
すが、parameters で指定されたディスクのセットアップに
従って非対話式に行います。各ディスクの設定は、3 つの部
分の引数によって指定されます:
disk [scheme] [{partitions}]
複数のディスクのセットアップは、セミコロンによって区切
られます。disk 引数は、宛先ディスクのための (autopart
のような) 選択ウィンドウか、または指定できるディスクが
1 つあるなら、自動的に選択される、(消去される) 操作する
ディスクを指定するか、または特別な値 DEFAULT を指定しま
す。scheme 引数は、ディスクに適用する gpart(8) パーティ
ションスキームを指定します。scheme が指定されなければ、
scriptedpart は、利用者のプラットフォームでデフォルトの
ブート可能なスキームを適用します。また、partitions 引数
は、オプションで、disk をパーティション化する方法を指定
します。それは、中括弧で囲んだ作成するパーティションの
コンマで区切られたリストから成ります。各パーティション
の定義は、次の形式を取ります
size type [mount point]
size は、バイト単位 (K、M と G の接尾辞は、それぞれ、キ
ロバイト、メガバイトとギガバイトを指定するために付け加
えることができます) で作成するパーティションのサイズを
指定し、一方、auto キーワードによって、パーティション
は、すべてのディスクの残りの空間を取ります。type オプ
ションは、gpart(8) ファイルシステムのタイプ、例えば、
freebsd-ufs, freebsd-zfs または freebsd-swap、を選択し
ます。オプションの mount point 引数は、作成されたパー
ティションがインストールされたシステムでマウントされる
場所を設定します。使用例として、一般的な呼び出しは、次
のように見えます:
bsdinstall scriptedpart ada0 { 20G freebsd-ufs /, 4G
freebsd-swap, 20G freebsd-ufs /var, auto freebsd-ufs
/usr }
/ を含むディスクものは何でも、自動的に作成される、パー
ティションのリストは、ブートパーティション (例えば、EFI
システムパーティション) を含めるべきではないことに注意
してくさい。
同じディスクで (autopart が使用されているように) デフォ
ルトをパーティション化を使用するためにより短い呼び出し
は、次の通りです:
bsdinstall scriptedpart ada0
または、さらに短いものは、次の通りです:
bsdinstall scriptedpart DEFAULT
mount BSDINSTALL_CHROOT の下で autopart, partedit または
scriptedpart によって以前に設定されたファイルシステムを
マウントします。
distfetch BSDINSTALL_DISTSITE から BSDINSTALL_DISTDIR に
DISTRIBUTIONS の配布を取って来ます。
checksum 配布マニュフェストに反対して DISTRIBUTIONS でリストされ
た配布のチェックサムを検証します。
distextract DISTRIBUTIONS でリストされた配布を BSDINSTALL_CHROOT に
抽出します。
rootpass 対話形式で、ルートのユーザのパスワードを設定するために
新しいシステムで passwd(1) を呼び出します。
adduser 対話形式で、新しいシステムで adduser(8) を呼び出しま
す。
time 対話形式で、新しいシステムの時間、日付とタイムゾーンを
設定します。
services システム起動時に始めるシステムデーモンのためにユーザに
問い合わせ、結果を新しいシステムの rc.conf に書き込みま
す。
entropy /dev/random から少量のデータを読み込み、新システムの
ルートディレクトリのファイルに、それを格納します。
config 新しいシステムで新しいシステムのための設定ファイル (例
えば、netconfig などによって生成された rc.conf(5) の断
片) をインストールします。
環境変数
次の環境変数は、インストールプロセスの種々な状況を制御します。多くは、イ
ンストールの間に内部的に使用され、ほとんどのインストールシナリオのために
妥当なデフォルト値があります。他のものは、様々な対話的なユーザプロンプト
によって設定され、スクリプトを作成するか、またはインストーラをカスタマイ
ズするとき、有効に上書きすることができます。
TMPDIR 一時ファイルのために使用されるディレクトリ。デフォル
ト: ``/tmp''
DISTRIBUTIONS インストールする配布の組、例えば、"base.txz ker
nel.txz ports.txz"。デフォルト: unset
PARTITIONS システムがインストールされているディスクのパーティ
ション。形式の詳細については、「ターゲット」セクショ
ンの scriptedpart を参照してください。この変数が設定
されていないなら、インストーラは、autopart のような
デフォルトのパーティショニングを使用します。デフォル
ト: unset
BSDINSTALL_DISTDIR 配布ファイルが置かれる (または、それらがダウンロード
されるべきである) ディレクトリ。デフォルト:
``/usr/freebsd-dist''
BSDINSTALL_DISTSITE それらが BSDINSTALL_DISTDIR によって定義されたディレ
クトリにまだ存在しないなら、配布ファイルがダウンロー
ドされる URL。これは、アーキテクチャとリリース名を含
むファイルへのフルパスであるべきです。FreeBSD ミラー
のプロンプトを出すほとんどのターゲット (例えば、auto
と jail) は、この変数が環境で既に定義されているな
ら、そのステップをスキップします。例:
https://download.freebsd.org/ftp/releases/powerpc/powerpc64/13.1-RELEASE/
または http://ftp-archive.freebsd.org/pub/FreeBSD-
Archive/old-releases/amd64/12.2-RELEASE/.
BSDINSTALL_CHROOT 配布ファイルがアンパックされるべきであるディレクトリ
と新しいシステムのルートファイルシステムがマウントさ
れるべきであるディレクトリ。デフォルト: ``/mnt''
BSDINSTALL_LOG インストールのためのログファイルへのパス。デフォル
ト: ``$TMPDIR/bsdinstall_log''
BSDINSTALL_TMPETC config ターゲットが実行されるまで、新しいシステムの
/etc のためのファイルが格納されるディレクトリ。この
ディレクトリがまだ存在していないなら、作成されます。
デフォルト: ``$TMPDIR/bsdinstall_etc''
BSDINSTALL_TMPBOOT config ターゲットが実行されるまで、新しいシステムの
/boot のために予定されたファイルが格納されるディレク
トリ。このディレクトリがまだ存在しないなら、作成され
ます。デフォルト: ``$TMPDIR/bsdinstall_boot''
ZFSBOOT_POOL_NAME 基本システムを含んでいるプールの名前。デフォルト:
``zroot''
ZFSBOOT_POOL_CREATE_OPTIONS
基本システムのプールを作成するとき、使用されるオプ
ション。各オプションは、考慮に入れる -O フラグが続か
なければなりません、または、プールは、コマンド zpool
を使用してエラーのために作成されません。デフォルト:
``-O compress=lz4 -O atime=off''
ZFSBOOT_BEROOT_NAME ブート環境の親のデータセットの名前。これは、異なる
ブート環境が作成されている、親のデータセットであるこ
とを意味するマウント可能ではないデータセットです。デ
フォルト: ``ROOT''
ZFSBOOT_BOOTFS_NAME システムのためのデフォルトのブート環境である、主要な
ブート環境の名前。デフォルト: ``default''
ZFSBOOT_VDEV_TYPE 基本システムのために作成されたプールのタイプ。この変
数は、次の値の 1 つを取ることできます: stripe (No
redundancy), mirror (n-Way mirroring), raid10 (RAID
1+0 - n x 2-Way Mirrors), raidz1 (RAID-Z1 - Single
Redundancy RAID), raidz2 (RAID-Z2 - Double Redun
dancy RAID) または raidz3 (RAID-Z3 Triple Redundancy
RAID)。デフォルト: ``stripe''
ZFSBOOT_FORCE_4K_SECTORS
プールが 4K または 512 セクタを使用することを示しま
す。この変数が空でないなら、4K セクタが使用されま
す。デフォルト: ``1''
ZFSBOOT_GELI_ENCRYPTION
この変数が空でないなら、自動的に ZFSBOOT_BOOT_POOL
変数を有効にして、root プールを暗号化するために
geli(8) を使用します。デフォルト: ``''
ZFSBOOT_GELI_KEY_FILE
geli(8) keyfile へのパスは、基本システムが格納される
プールを暗号化するために使用されます。デフォルト:
``/boot/encryption.key''
ZFSBOOT_BOOT_POOL 設定されるなら、分離されたブートのプールは、システム
と loader(8) のカーネルのために作成されます。デフォ
ルト: unset
ZFSBOOT_BOOT_POOL_CREATE_OPTIONS
有効にされるとき (ZFSBOOT_BOOT_POOL を参照)、ブート
のプールを作成するとき使用するオプション。デフォル
ト: unset
ZFSBOOT_BOOT_POOL_NAME
それが有効にされるとき (ZFSBOOT_BOOT_POOL を参照)、
オプションのブートのプールのための名前。デフォルト:
``bootpool''
ZFSBOOT_BOOT_POOL_SIZE
それが有効にされるとき (ZFSBOOT_BOOT_POOL を参照)、
ブートのプールのサイズ。デフォルト: ``2g''
ZFSBOOT_DISKS ブートのプールを含んで、基本システムのために使用され
るディスク。この変数は、スクリプト化されたインストー
ルでのみ使用されなければなりません。詳細については、
「スクリプト記述」を参照してください。デフォルト:
unset
ZFSBOOT_SWAP_SIZE 各ブロックデバイスのスワップパーティションのサイズ。
この変数は、gpart(8) に渡されます。SI 単位接尾辞をサ
ポートします。デフォルト: ``2g''
ZFSBOOT_SWAP_ENCRYPTION
設定されるなら、geli(8) を使用してスワップパーティ
ションの暗号化を有効にします。デフォルト: ""
ZFSBOOT_SWAP_MIRROR 設定されるなら、gmirror(8) を使用してスワップのミ
ラーリングを有効にします。デフォルト: unset
ZFSBOOT_DATASETS root zpool で作成される、ZFS データセット、それは、
次のデータセットを必要とします: /tmp, /var/tmp,
/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME。この変数
を書き込むための、そのデフォルト値に調べるための、詳
細については、「ZFS データセット」を参照してくださ
い。
ZFSBOOT_CONFIRM_LAYOUT
設定され、インストールが対話的であるなら、ユーザは、
インストールを続ける前にレイアウトを確認することがで
きいます。デフォルト: ``1''
スクリプト記述 (SCRIPTING)
bsdinstall は、スクリプトを使用して、付き添なし、または最小限の付き添でイ
ンストールをサポートします。これは、物理的なインストールメディアを変更す
るか、または、ネットワークを越えて diskless(8) のインストールで使用するこ
とができます。そのようなメディアの準備に関する情報は、「自動的なインス
トールメディアの構築」で見つかります、
スクリプトのインストールは、対話型インストールに基本的に同じパスをたどり
ますが、いくつかの細かい機能の違いがあります (例えば、スクリプトのインス
トールは、スクリプトのインストールは、通常、同じファイルをインストール
し、インストールメディアに直接、配布を追加することができるので、リモート
の入るファイルのフェッチをサポートしていません)。bsdinstall スクリプト
は、次の 2 つの部分から成ります: preamble と setup script です。preamble
は、(インストールする配布など (複数の) ディスクをどのようにパーティション
化するか) インストールのためのオプションを設定し、オプションの 2 番目の部
分は、bsdinstall が終了する前に新しくインストールされたシステムで
chroot(8) の下で実行されるシェルスクリプトです。2 つの部分は、セットアッ
プのスクリプトのためのインタプリタも設定する、通常のスクリプトのヘッダ
(#!) によって分離されます。
デフォルトのファイルシステムレイアウトと UFS ファイルシステムを使用した典
型的な bsdinstall スクリプトは、次のようになります:
PARTITIONS=DEFAULT
DISTRIBUTIONS="kernel.txz base.txz"
#!/bin/sh
sysrc ifconfig_DEFAULT=DHCP
sysrc sshd_enable=YES
pkg install puppet
複数のディスクにまたがる ZFS プールを含むスクリプト化されたインストールに
ついて、代りに、スクリプトは、次のようになります:
DISTRIBUTIONS="kernel.txz base.txz"
export ZFSBOOT_VDEV_TYPE=stripe
export ZFSBOOT_DISKS="ada0 ada1"
export nonInteractive="YES"
#!/bin/sh
echo "ifconfig_DEFAULT=DHCP" >> /etc/rc.conf
echo "sshd_enable=YES" >> /etc/rc.conf
pkg install puppet
FreeBSD リリースのメディアで、/etc/installerconfig に置かれたそのようなス
クリプトは、ブート時に実行され、システムは、インストールが完了した後に、
自動的にリブートされます。これは、新システムのそのままにされたネットワー
クのインストールのために使用することができます。詳細については、
diskless(8) を参照してください。
前文 (PREAMBLE)
前文は、インストーラの設定から成ります。これらは、ディスクのパーティショ
ン化と同様に、グローバルなインストールのパラメータ (環境変数を参照) を制
御します。前文は、インストールの最も最初に実行された sh(1) スクリプトとし
て解釈されます。これらの変数を設定するより複雑な振る舞いが望まれるなら、
インストーラを拡張するために任意のコマンドをここで実行することができま
す。環境変数の変数に加えて、特別な DISTRIBUTIONS では、前文は、ディスクの
セットアップを制御するために scriptedpart ターゲットに渡される変数
PARTITIONS を含むことができます。
もう一つの方法として、partedit の代わりに zfsboot を使用するために、前文
は、PARTITIONS (以下を参照) の代わりに変数 ZFSBOOT_DATASETS を含むことが
できます。zfsboot を使用するなら、変数 ZFSBOOT_DISKS と ZFSBOOT_VDEV_TYPE
は、基本システムのためのディスクのプールを作成するために設定されなければ
なりません。通常、ミラーリングされるブートディスクのために、この 2 つの変
数は、次のように見えます:
ZFSBOOT_DISKS="ada0 ada1"
ZFSBOOT_VDEV_TYPE=mirror
zfsboot コマンドのためにすべての変数をエクスポートすることを覚えていてく
ださい、そうでなければ、インストールは、失敗します。
セットアップスクリプト (SETUP SCRIPT)
前文に続くことは、#! 宣言で始まるオプションのシェルスクリプトです。このス
クリプトは、新しくインストールされたシステムで chroot(8) 環境の内部のイン
ストールのプロセスの終わりで実行され、設定ファイル、インストールパッケー
ジなど、をセットアップするために使用することができます、新しく設定された
システムサービス (例えば、ネットワーク) は、この時期でインストールされた
システムで開始されていなくて、インストールのホストサービスだけが利用可能
であることに注意してください。
ZFS データセット
インストールスクリプトで zfsboot を使用するなら、zfsboot パーティション
ツールは、基本システム上で ZFS データセットを作成するために
ZFSBOOT_DATASETS 変数を取ります。この変数の定義は、プールが多くのデータ
セットを含んでいるなら、大きくなるかもしれません。ZFSBOOT_DATASETS のデ
フォルト値は、次の通りです:
# DATASET OPTIONS (コンマまたは空白で区切られる; または両方)
# ブート環境 [BE] root とデフォルトのブートデータセット
/$ZFSBOOT_BEROOT_NAME mountpoint=none
/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME mountpoint=/
# 圧縮された /tmp, setuid でなく, exec を許可します
/tmp mountpoint=/tmp,exec=on,setuid=off
# 'base' ファイルが BEROOT に行くことができるように, /usr を
# マウントしません
/usr mountpoint=/usr,canmount=off
# ホームディレクトリは, 分割されるので, それらは, すべての BE に
# 共通です
/usr/home # NB: /home is a symlink to /usr/home
# ports ツリー
/usr/ports setuid=off
# ソースツリー (圧縮される)
/usr/src
# /var と friend を作成します
/var mountpoint=/var,canmount=off
/var/audit exec=off,setuid=off
/var/crash exec=off,setuid=off
/var/log exec=off,setuid=off
/var/mail atime=on
/var/tmp setuid=off
最初のカラムは、ZFSBOOT_POOL_NAME プールの一部として作成されるデータセッ
トの名前で、各行の残りのは、各データセットで設定されるオプションを含んで
います。複数のオプションが指定されるなら、コンマまたは空白類のいずれかに
よって区切ることができます。ポンド/ハッシュ文字に続くものすべては、コメン
トとして無視されます。
自動的なインストールメディアの構築
自動インストールメディアを構築するなら、リリース ISO を抽出するために tar
を使用します。
mkdir release-media
tar xvf -C release-media FreeBSD-13.0-RELEASE-amd64-disc1.iso
次に、上記のようなスクリプトを etc/installerconfig に置きます。
次に、このディレクトリは、diskless(8) のインストールのための NFS ルートと
して直接使用することができ、/usr/src/release のリリーススクリプトを使用し
て ISO イメージに再構築することができます。例えば、amd64 で:
sh /usr/src/release/amd64/mkisoimages.sh -b '13_0_RELEASE_AMD64_CD'
output.iso release-media
歴史
bsdinstall のこのバージョンは、FreeBSD 9.0 ではじめて登場しました。
作者
Nathan Whitehorn <nwhitehorn@FreeBSD.org>
Devin Teske <dteske@FreeBSD.org>
Allan Jude <allanjude@FreeBSD.org>
FreeBSD 13.2 July 18, 2022 FreeBSD 13.2