This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
ローダは三段階の起動プロセスの最終段階です. ローダは通常, ファイルシステム上の /boot/loader として存在しています.
Note: /boot/boot0, /boot/boot1, /boot/boot2 というファイルがありますが, これらは MBR, 起動セクタ, ディスクラベルの実際のコピーではありません.
ローダは, よりさまざまなコマンド群をサポートした 強力なインタープリタによって提供される簡易組み込みコマンド群を利用することで, ユーザが利用しやすい設定手段となるように設計されています.
ローダは初期化の際にコンソールとディスクの検出を行ない, どのディスクから起動しているかを調べます. そして必要な変数を設定してからインタープリタを起動し, 簡易コマンドを解釈します.
ローダは次に /boot/loader.rc を読み込み, 通常, 変数の標準値を定義した /boot/defaults/loader.conf と, そのマシンにローカルな変数を定義した /boot/loader.conf を読み込みます. loader.rc はそれらの変数にもとづき, 選択されたモジュールとカーネルをロードします.
ローダは最後に, 標準設定で 10 秒のキー入力待ち時間を用意し, 入力がなければカーネルを起動します. 入力があった場合, 簡易コマンド群が使えるプロンプトが表示され, ユーザは変数を調整したり, すべてのモジュールをアンロードしたり, モジュールをロードしたりすることができます. その後, 最終的な起動や再起動へ移行します.
この処理に関するより技術的な説明は loader(8) にあります.
簡易コマンド群は, 次のようなもので構成されています.
seconds で与えられた時間内に入力がなければ, カーネルの起動へと進みます. カウントダウンを表示し, 標準設定では 10 秒間です.
すぐにカーネルの起動へ進みます. オプション, カーネル名が指定されている場合は, それらが使われます.
すべてのモジュールの設定を, 起動時と同じように変数にもとづいて自動的に行ないます. このコマンドは, まず unload を行なって, 変数--普通 kernel など--を変更した場合にのみ有効に働きます.
/boot/loader.help を読み込み, ヘルプメッセージを表示します. topic に index 指定された場合, 利用可能な topic を表示します.
指定されたファイル名のファイルを処理します. ローダはファイルを読み込み, 行単位で解釈します. エラーが発生した場合, include コマンドの実行はその時点で停止します.
指定されたファイル名のカーネル, カーネルモジュール, あるいは type に指定された種類のファイルをロードします. ファイル名以降に指定された引数はファイルへと渡されます.
指定された path にあるファイルを表示します. path が指定されていなければ, ルートディレクトリを表示します. -l が指定されていればファイルサイズも表示されます.
モジュールがロード可能なすべてのデバイスを表示します. もし -v が指定されていれば, より詳細な出力がされます.
ロード済みのモジュールを表示します. -v が指定されていれば, より詳細な内容が出力されます.
LINES 単位でスクロールを停止しながら指定されたファイルを表示します.
すぐにシステムを再起動します.
ローダの環境変数を設定します.
すべてのロード済みモジュールを削除します.
次にあげるのは, ローダの実践的な使用例です.
普段使っているカーネルをシングルユーザモードで起動します.
boot -s
普段使っているカーネルとモジュールをアンロードし, 古い(もしくは別の)カーネルをロードします.
unload load kernel.old
kernel.GENERIC とすると, インストールディスクに入っていた generic カーネルを指定することができます. また, 直前にインストールされていたカーネル(たとえば, カーネルを自分で設定したり, アップグレードしたりした場合)を指定するには kernel.old とします.
Note: 普段のカーネルで使っているモジュールを 指定したカーネルでロードする場合は, 下のようにします.
unload set kernel="kernel.old" boot-conf
カーネルの設定スクリプト(通常, カーネル起動時に設定される内容を自動化するスクリプト)をロードします.
load -t userconfig_script /boot/kernel.conf