BSDINSTALL(8) | FreeBSD System Manager's Manual | 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
- ディスクのパーティショニングを含む標準の対話式インストールを実行します。
- entropy
- /dev/random から少量のデータを読み込み、新システムのルートディレクトリのファイルに、それを格納します。
- jail destination
- jail(8) での使用に適した、 destination で新しい chroot システムをセットアップします。一般的に、振る舞いは、ディスクのパーティショニングとネットワークセットアップが、スキップされ、カーネルが新しいシステムにインストールされないことを除いて、 auto と同様です。
- script script
- script でインストールのスクリプトを実行します。このターゲットに関する詳細については、 スクリプト記述 (SCRIPTING) を参照してください。
- keymap
- 現在制御されている TTY が syscons(4) コンソールであるなら、現在の keymap を設定するためにユーザに問い合わせ、新しいシステムの rc.conf に結果を保存します。
- hostname
- 新しいシステムのホスト名についてユーザにプロンプトを出し、新しいシステムの rc.conf に結果を保存します。また、 BSDINSTALL_CONFIGCURRENT が設定されているなら、現在のシステムのホスト名を設定します。
- netconfig
- 新しいシステムの rc.conf と resolv.conf に結果を保存し、(最初に、無線インタフェースで wlanconfig を呼び出し) ネットワークインタフェースを対話的に設定します。また、 BSDINSTALL_CONFIGCURRENT が設定されているなら、マッチする現在のシステムのネットワークインタフェースを設定します。
- autopart
- 単一のディスクのインストールのためにインストーラの対話的なガイドを行うディスクパーティショナを提供します。ディスクをパーティションに区切って newfs(8) を実行し、新しいシステムの fstab に書き込みます。
- zfsboot
- マルチディスクのインストールのためのインストーラの (実験) 対話型/スクリプト可能な ZFS パーティショナ (partitioner) を提供します。データセットで単一の zpool を作成し、新しいシステムの rc.conf, loader.conf と fstab に書き込みます。 geli(8), gnop(8), と他の多くの機能をサポートします。
- partedit
- 複数のディスクのセットアップ、UFS でないファイルシステム、とパーティションスキームの手動選択のためのサポート付きで、インストーラの対話的な手動のディスクパーティショナを提供します。ディスクをパーティションに区切って newfs(8) を実行し、新しいシステムの fstab に書き込みます。
- scriptedpart parameters
-
autopart と
partedit のようにディスクをセットアップしますが、
parameters で指定されたディスクのセットアップに従って非対話式に行います。各ディスクの設定は、3 つの部分の引数によって指定されます:
disk [ scheme][ {partitions}]
複数のディスクのセットアップは、セミコロンによって区切られます。 disk 引数は、(削除される) 操作するディスクを指定し、一方、 scheme 引数は、ディスクに適用する gpart(8) パーティションのスキームを指定します。 scheme が指定されなければ、 scriptedpart は、利用者のプラットフォームでデフォルトのブート可能なスキームを適用します。また、 partitions 引数は、オプションで、 disk をパーティション化する方法を指定します。それは、中括弧で囲んだ作成するパーティションのコンマで区切られたリストから成ります。各パーティションの定義は、次の形式を取ります
size type [ mount point]
size は、バイト単位 (K、M と G の接尾辞は、それぞれ、キロバイト、メガバイトとギガバイトを指定するために付け加えることができます) で作成するパーティションのサイズを指定し、一方、 auto キーワードによって、パーティションは、すべてのディスクの残りの空間を取ります。 type オプションは、 gpart(8) ファイルシステムのタイプ (例えば、freebsd-ufs または freebsd-swap) を選択します。オプションの mount point 引数は、作成されたパーティションがインストールされたシステムでマウントされる場所を設定します。使用例として、一般的な呼び出しは、次のように見えます:
bsdinstall scriptedpart ada0 { 20G freebsd-ufs /, 4G freebsd-swap, 20G freebsd-ufs /var, auto freebsd-ufs /usr }
- 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 に書き込みます。
- config
- 新しいシステムで新しいシステムのための設定ファイル (例えば、 netconfig などによって生成された rc.conf の断片) をインストールします。
環境変数
次の環境変数は、インストールプロセスの種々な状況を制御します。多くは、インストールの間に内部的に使用され、ほとんどのインストールシナリオのために妥当なデフォルト値があります。他のものは、様々な対話的なユーザプロンプトによって設定され、スクリプトを作成するか、またはインストーラをカスタマイズするとき、有効に上書きすることができます。- DISTRIBUTIONS
- インストールする配布 (例えば、"base kernel ports") の組。デフォルト: なし
- BSDINSTALL_DISTDIR
- 配布ファイルが置かれる (または、それらがダウンロードされるべきである) ディレクトリ。デフォルト: /usr/freebsd-dist
- BSDINSTALL_DISTSITE
- それらが BSDINSTALL_DISTDIR によって定義されたディレクトリにまだ存在しないなら、配布ファイルがダウンロードされる URL。これは、アーキテクチャとリリース名を含むファイルへのフルパスであるべきです。 FreeBSD ミラーのプロンプトを出すほとんどのターゲット (例えば、 auto と jail) は、この変数が環境で既に定義されているなら、そのステップをスキップします。例: ftp://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/powerpc64/9.1-RELEASE
- BSDINSTALL_CHROOT
- 配布ファイルがアンパックされるべきであるディレクトリと新しいシステムのルートファイルシステムがマウントされるべきであるディレクトリ。デフォルト: /mnt
- BSDINSTALL_LOG
- インストールのためのログファイルへのパス。デフォルト: /tmp/bsdinstall_log
- BSDINSTALL_TMPETC
- config ターゲットが実行されるまで、新しいシステムの /etc のためのファイルが格納されるディレクトリ。このディレクトリがまだ存在していないなら、作成されます。デフォルト: /tmp/bsdinstall_etc
- BSDINSTALL_TMPBOOT
- config ターゲットが実行されるまで、新しいシステムのために予定されたファイルが格納されるディレクトリ。このディレクトリがまだ存在しないなら、作成されます。デフォルト: /tmp/bsdinstall_boot
スクリプト記述 (SCRIPTING)
bsdinstall スクリプトは、次の 2 つの部分から成ります: preamble と setup script です。 preamble は、(インストールする配布など (複数の) ディスクをどのようにパーティション化するか) インストールのためのオプションを設定し、オプションの 2 番目の部分は、 bsdinstall が終了する前に新しくインストールされたシステムで chroot(8) の下で実行されるシェルスクリプトです。 2 つの部分は、セットアップのスクリプトのためのインタプリタも設定する、通常のスクリプトのヘッダ (#!) によって分離されます。典型的な bsdinstall スクリプトは、次のようになります:
PARTITIONS=ada0 DISTRIBUTIONS="kernel.txz base.txz" #!/bin/sh echo "ifconfig_em0=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 を含むことができます。あるいは、 PARTITIONS の代わりに、前文は、ブートプールセットアップの ZFS データセット/オプションを制御するために (実験) zfsboot ターゲットによって解析される、変数 ZFSBOOT_DATASETS を含むことができます。セットアップスクリプト (SETUP SCRIPT)
前文に続くことは、#! 宣言で始まるオプションのシェルスクリプトです。このスクリプトは、新しくインストールされたシステムで chroot(8) 環境の内部のインストールのプロセスの終わりで実行され、設定ファイル、インストールパッケージなど、をセットアップするために使用することができます、新しく設定されたシステムサービス (例えば、ネットワーク) は、この時期でインストールされたシステムで開始されていなくて、インストールのホストサービスだけが利用可能であることに注意してください。歴史
bsdinstall のこのバージョンは、 FreeBSD 9.0 ではじめて登場しました。作者
<nwhitehorn@FreeBSD.org>October 15, 2013 | FreeBSD |