tail head cat sleep
QR code linking to this page

manページ  — SYSINSTALL

名称

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 との互換性 ( Fx 4.0 でのみ利用可能)
compat4x FreeBSD 4.x との互換性 ( Fx 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>

バグ

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

SYSINSTALL (8) August 9, 1997

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase.
— John Lions