スポンサーリンク

SYSINSTALL(8) FreeBSD システム管理者マニュアル SYSINSTALL(8)

名称

sysinstall − システムのインストール及び設定のためのツール

書式

sysinstall [var=value] [function] [...]

解説

sysinstall ユーティリティは、 FreeBSD システムのインストールと設定のため のユーティリティです。これは FreeBSD インストーラのブートフロッピが最初に 起動するプログラムであり、新規に FreeBSD システムがインストールされた時に は /usr/sbin/sysinstall に、後のシステム設定で使用するためにコピーされま す。

この sysinstall ユーティリティは、引数なしで起動された場合には既定のモー ドで動作します。このモードでは、インストール及び設定のためのメニューが存 在します。

しかし sysinstall のサブシステムを直接起動する必要がある場合には、コマン ドラインからそれを指定することもできます。インストールスクリプトを実行す ることとコマンドラインからの指定はまったく同じことなので、スクリプトの作 成に関するセクションに目を通しておくと良いでしょう。

sysinstall ユーティリティは、 libdisk(3) の機能を用いて MBR やディスクラ ベルを書くことと、新規および既存の FreeBSD システムに、配布ファイルや package (訳注: FreeBSD の package system におけるパッケージを指す場合にこ う表記します) をインストールすることができるモノリシックな C プログラムに 過ぎません。また、このプログラムは FreeBSD インストールのための起動処理の 中で実行されたときのために、 init(8) の代用として動作するための機能も併せ 持っています。これは自分以外のユーティリティのサポートがほとんどないと仮 定し、ファイルシステム操作のほとんどを、(たとえば mount(2) のような) ユー ティリティに相当するシステムコールを直接呼び出すことによって行ないます。

sysinstall ユーティリティは現在のところ、システムコンソールや、カラー表示 をサポートした端末エミュレータで起動した場合に単純な ANSI ライングラ フィックスや色を使った操作を実現するために dialog(3) を使用しています (xterm の新しいバージョンでは、termcap の ‘‘xterm-color’’ エントリを使用 することでカラー表示をサポートします)。

このプログラムはそろそろライフサイクルの終わりに来ており、新しいものに よって置き換えられるかもしれません。

スクリプトの実行

sysinstall ユーティリティは、そのさまざまなメニューを通じ対話的に操作する こともできますし、外部のスクリプトによってバッチモードで動作させることも できます。このようなスクリプトを読み込んで実行する方法には以下の 3 通りが あります:

       LOAD_CONFIG_FILE

もし sysinstall が、環境変数 (または Makefile 中に) LOAD_CONFIG_FILE に何らかの値がセットされた状態でコンパイルされて いれば、 sysinstall が非対話的なモードで起動された際に自動的に探 して読み込むファイル名としてその値が用いられます。このオプション は、大きなサイトにおいて、ほぼ同じ設定とインストールオプション で、ひとつの雛型に基づき多数のマシンにインストールしたい場合のた めのものです。

メインメニュー
sysinstall
が対話的に起動された場合、すなわち既定の方法で起動され た場合、オプション "load config file" を含むメインメニューを表示 します。このオプションを選択すると、スクリプトファイル名を尋ねる プロンプトが出され、続いてそのファイルを DOS または UFS 形式のフ ロッピディスクから読み込みます。

コマンド行
sysinstall
がマルチユーザモードで動作している場合はコマンドライン 引数のそれぞれがスクリプトの指示であるとして扱われます。実行終了 のリクエスト (たとえば shutdown 指示など)、引数列の終わり、エラー 発生のいずれかにより実行は終了します。

たとえば、

/usr/sbin/sysinstall _ftpPath=ftp://ziggy/pub/ mediaSetFTP configPackages

は、 sysinstall を、インストールメディア FTP (サーバは ‘ziggy’) で初期化し、続いて package インストールエディタを起動し、それが終 わると終了します。

スクリプトの文法

スクリプトはひとつ以上の指示のリストです。それぞれの指示は以下の形をとり ます。

var=value

function

#somecomment

var=value は、たとえば "ftpPass=FuNkYChiKn" のような、 sysinstall の内部 変数の設定です。また、 function は、"mediaSetFTP" のような sysinstall の 内部関数の名称であり、 #comment はドキュメンテーションのために挿入する一 行のコメントです (sysinstall はこれを無視します)。それぞれの指示は一行に ひとつずつ書かれなければなりません。関数は、既知の変数名を調べることで、 その引数を得ます。したがって、ある変数を必要とする関数を呼び出す前には、 関連する変数を予め設定しておく必要があります。

各ディレクティブの前に noError 変数を設定しておくことが可能です。これによ り、ディレクティブ自身は無視されるような場合においても、エラーを検知可能 とします。 noError の値は、ディレクティブが処理されるたび自動的に、デフォ ルトの "未設定" に戻ります。

いつどの関数が、どの変数に依存するかを、下の表に示します。

関数一覧:

       configAnonFTP

匿名 FTP の設定メニューを起動します。

変数: 無し

configRouter
使用したいルーティングデーモンを選択します。必要ならサードパー ティのものを使用することもできます。

変数:

router
これには、たとえば ‘‘routed’’ や ‘‘gated’’ のように、希望 するルーティングデーモンの名前を設定します。設定されてい なければ入力を求められます。

configNFSServer
ホストを NFS サーバとして設定します。

変数: なし

configNTP
ホストをネットワークタイムプロトコルのユーザとして設定します。

変数:

ntpdate_flags
これには、 ntpdate(8) のオプションを設定します。同期をと るために使用するサーバの名前はここに設定してください。

configPCNFSD
ホストを PC NFS をサポートするように設定します。

変数:

pcnfsd_pkg
必要ならば PCNFSD の package 名を設定します (既定値として ハードコードされたものが使用されます)。

configPackages
対話的な package 管理画面を起動します。

変数: なし

configUsers
システムにユーザやグループを追加します。

変数: なし

diskPartitionEditor
ディスクパーティション (MBR) エディタを起動します。

変数:

geometry
シリンダ数/ヘッド数/セクタ数の形式で書かれたディスクジオメ トリを設定します。既定値: ジオメトリを変更しません。

partition
ディスクパーティションのタイプやサイズを設定します。この値 が free であれば、 FreeBSD のために使用可能な空き領域のみ を使用します。 all であれば、ディスク全体を FreeBSD に割り 当てますが、正しいパーティションテーブルを作成します。 existing であれば、既存の FreeBSD パーティションのうち、最 初に見つかったものを使用します。 exclusive であれば、ディ スクを、 ‘‘危険な方法で専用化された’’ モードで使用します。 最後に、 somenumber であれば、空き領域のうちの somenumber ブロックを新規の FreeBSD パーティションのために使用しま す。既定値: 対話モードで起動します。

bootManager
は、次のどれかから選択する必要があります。 boot は、ブート マネージャのインストールを指示します。 standard は、ブート マネージャでない「標準の」DOS MBRのインストールを指示しま す。 none は、ブートマネージャに対して何の操作も行わないこ とを指示します。既定値: none です。

diskInteractive
設定すると、対話的なディスクパーティションエディタを起動し ます。

注意: この関数では実際のディスクへの書き込みは行われません。実際 に書き込みを行うためには、 diskPartitionWrite 操作を行う必要があ ります。

diskPartitionWrite
は、MBR に対する、待ち状態にあるすべての変更を行います (一般には diskPartitionEditor によって呼び出されます)。

変数: 無し

diskLabelEditor
ディスクラベルエディタを起動します。スクリプトから動かすのは ちょっと手品のようになります。というのも、 diskPartitionEditor 関 数で作成された各 FreeBSD (タイプ 0xA5) パーティション中のすべてに 対してラベルする必要が本質的にあるためであり、これはどのようにレ イアウトされるかについての少数のルールを知る必要があるためです。 スクリプトを作成して、自動的にディスク空間の割り当てとパーティ ションを行う場合、少なくとも一度はまず対話的にインストールを実行 し、スライス名がどうなるかを見てから、これをスクリプトに埋め込む ことをお勧めします。

例えば、SCSI ディスクがあり、そのスライス 2 に FreeBSD を作成した とします (DOS パーティションはスライス 1 にあるとします)。 FreeBSD 全体のスライス名は da0s2 になります (DOS プライマリパー ティションは da0s1 となります)。更に、このパーティションに 500MB あり、 FreeBSD 用にこの空間をルートとスワップと var と usr のファ イルシステムに更に分割すると仮定します。 diskLabelEditor 関数呼び 出しには、次の変数設定が伴うでしょう:

da0s2-1=ufs 40960 /
20MB ルートファイルシステム (すべての大きさは 512 バイトブ ロック数)。

da0s2-2=swap 131072 /
64MB スワップパーティション。

da0s2-3=ufs 204800 /var
100MB /var ファイルシステム。

da0s2-4=ufs 0 /usr 1
空き空間の残り (約 316MB) が /usr ファイルシステムでソフト アップデートを有効にします (マウントポイント後の非 0 引数 は、ソフトアップデートフラグ設定を意味します)。

新規パーティションを作成するのと同様に、既存のパーティションのマ ウントや消去に、 diskLabelEditor を使用可能です。前の例の、DOS パーティションをマウントし、これに対応する /etc/fstab エントリ を、新規インストールにおいて作成したいとします。 diskLabelEditor 関数の呼び出し前に、次の追加行を単に足せば良いです:

da0s1=/dos_c N

これは、最初のスライスを /dos_c にマウントしてこれを newfs しない よう、ラベルエディタに指示します (sysinstall は DOS パーティショ ンに対しては如何なる場合でも newfs を実行しません。既存の UFS パーティションに対しても、ここに名前を書くことで実行できます。 2 番目のフィールドは省略不可です)。

diskInteractive 変数を設定することにより、前述のように変数を使用 した明示的なレイアウトを行う代りに、ディスクラベルエディタが対話 的なダイアログを使用してディスクを分割するよう、要求できます。

注: diskLabelCommit が呼び出される前は、ファイルシステムデータは 実際にディスクに書き込まれません。

diskLabelCommit
設定した、待ち状態であるディスクラベル情報をすべて書き込み、 diskLabelEditor でマウントを設定したすべてのファイルシステムをマ ウントします。

変数: なし

distReset
選択した配布ファイルのセットをリセットして、何も選択していない状 態にします。

変数: なし

distSetCustom
配布ファイルセットの選択を、予め用意されたセットからの選択でな く、非対話モードでも「カスタム」で行うようにします。

変数:

dists
読み込む配布ファイルのセットのリストを設定します。値とし て使用できるのは以下の通りです。

base
基本バイナリファイルのセット

doc
様々な文書

games
ゲーム

manpages
フォーマット前のマニュアルページ

catpages
フォーマット済のマニュアルページ

proflibs
開発者のためのプロファイルされたライブラリ

dict
スペルチェックなどのツールのための辞書情報

info
GNU info ファイルとその他の追加文書

compat1x
FreeBSD 1.x との互換性

compat20
FreeBSD 2.0 との互換性

compat21
FreeBSD 2.1 との互換性

compat22
FreeBSD 2.2 及び FreeBSD 3.0 の a.out バイナリ 互換性

compat3x
FreeBSD 3.x との互換性 (FreeBSD 4.0 でのみ利用 可能)

compat4x
FreeBSD 4.x との互換性 (FreeBSD 5.0 システムで のみ利用可能)

ports
ports コレクション

ssecure
/usr/src/secure

sbase
/usr/src/(トップレベルファイル)

scontrib
/usr/src/contrib

sgnu
/usr/src/gnu

setc
/usr/src/etc

sgames
/usr/src/games

sinclude
/usr/src/include

skrb5
/usr/src/kerberos5

slib
/usr/src/lib

slibexec
/usr/src/libexec

srelease
/usr/src/release

srescue
/usr/src/rescue

sbin
/usr/src/bin

ssbin
/usr/src/sbin

sshare
/usr/src/share

ssys
/usr/src/sys

subin
/usr/src/usr.bin

susbin
/usr/src/usr.sbin

ssmailcf
/usr/src/usr.sbin/sendmail/cf

Xbin
X.Org クライアントアプリケーション

Xlib
X.Org ライブラリ

Xman
X.Org マニュアルページ

Xdoc
X.Org プロトコルとライブラリの文書

Xprog
X.Org imake 配布物

Xsrv
X.Org X サーバ

Xnest
X.Org ネスト X サーバ

Xprt
X.Org プリントサーバ

Xvfb
X.Org 仮想フレームバッファ X サーバ

Xfmsc
X.Org 種々の フォントセット

Xf75
X.Org 75DPI フォントセット

Xf100
X.Org 100DPI フォントセット

Xfcyr
X.Org キリル語フォントセット

Xft1
X.Org Type 1 フォントセット

Xftt
X.Org TrueType フォントセット

Xfs
X.Org フォントサーバ

distSetDeveloper
標準開発者配布セットを選択します。

変数: 無し

distSetXDeveloper
標準 X 開発者配布セットを選択します。

変数: 無し

distSetKernDeveloper
標準カーネル開発者配布セットを選択します。

変数: 無し

distSetUser
標準ユーザ配布セットを選択します。

変数: 無し

distSetXUser
標準 X ユーザ配布セットを選択します。

変数: 無し

distSetMinimum
最小配布セットを選択します。

変数: 無し

distSetEverything
全部、つまり利用可能な配布すべてを選択します。

変数: 無し

distSetSrc
ソースのパーツ群を、対話的に選択します。

変数: 無し

distSetXOrg
X.Org のパーツ群を、対話的に選択します。

変数: 無し

distExtractAll
現在選択されている配布すべてをインストールします (メディアデバイ スが既に選択されていることが必要です)。

変数: 無し

docBrowser
(必要であれば) HTML 文書ブラウザをインストールし、 HTML 文書サブ メニューに行きます。

変数:

browserPackage
必要に応じてインストールを試みる、ブラウザの package 名で す。デフォルトは最新の links package です。

browserBinary
ブラウザバイナリ自身の名前です (browserPackage 変数に優先 させる場合)。デフォルトは links です。

installCommit
ディスクに対する待ち状態の変更を、すべて実施します。この関数は、 本質的に、細粒度の "実施" 関数をまとめたものです。

変数: 無し

installExpress
「高速」インストールを開始します。ユーザへの質問は少数です。

変数: 無し

installStandard
「標準」インストールを開始します。利用可能なインストールタイプ中 で、最もユーザフレンドリです。

変数: 無し

installUpgrade
アップグレードインストールを開始します。

変数: 無し

installFixitHoloShell
init として起動している場合、「緊急ホログラフィックシェル」を VTY4 で起動します。 noHoloShell を設定しない限りにおいては、これ はインストール処理の一部として自動的に実施されます。

変数: 無し

installFixitCDROM
"fixit" モードに入ります。ライブファイルシステム CDROM がドライブ にあるものと仮定します。

変数: 無し

installFixitFloppy
"fixit" モードに入ります。 fixit フロッピディスクが利用可能と仮定 します (ユーザは問い合わせを受けます)。

変数: 無し

installFilesystems
インストールのファイルシステム初期化部分のみを実行します。

変数: 無し

installVarDefaults
全変数をデフォルトに初期化し、以前の設定を上書きします。

変数: 無し

loadConfig
#include 文のようなものであり、他の設定ファイルをロードできます。

変数:

configFile
ロードするファイルの完全な形でのパス名です。

mediaClose
メディアデバイスが開いている場合、閉じます。

変数: 無し

mediaSetCDROM
インストールメディアとして FreeBSD CDROM を選択します。

変数: 無し

mediaSetFloppy
インストールメディアとして作成済フロッピインストールセットを選択 します。

変数: 無し

mediaSetDOS
インストールメディアとして既存の DOS プライマリパーティションを選 択します。最初に見付かるプライマリパーティション (例 C:) を使用し ます。

変数: 無し

mediaSetTape
インストールメディアとしてテープデバイスを使用します。

変数: 無し

mediaSetFTP
インストールメディアとして FTP サイトを使用します。

変数:

hostname
インストールされるホストの名前 (省略不可)。

domainname
インストールされるホストのドメイン名 (省略不可)。

defaultrouter
このホストのデフォルトルータ (省略不可)。

netDev
どのホストインタフェースを使用するか (例えば ed0ep0 です。省略不可)。

netInteractive
設定すると、関連するすべての設定変数を陶に設定していて も、対話的なネットワーク設定フォームを起動します (省略 可)。

ipaddr
選択したホストインタフェースの IP アドレス (省略不可)。

netmask
選択したホストインタフェースのネットマスク (省略不可)。

_ftpPath
対象となる FreeBSD 配布を保持する FTP サイトの完全な形で の URL。例えば ftp://ftp.FreeBSD.org/pub/FreeBSD/

mediaSetFTPActive
mediaSetFTP
と同様ですが、「能動的」な FTP 転送モードを使用しま す。

変数: mediaSetFTP と同様です。

mediaSetFTPPassive
mediaSetFTP
と同様ですが、「受動的」な FTP 転送モードを使用しま す。

変数: mediaSetFTP と同様です。

mediaSetHTTP
mediaSetFTP
と同様ですが、HTTP プロキシを使用します。

変数: mediaSetFTP を参照してください。更に以下も使用します。

_httpPath
使用するプロキシ (host:port) (省略不可)。

mediaSetUFS
インストールメディアとして、 (ラベルエディタでマウントされている) 既存の UFS パーティションを選択します。

変数:

ufs
対象となる FreeBSD 配布を保持する、完全な /path 指定。

mediaSetNFS

変数:

hostname
インストールされるホストの名前 (省略不可)。

domainname
インストールされるホストのドメイン名 (省略不可)。

defaultrouter
このホストのデフォルト経路 (省略不可)。

netDev
どのホストインタフェースを使用するか (例えば ed0ep0 です。省略不可)。

netInteractive
設定すると、関連するすべての設定変数を陶に設定していて も、対話的なネットワーク設定フォームを起動します (省略 可)。

ipaddr
選択したホストインタフェースの IP アドレス (省略不可)。

netmask
選択したホストインタフェースのネットマスク (省略不可)。

nfs
対象となる FreeBSD 配布を保持する、完全な hostname:/path 指定。

mediaSetFTPUserPass

変数:

ftpUser
FTP サーバに接続する場合のユーザ名を設定します。既定値: ftp

ftpPass
FTP サーバに接続する場合のパスワードを設定します。既定値: user@host

mediaSetCPIOVerbosity

変数:

cpioVerbose
cpio で展開を行う際のメッセージの冗長度を low, medium, high から選択します。

mediaGetType
対話的にユーザにメディアタイプの指定を求めます。

変数: 無し

optionsEditor
オプション編集画面を起動します。

変数: なし

packageAdd
package を取得してインストールしようと試みます (メディアが設定さ れている必要があります)。

変数:

package
bash-1.14.7 や ncftp-2.4.2 のようにインストールする package の名前を指定します。

addGroup
対話的なグループエディタを起動します。

変数: なし

addUser
対話的なユーザエディタを起動します。

変数: なし

shutdown
スクリプトの実行を停止して sysinstall を終了します。

変数: なし

system
system(3) を用いて外部コマンドを実行します。

変数:

command
実行するコマンドの名前。ブートフロッピから起動されている 場合は、システム全体がインストールされている場合と比較し て使用できるものが大幅に限定されていることに注意してくだ さい。

tcpMenuSelect
ネットワークデバイスを設定します。

変数: mediaSetFTP と同様ですが、 _ftpPath が使用されないことが違 います。

配布メディア

次のファイルを使用して、初期システムインストール時の sysinstall の動作を 変更可能です。

       cdrom.inf

プロパティを 1 行に 1 個ずつ記述するテキストファイルであ り、使用するメディアの内容を記述します。各行の文法は、単 に ‘‘property = value’’ というものです。現在のところ、次 のプロパティだけが認識されます。

CD_VERSION
このプロパティは、このメディアボリューム の FreeBSD バージョンに設定すべきです。 例えば ‘‘CD_VERSION = 5.3’’ です。

CD_MACHINE_ARCH
このプロパティは、このボリューム上の内容 のアーキテクチャに設定すべきです。このプ ロパティは、通常、複数のアーキテクチャを 含む FreeBSD 製品でのみ使用され、ユーザ が Alpha package を i386 マシンにインス トールしようとしたときにより良いエラー メッセージを提供するようになります。例え ば ‘‘CD_MACHINE_ARCH = alpha’’ です。

CD_VOLUME
マルチボリュームコレクション (例えば FreeBSD 4-CD セット) では、各ディスクの ports/INDEX ファイルは、セットの完全な package インデックスを含むべきです。 INDEX ファイルの最後のフィールドは、どの ボリュームにその package が含まれるのか を示し、この CD_VOLUME プロパティは現在 のディスクのボリューム ID を定義します。

packages/INDEX
package インデックスファイルです。各 package が、必要な依 存関係等の追加メタデータと共に各行に列挙されます。このイ ンデックスは ports(7) コレクションで ‘‘make index’’ を実 行することにより生成されます。複数ボリュームサポートが有 効な場合、どの package がどのメディアボリュームに含まれる のかを示す追加フィールドが各行に追加されます。

FreeBSD の完全なリリースの構築方法については、 release(7) を参照してくだ さい。

関連ファイル

このユーティリティは /etc/rc.conf, /etc/hosts, /etc/resolv.conf の内容 を、ネットワーク等の設定変更に応じて変更します。

関連項目

十分に完全なソースツリーがオンライン上にあれば、サンプルのインストールス クリプトについて /usr/src/usr.sbin/sysinstall/install.cfg を参照してくだ さい。

歴史

このバージョンの sysinstall は、 FreeBSD 2.0 ではじめて登場しました。

作者

Jordan K. Hubbard ⟨jkh@FreeBSD.org⟩

バグ

本ユーティリティは雛型であり、期限切後も数年を生き延びており、大いに死す べきです。

FreeBSD 10.0 August 9, 1997 FreeBSD 10.0

スポンサーリンク