Index: head/ja_JP.eucJP/books/handbook/boot/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/boot/chapter.xml (revision 47911) +++ head/ja_JP.eucJP/books/handbook/boot/chapter.xml (revision 47912) @@ -1,1035 +1,951 @@ &os; の起動のプロセス この章では 起動 ブートストラップ (bootstrap) 計算機を起動しオペレーティングシステムをロードするプロセスは、 ブートストラッププロセス、 - もしくは単に 起動 と呼ばれます。 + もしくは 起動 と呼ばれます。 &os; の起動プロセスを使えば、 システムをスタートするときに起きることをかなり柔軟にカスタマイズすることができます。 同じ計算機にインストールされた別のオペレーティングシステムを選択することもできますし、 同じオペレーティングシステムの違うバージョンを選択することも、 インストールされた別のカーネルを選択することさえできます。 この章では、指定できる設定オプションついて詳しく説明します。 &os; カーネルがスタートし、デバイスを検出し、 &man.init.8; を起動するまでに起きることすべてを含む &os; の起動プロセスのカスタマイズ方法について説明します。 これは、起動メッセージのテキストの色が、 明るい白から灰色に変わるまでに起きています。 この章を読むと、以下のことが分かります。 &os; のブートストラップシステムの構成およびそれらが互いにどう関係しているのか 起動プロセスを制御するために &os; のブートストラップの各要素に付加できるオプション - &man.device.hints.5; の基本的な記述方法 + ブートスプラッシュスクリーンの設定方法 + + + device hints の基本的な記述方法 + + + + シングルユーザもしくはマルチユーザモードでの起動方法、 + および &os; システムのシャットダウンの方法 + - この章では Intel x86 システム上で動作する &os; + この章では Intel x86 および amd64 システム上で動作する &os; の起動プロセスだけを扱います。 - 起動時の問題 + &os; の起動プロセス 計算機の電源を入れ、オペレーティングシステムをスタートさせるのには、 おもしろいジレンマがあります。定義により、 計算機は、オペレーティングシステムが起動するまでは、 ディスクからプログラムを動かすことも含めて、 何をどうすればよいかまったく知りません。 計算機はオペレーティングシステムなしにディスクからプログラムを実行することができず、 オペレーティングシステムのプログラムがディスク上にあるのなら、 どうやってオペレーティングシステムを起動するのでしょうか? この問題はほらふき男爵の冒険 という本の中に書かれている問題ととてもよく似ています。 登場人物がマンホールの下に半分落っこちて、 靴紐 (ブートストラップ) をつかんで自分を引っぱり、持ち上げるのです。 計算機の黎明期には、ブートストラップ という用語でオペレーティングシステムをロードする機構のことを指していたのですが、 いまはこれを縮めて ブート (起動) と言います。 BIOS 基本入出力システム (Basic Input/Output System)BIOS x86 ハードウェアでは、基本入出力システム (Basic Input/Output System: BIOS) にオペレーティングシステムをロードする責任があります。 - オペレーティングシステムをロードするために、 - BIOS がハードディスク上のマスターブートレコード + BIOS はハードディスク上のマスターブートレコード (Master Boot Record: MBR) を探します。 MBR はハードディスク上の特定の場所になければなりません。 BIOS には MBR をロードし起動するのに十分な知識があり、 オペレーティングシステムをロードするために必要な作業の残りは、 場合によっては BIOS の助けを得た上で MBR が実行できることを仮定しています。 + + amd64 ハードウェアは、上位互換性を持ち、 + BIOS に対応しています。 + 最近の新しいハードウェアでは MBR から、 + GUID Partition Table (GPT) へと移行しています。 + &os; は MBR または GPT + パーティションから起動できます。 + GPT から起動するときには、 + &os; はレガシーな BIOS または Extensible + Firmware Interface (EFI) から起動できます。 + Unified Extensible Firmware Interface (UEFI) + への対応は進行中です。 + + マスターブートレコード (Master Boot Record: MBR) ブートマネージャ (Boot Manager) ブートローダ (Boot Loader) MBR 内部のコードは、 通常ブートマネージャと呼ばれます。 とりわけユーザとの対話がある場合にそう呼ばれます。 - その場合は、通常もっと多くのブートマネージャのコードが、 - ディスクの最初のトラック - またはオペレーティングシステムのファイルシステム上におかれます - ブートマネージャはブートローダ - と呼ばれることもありますが、 - &os; はこの言葉を起動のもっと後の段階に対して使います。 - よく使われるブートマネージャには、Boot Easy + 通常ブートマネージャのもっと多くのコードが、 + ディスクの最初のトラック、 + またはファイルシステム上におかれます。 + ブートマネージャの例としては、Boot Easy とも呼ばれる &os; 標準のブートマネージャの - boot0, - Grub, GAG や - LILO 等があります。 - MBR 内に収まるのは - boot0 だけです。 + boot0、 + 多くの &linux; ディストリビューションが採用している + Grub 等があります。 ディスク上にインストールされているオペレーティングシステムが - 1 つであれば、標準の PC MBR で十分です。 - この MBR はディスク上の最初の起動可能な + 1 つの時は、MBR はディスク上の最初の起動可能な (アクティブな) スライスを探し、 そのスライスにあるコードを起動してオペレーティングシステムの残りをロードします。 - デフォルトで &man.fdisk.8; がインストールする MBR - は、このような MBR で、/boot/mbr - を基にしています。 - - ディスク上に複数のオペレーティングシステムが存在しているのなら、 + ディスク上に複数のオペレーティングシステムが存在しているのなら、 複数のオペレーティングシステムの一覧を表示できて、 起動するオペレーティングシステムを選択できるような、 - 別のブートマネージャをインストールすることもできます。 - 次の節では 2 つのブートマネージャについて説明します。 + 別のブートマネージャをインストールすることもできます。 &os; のブートストラップシステムの残りは 3 段階に分かれます。 - 第 1 ステージは MBR によって起動されるもので、 - MBR は計算機を特定の状態にするために必要なことだけ知っていて、 + 第 1 ステージは、 + 計算機を特定の状態にするために必要なことだけを知っていて、 第 2 ステージを起動します。 第 2 ステージでは、第 3 ステージを起動する前に、 もうちょっとやることができます。 第 3 ステージでオペレーティングシステムのロード作業を完了します。 起動作業が 3 段階に分かれているのは、 - PC の規格がステージ 1 とステージ 2 + MBR がステージ 1 とステージ 2 で実行できるプログラムのサイズに制限を課しているからです。 これらの作業をつなぎ合わせることによって、 &os; はより柔軟なローダ (loader) を提供しているのです。 カーネル (kernel) &man.init.8; その後カーネルが起動し、デバイスの検出と初期化を開始します。 そしてカーネルの起動が終わると、制御はユーザープロセスの &man.init.8; へ移されます。&man.init.8; - はまずディスクが利用可能であることを確かめ、 + はディスクが利用可能であることを確認し、 ファイルシステムのマウント、 ネットワークで利用するネットワークカードのセットアップ、 - そして起動時に &os; システムで起動されるように設定されたプロセスの起動、 + そしてブート時に起動されるように設定されたプロセスの起動、 といったユーザーレベルでのリソース (資源) 設定を行ないます。 - - - ブートマネージャと起動ステージ + この章では、これらのステージについてより詳細に、また、&os; + ブートプロセスにおける対話的な設定方法について説明します。 + + ブートマネージャ + ブートマネージャ マスターブートレコード (MBR) MBR - やブートマネージャのコードは起動プロセスの第 + のブートマネージャのコードは起動プロセスの第 0 ステージと呼ばれることがあります。 - この節では 2 つのブートマネージャ、 - boot0LILO - について説明します。 + デフォルトでは、&os; は boot0 + を使います。 - - <application>boot0</application> ブートマネージャ - - &os; のインストーラや &man.boot0cfg.8; - がインストールする MBR は、 + &os; のインストーラがインストールする MBR は、 /boot/boot0 を基にしています。 boot0 のサイズと機能は、 スライステーブルおよび MBR 末尾の識別子 0x55AA のため、 446 バイトの大きさに制限されます。もし、 boot0 と複数のオペレーティングシステムをインストールした場合、 起動時に以下のようなメッセージが表示されます。 - <filename>boot0</filename> のスクリーンショット F1 Win F2 FreeBSD Default: F2 - 他のオペレーティングシステム、特に &windows; は、 + 他のオペレーティングシステムは、 &os; の後にインストールを行うと、既存の MBR を上書きしてしまいます。 もしそうなってしまったら、 もしくは既存の MBR を &os; の MBR で置き換えるには、 次のコマンドを使ってください。 &prompt.root; fdisk -B -b /boot/boot0 device device は起動するデバイス名で、 たとえば 1 番目の IDE ディスクは ad0、2 番目の IDE コントローラに接続されている 1 番目の IDE ディスクは ad2、 1 番目の SCSI ディスクは da0 などとなります。 MBR の設定をカスタマイズしたい場合は、 &man.boot0cfg.8; を参照してください。 + - - LILO ブートマネージャ - - このブートマネージャをインストールして &os; - を起動するようにするには、Linux を起動して - /etc/lilo.conf - コンフィグレーションに以下を追加してください。 - - - other=/dev/hdXY -table=/dev/hdX -loader=/boot/chain.b -label=FreeBSD - - &os; のプライマリパーティションとドライブを - Linux の識別子を使って指定してください。 - X を Linux のドライブ文字に、また - Y を Linux - のプライマリパーティション番号に置き換えてください。 - SCSI ドライブに対しては、 - /dev/hd を - /dev/sd に変えてください。 - 同じドライブ上に両方のオペレーティングシステムが置いてあるなら、 - 行は不要です。 - 次に /sbin/lilo -v - を実行して、新しい変更を反映してください。 - 画面のメッセージを見て変更を確認してください。 - 起動ステージ 1 と起動ステージ 2 概念上、第 1 ステージと第 2 ステージはハードディスクの同じ領域上の同一のプログラムの部分部分です。 スペースの制約のため 2 つに分割されていますが、 いつも一緒にインストールされます。 - インストーラまたは &man.bsdlabel.8; は、両者を 1 つにまとめた + &os; のインストーラまたは bsdlabel は、 + 両者を 1 つにまとめた /boot/boot をコピーします。 - 第 1 ステージと第 2 ステージは、ファイルシステムの外部、 + これらの 2 つのステージは、ファイルシステムの外部、 起動スライスの最初のトラックに置かれ、 先頭が最初のセクタにきます。 - boot0 () - またはその他のブートマネージャは、 - 起動プロセスを続けるために必要なプログラムがそこにあると想定しています。 - 使用されるセクタの数は、/boot/boot - の大きさから簡単に分かります。 + boot0 またはその他のブートマネージャは、 + 起動プロセスを続けるために必要なプログラムがそこにあると想定しています。 - boot1 は + 最初のステージの boot1 は、 512 バイトの大きさでなければならないという制限があるので、 非常に単純なプログラムです。 このプログラムは boot2 を検索し、 実行するため、そのスライスの情報を保持する &os; の BSD ラベル に関する最低限の情報だけを持っています。 - boot2 はもう少し高機能です。 - これは &os; のファイルシステム上でファイルを見つける機能を持ち、 - 実行するカーネルやローダを指定するための簡単なインタフェースを提供します。 + 次のステージの boot2 はもう少し高機能です。 + これは &os; のファイルシステム上でファイルを見つける機能を持ちます。 + 実行するカーネルやローダを指定するための簡単なインタフェースを提供します。 + boot2 により起動される + loader はさらに高機能で、 + 起動設定が行なえる手段を提供します。 + ステージ 2 で起動プロセス中断した時には、 + 次のようながインタラクティブなが画面が表示されます。 - しかしながら boot2 により起動される - &man.loader.8; - はさらに高機能で、起動設定が行なえる手段を提供します。 - <filename>boot2</filename> のスクリーンショット >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot: - &man.bsdlabel.8; を用いて、 - インストールされた boot1 と - boot2 を変更できます。 - - &prompt.root; bsdlabel -B diskslice - - diskslice + インストールされた boot1 と + boot2 を変更するには、bsdlabel + を使ってください。以下の例では、diskslice は起動するディスクとスライスで、 たとえば最初の IDE ディスクの 1 番目のスライスは ad0s1 となります。 - - Dangerously Dedicated Mode + &prompt.root; bsdlabel -B diskslice + ad0 のようにディスク名だけを指定すると、 - &man.bsdlabel.8; は、スライスを持たない - 危険な専用ディスクを作成してしまいます。 + bsdlabel は、スライスを持たない + 危険な専用モードを作成してしまいます。 これはおそらく、あなたが望んでいることではないでしょうから、 Return キーを押す前に、 - &man.bsdlabel.8; に与える diskslice + diskslice の部分を二重にチェックしてください。 起動ステージ 3 ブートローダ (boot-loader) - ローダは三段階の起動プロセスの最終段階です。 - ローダは通常、ファイルシステム上の + loader + は三段階の起動プロセスの最終段階です。 + これは通常、ファイルシステム上の /boot/loader として存在しています。 - ローダは、 + loader は、 よりさまざまなコマンド群をサポートした強力なインタプリタによって提供される組み込みコマンド群を利用することで、 インタラクティブな設定手段となるように設計されています。 - ローダは初期化の際にコンソールとディスクの検出を行ない、 + loader + は初期化の際にコンソールとディスクの検出を行ない、 どのディスクから起動しているかを調べます。 そして必要な変数を設定してからインタプリタを起動し、 スクリプトからコマンドを送ったり手でコマンドを入力したりできます。 ローダ ローダの設定 - ローダは次に /boot/loader.rc + loader + は次に /boot/loader.rc を読み込み、通常、変数の標準値を定義した /boot/defaults/loader.conf と、そのマシンにローカルな変数を定義した /boot/loader.conf を読み込みます。 loader.rc はそれらの変数にもとづき、 選択されたモジュールとカーネルをロードします。 - ローダは最後に、標準設定で 10 秒のキー入力待ち時間を用意し、 + loader は最後に、 + 標準設定で 10 秒のキー入力待ち時間を用意し、 入力がなければカーネルを起動します。 入力があった場合、コマンド群が使えるプロンプトが表示され、 ユーザは変数を調整したり、すべてのモジュールをアンロードしたり、 モジュールをロードしたりすることができます。 - その後、最終的な起動や再起動へ移行します。 + その後、最終的な起動や再起動へ移行します。 + では、 + もっともよく使われる loader + のコマンドをまとめています。 + 利用可能なコマンドをすべて知りたい場合には、 + &man.loader.8; を参照してください。 - + ローダの組み込みコマンド - もっともよく使われるローダのコマンドを以下に示します。 - 利用可能なコマンドをすべて知りたい場合には、 - &man.loader.8; を参照してください。 - - - - autoboot seconds - - - seconds + + + + 変数 + 説明 + + + + + + autoboot seconds + seconds で与えられた時間内に入力がなければ、 カーネルの起動へと進みます。 - カウントダウンを表示し、標準設定では 10 秒間です。 - - + カウントダウンを表示します。標準設定では 10 秒間です。 + - - boot + + boot -options - kernelname - - - すぐにカーネルの起動へ進みます。 + kernelname + すぐにカーネルの起動へ進みます。 オプション、カーネル名が指定されている場合は、 それらが使われます。 - unload コマンドを実行後、 + unload を実行後、 カーネル名をコマンドラインから指定することができます。 unload を実行しないと、 - 一度読み込まれたカーネルが使われます。 - - + 一度読み込まれたカーネルが使われます。 + - - boot-conf - - - すべてのモジュールの設定を、 + + boot-conf + すべてのモジュールの設定を、 起動時と同じように指定された変数 (最も多いのは kernel) にもとづいて自動的に行ないます。 このコマンドは、変数を変更する前に、 最初に unload - を行なった場合にのみ有効に働きます。 - - + を行なった場合にのみ有効に働きます。 + - - help - topic - - - /boot/loader.help + + help + topic + /boot/loader.help を読み込み、ヘルプメッセージを表示します。 topic に index が指定された場合、 - 利用可能な topic の一覧を表示します。 - - + 利用可能な topic の一覧を表示します。 + - - include filename - … + + include filename + … + 指定されたファイルを読み込み、行単位で解釈します。 + エラーが発生した場合、 + include の実行は直ちに停止します。 + - - 指定されたファイル名のファイルを処理します。 - ローダはファイルを読み込み、行単位で解釈します。 - エラーが発生した場合、 - include コマンドの実行はその時点で停止します。 - - - - - load -t + + load -t type - filename - - - 指定されたファイル名のカーネル、 + filename + 指定されたファイル名のカーネル、 カーネルモジュール、あるいは type に指定された種類のファイルをロードします。 filename - 以降に指定された引数はファイルへと渡されます。 - - + 以降に指定された引数はファイルへと渡されます。 + - - ls -l - path - - - 指定された path + + ls -l + path + 指定された path にあるファイルを表示します。 path が指定されていなければ、ルートディレクトリを表示します。 - が指定されていればファイルサイズも表示されます。 - - + が指定されていればファイルサイズも表示されます。 + - - lsdev - -v - - - モジュールがロード可能なすべてのデバイスを表示します。 + + lsdev + -v + モジュールがロード可能なすべてのデバイスを表示します。 もし が指定されていれば、 - より詳細な出力がされます。 - - + より詳細な出力がされます。 + - - lsmod - -v - - - ロード済みのモジュールを表示します。 + + lsmod + -v + ロード済みのモジュールを表示します。 が指定されていれば、 - より詳細な内容が出力されます。 - - + より詳細な内容が出力されます。 + - - more filename + + more filename + LINES + 行を表示するごとに停止しながら指定されたファイルを表示します。 + - - LINES - 行を表示するごとに停止しながら指定されたファイルを表示します。 - - + + reboot + すぐにシステムを再起動します。 + - - reboot + + set variable, set + variable=value + ローダの環境変数を設定します。 + - - すぐにシステムを再起動します。 - - + + unload + すべてのロード済みモジュールを削除します。 + + + +
- - set variable - set - variable=value + 次にあげるのは、ローダの実践的な使用例です。 + 普段使っているカーネルをシングルユーザモード + シングルユーザモード + で起動します。 - - ローダの環境変数を設定します。 - - - - - unload - - - すべてのロード済みモジュールを削除します。 - - - -
- - - ローダの使用例 - - 次にあげるのは、ローダの実践的な使用例です。 - - - - 普段使っているカーネルをシングルユーザモード - シングルユーザモード - で起動します。 - boot -s - - 普段使っているカーネルとモジュールをアンロードし、 - 古い (もしくは別の) カーネルをロードします。 + 古いもしくは別のカーネルをロードするには、 + 以下のように実行してください。
unload load kernel.old kernel.GENERIC とすると、 インストール時のデフォルトカーネルを指定できます。 また、システムをアップグレードしたり、 もしくはカスタムカーネルを設定した場合に、 直前にインストールされていたカーネルは、 kernel.old kernel.old で指定できます。 - 普段のカーネルで使っているモジュールを指定したカーネルでロードする場合は、 次のようにします。 unload set kernel="kernel.old" -boot-conf - +boot-conf - カーネルの自動設定スクリプトをロードします。 load -t userconfig_script /boot/kernel.conf - - - -
- - カーネル起動時の応答 - カーネル (kernel) 起動時の応答 + - カーネルがデフォルトのローダもしくはローダを迂回して - boot2 によって読み込まれると、起動フラグが調べられ、 - それに応じて動作が調整されます。 + + 最終ステージ + + &man.init.8; + + + カーネルがデフォルトの loader + もしくは loader を迂回して + boot2 によって読み込まれると、 + 起動フラグが調べられ、それに応じて動作が調整されます。 には、 + 良く使われる起動フラグがまとめられています。 + 他の起動フラグの詳細については、 + &man.boot.8; を参照してください。 + カーネル (kernel) 起動フラグ - 良く使われる起動フラグは次のとおりです。 + + 起動時のカーネルオプション - - - + + + + オプション + 説明 + + - - カーネル初期化中に、 - ルートファイルシステムとしてマウントするデバイスを尋ねます。 - - + + + + カーネル初期化中に、 + ルートファイルシステムとしてマウントするデバイスを尋ねます。 + - - + + + CDROM + からルートファイルシステムを起動します。 + - - CDROM から起動します。 - - + + + シングルユーザモードで起動します。 + - - + + + カーネル起動時に、より詳細な情報を表示します。 + + + +
- - 起動時にカーネルコンフィグレーションを行なう - UserConfig を実行します。 - - + カーネルの起動が完了すると、&man.init.8; + というユーザプロセスに制御が移されます。 + これは /sbin/init、 + もしくは loader の + init_path 変数で指定される場所にあります。 + これは起動プロセスの最終ステージです。 - - + 起動シーケンスでは、 + システム上で利用できるファイルシステムの一慣性を確認します。 + もし UFS ファイルシステムにに問題があって + fsck が不一致を修復できなければ、 + 管理者が問題を直接解決できるように、init + はシステムをシングルユーザモードへと移行させます。 + 問題がなければ、システムはマルチユーザモードに移行します。 - - シングルユーザモードで起動します。 - - + + シングルユーザモード - - + シングルユーザモード + コンソール (console) - - カーネル起動時により詳細な情報を表示します。 - - - + このモードには、ユーザが起動時に + を指定した場合、あるいは loader で + boot_single 変数を設定することによって移行します。 + マルチユーザモードから shutdown now + を呼び出すことでもこのモードに移行できます。 + シングルユーザモードは、以下のメッセージで開始します。 - - 上記以外の起動フラグの詳細については、 - &man.boot.8; を参照してください。 - - -
+ Enter full pathname of shell or RETURN for /bin/sh: + ユーザが Enter を入力すると、 + システムは Bourne シェルを起動します。 + 別のシェルを使うには、シェルのフルパスを入力してください。 + + シングルユーザモードは、 + 通常ファイルシステムの一貫性に問題があって起動しないシステムを修復したり、 + 起動設定ファイルの間違いを修正するために使われます。 + また、root + パスワードがわからなくなった場合に、 + リセットするために使うことも出来ます。 + シングルユーザモードのプロンプトは、 + ローカルファイルシステムおよび設定ファイルへのアクセスを与えてくれるため、 + これらが可能となりますが、ネットワーク接続は出来ません。 + + シングルユーザモードは、システムの修復には有用ですが、 + システムが物理的に安全な場所になければ、 + セキュリティのリスクがもたらされます。 + デフォルトでは、システムに物理的にアクセス可能なユーザは、 + シングルユーザモードで起動後はシステムをすべてコントロールできてしまいます。 + + /etc/ttys + でシステムの console + が insecure に設定されている場合、 + システムはシングルユーザモードに移行する前に + root + のパスワードを入力するように求めます。 + root + パスワードがわからなくなった場合のリセット機能が無効になっている間は、 + セキュリティ対策が必要となります。 + + + <filename>/etc/ttys</filename> の + insecure コンソール + + # name getty type status comments +# +# If console is marked "insecure", then init will ask for the root password +# when going to single-user mode. +console none unknown off insecure + + + insecure コンソールとは、 + コンソールが物理的に安全でない (insecure) と考えられるため、 + root + のパスワードを知る人だけがシングルユーザモードを使えるという意味です。 + + + + マルチユーザモード + + マルチユーザモード + + init + がファイルシステムが正常であると判断するか、 + ユーザがシングルユーザモードでのコマンドを終了し、 + exit を入力してシングルユーザモードを終了すると、 + システムはマルチユーザモードへ移行し、 + システムのリソースの設定を開始します。 + + rc ファイル群 + + リソース設定システムはデフォルト設定を + /etc/defaults/rc.conf から、 + また、システム独自の細かな設定を + /etc/rc.conf から読み込みます。 + そして /etc/fstab + に記述されるシステムファイルシステムをマウントします。 + その後、ネットワークサービス、 + さまざまなシステムデーモン、 + そして最後に、ローカルにインストールされた package + の起動スクリプトを実行します。 + + リソース設定システムについてもっと知りたい場合には、 + &man.rc.8; を参照してください。また、/etc/rc.d + にあるスクリプトを実行してみてください。 + + +
- + 起動時のスプラッシュスクリーンの設定 Joseph J. Barbish 寄稿: - スプラッシュスクリーンは、 - これまでとは別の起動画面を表示します。 + 通常、&os; システムが起動すると、 + コンソールにはシステムの起動の進捗状況を示すメッセージ群が表示されます。 スプラッシュスクリーンは、 - コマンドラインまたはグラフィカルなログインプロンプトが表示されるまで、 - 起動時の検出メッセージやサービスのスタートアップメッセージを隠します。 + 起動時の検出メッセージやサービスのスタートアップメッセージを隠すような、 + これまでとは異なる起動画面を表示します。 + スプラッシュスクリーンが有効な場合でも、起動時には、 + 起動オプションメニュー、タイムウェイトカウントダウンプロンプトなど、 + いくつかの起動ローダメッセージは表示されます。 + スプラッシュスクリーンは、起動プロセスの間、 + キーボードから何かのキーを押すことで、 + いつでもやめることができます。 &os; には、2 つの基本環境があります。 ひとつは、レガシーなバーチャルコンソールコマンドライン環境です。 システムの起動が終わったら、 コンソールにログインプロンプトが表示されます。 - 2 つ目の環境は、 - で説明されているグラフィカル環境です。 + 2 つ目の環境は、設定可能なグラフィカル環境です。 では、 グラフィカルディスプレイマネージャやグラフィカルログインマネージャのインストールおよび設定方法について説明しています。 - スプラッシュスクリーン機能は、 - 256 色のビットマップ (.bmp), - ZSoft PCX (.pcx) または - TheDraw (.bin) 形式に対応しています。 - 標準の VGA アダプタで動かすには、 - スプラッシュイメージファイルは 320x200 - ピクセル以下の解像度である必要があります。 - - (最大解像度 1024x768 ピクセルまでの) - もう少し大きなイメージを使いたい場合には、 - システムの起動時に - VESA モジュールをロードしてください。 - - で説明されるカスタムカーネルに対しては、VESA - カーネルコンフィグレーションオプションを追加してください。 - VESA のサポートをロードすることで、 - フルスクリーンでスプラッシュスクリーンを表示できるようになります。 - - スプラッシュスクリーンは、起動プロセスの間、 - 画面に表示されますが、キーボードから何かのキーを押すことで、 - いつでもやめることができます。 - - スプラッシュスクリーンは、 - スクリーンセーバのデフォルトでもあります。 + システムの起動後は、スプラッシュスクリーンは、 + スクリーンセーバのデフォルトとなります。 一定期間使われないと、スプラッシュスクリーンが表示され、 イメージの輝度が、明るくから暗くなるように変化し、 そのサイクルが繰り返されます。 スプラッシュスクリーンセーバの設定は、 /etc/rc.confsaver= 行を追加することで変更できます。 いくつかのビルトインのスクリーンセーバが用意されており、 &man.splash.4; で説明されています。 saver= オプションは、 仮想コンソールにのみ適用され、 グラフィカルディスプレイマネージャには影響しません。 - スプラッシュスクリーンを有効に設定していても、起動時には、 - ブートオプションメニューや、 - タイムウェイトカウントダウンプロンプトなどのブートローダメッセージは表示されます。 - http://artwork.freebsdgr.org. のギャラリから、 サンプルのスプラッシュスクリーンファイルをダウンロードできます。 - sysutils/bsd-splash-changer port + sysutils/bsd-splash-changer package または port をインストールすると、 - 起動時にスプラッシュイメージのコレクションからランダムに一枚が選択されます。 + 起動時にスプラッシュイメージのコレクションからランダムに一枚が表示されます。 - スプラッシュスクリーン .bmp, + スプラッシュスクリーン機能は、 + 256 色のビットマップ (.bmp), + ZSoft PCX (.pcx) または + TheDraw (.bin) 形式に対応しています。 + .bmp, .pcx または .bin イメージは、ルートパーティション、たとえば - /boot に置く必要があります。 - - デフォルトのブートディスプレイの解像度 + /boot に置く必要があります。 + 標準の VGA アダプタで動かすには、 + スプラッシュイメージファイルは 320x200 + ピクセル以下の解像度である必要があります。 + デフォルトのブートディスプレイの解像度 256 色、320x200 ピクセル以下の場合には、以下を含むように - /boot/loader.conf を編集してください。 + /boot/loader.conf を編集してください。 + splash.bmp の部分は、 + 用いるビットマップフィアルの名前に置き換えてください。 splash_bmp_load="YES" bitmap_load="YES" -bitmap_name="/boot/splash.bmp" +bitmap_name="/boot/splash.bmp" - 1024x768 ピクセルまでの、より大きなビデオ解像度の場合には、 - 以下を含むように /boot/loader.conf - を編集してください。 + ビットマップフィアルの代わりに、 + PCX ファイルを使う場合は、 + 以下のようにしてください。 - vesa_load="YES" -splash_bmp_load="YES" -bitmap_load="YES" -bitmap_name="/boot/splash.bmp" - - 上の例では、スプラッシュスクリーンに - /boot/splash.bmp - を使うことを想定しています。 - PCX ファイルを使う場合は、以下を使ってください。 - また、解像度によっては - vesa_load="YES" 行を追加してください。 - splash_pcx_load="YES" bitmap_load="YES" -bitmap_name="/boot/splash.pcx" +bitmap_name="/boot/splash.pcx" - &os; 8.3 からは、TheDraw - 形式によるアスキーアートを使うことができるようになりました。 + 形式のアスキーアートを使うには、以下を追加してください。 splash_txt="YES" bitmap_load="YES" -bitmap_name="/boot/splash.bin" +bitmap_name="/boot/splash.bin" - ファイル名は上記のような - splash に限られているわけではありません。 - 対応している形式であれば、 - splash_640x400.bmp - や - bluewave.pcx - といった、どのような名前でも構いません。 + (最大解像度 1024x768 ピクセルまでの) + もう少し大きなイメージを使いたい場合には、 + システムの起動時に + VESA モジュールをロードしてください。 + カスタムカーネルを使っている場合には、VESA + カーネルコンフィグレーションオプションを追加してください。 + スプラッシュスクリーンのために VESA + モジュールを読み込むには、/boot/loader.conf + のこれまでに説明した 3 行の前に以下の行を追加してください。 + vesa_load="YES" + 他に興味を持ちそうな loader.conf のオプションを以下で紹介します。 beastie_disable="YES" カウントダウンのプロンプトを除き、 ブートオプションメニューを表示しません。 ブートオプションメニューの画面は利用できませんが、 タイムウェイトカウントダウンプロンプトが表示されている時に、 オプションを選択することで対応するブートオプションを設定できます。 loader_logo="beastie" このオプションは、カラーの beastie ロゴと共にブートオプションメニューの右側に表示されている単語 (デフォルトでは &os;) を置き換えます。 より詳細な情報については、&man.splash.4;, &man.loader.conf.5; および &man.vga.4; をご覧ください。 - - + Device Hints Tom Rhodes 寄稿: device.hints システムの最初のスタートアップ時に、&man.loader.8; は &man.device.hints.5; を読み込みます。 このファイルにはカーネル起動の環境変数が格納されており、 これらの環境変数は device hints と呼ばれることがあります。device hints はデバイスを設定するためにデバイスドライバが使用します。 で説明されているように device hints はステージ 3 ブートローダプロンプトでも設定できます。 変数は set を用いて追加したり、 unset を用いて削除できます。 show を用いて一覧を見ることもできます。 /boot/device.hints に設定されている変数は、 上書きすることもできます。 ブートローダで設定した device hints の効果は一時的なものであるため、 次回起動するときには無効になります。 システムが起動すると、&man.kenv.1; コマンドですべてのカーネル環境変数をダンプすることができます。 /boot/device.hints は 1 行につき一つの変数を設定でき、行頭の # はその行がコメントであることを示しています。 書式は次の通りです。 hint.driver.unit.keyword="value" ステージ 3 ブートローダ で設定するときの書式は次の通りです。 set hint.driver.unit.keyword=value ここで、driver はデバイスドライバの名前、 unit はデバイスドライバのユニット番号、 keyword はヒントキーワードです。 キーワードは次の設定を指定します: at: デバイスがどのバスに接続されているか指定します。 port: 使用する I/O ポートの開始アドレスを指定します。 irq: 使用する IRQ を指定します。 drq: 使用する DMA チャネルを指定します。 maddr: 使用する物理メモリアドレスを指定します。 flags: デバイスに対してさまざまなフラグを設定します。 disabled: 1 が設定されていると、そのデバイスは無効になります。 デバイスドライバはこのリスト以外の変数を設定できるかもしれませんし、 このリスト以外の変数を必要とするかもしれないので、 ドライバのマニュアルを読むことをおすすめします。 より多くの情報を知りたければ、&man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5; および &man.loader.8; を参照してください。 - - - - init: プロセス制御の初期化 - - - &man.init.8; - - - カーネルの起動が完了すると、&man.init.8; - というユーザプロセスに制御が移されます。 - これは /sbin/init、 - もしくは loader の - init_path 変数で指定される場所にあります。 - - 起動シーケンスでは、 - システム上で利用できるファイルシステムの一慣性を確認します。 - もしそれに問題があって &man.fsck.8; - が UFS ファイルシステムの不一致を修復できなければ、 - 管理者が問題を直接解決できるように、&man.init.8; - はシステムをシングルユーザモードへと移行させます。 - - - シングルユーザモード - - シングルユーザモード - コンソール (console) - - このモードには、自動再起動の処理中か、 - ユーザが起動時に を指定した場合、 - あるいは &man.loader.8; で boot_single - 変数を設定することによって移行します。 - - マルチユーザモード () - から または なしで - &man.shutdown.8; を呼び出すことでもこのモードに移行できます。 - - /etc/ttys - でシステムコンソール console - が insecure に設定されている場合、 - システムはシングルユーザモードに移行する前に - root - のパスワードを入力するように求めます。 - - - <filename>/etc/ttys</filename> の - insecure コンソール - - # name getty type status comments -# -# If console is marked "insecure", then init will ask for the root password -# when going to single-user mode. -# -# 訳) console に "insecure" という印をつけると、シングルユーザモードへ移行する -# 際に init が root のパスワードを要求するようになります。 -# -console none unknown off insecure - - - - insecure コンソールとは、 - コンソールが物理的に安全でないと考えられるため、 - root - のパスワードを知る人だけがシングルユーザモードを使えるという意味です。 - そのため、この安全性を求めるならば、 - デフォルトの secure でなく - insecure を選んでください。 - - - - - マルチユーザモード - - マルチユーザモード - - &man.init.8; がファイルシステムが正常であると判断するか、 - ユーザがシングルユーザモード () - でのコマンドを終了すると、 - システムはマルチユーザモードへ移行し、 - リソースの設定を始めます。 - - rc ファイル群 - - リソース設定システムはデフォルト設定を - /etc/defaults/rc.conf から、 - そのシステム独自の細かな設定を - /etc/rc.conf から読み込みます。 - そして /etc/fstab - に記述されるシステムファイルシステムをマウントします。 - その後、ネットワークサービス、 - さまざまなシステムデーモン、 - そして最後に、ローカルにインストールされた package - の起動スクリプトを実行します。 - - リソース設定システムについてもっと知りたい場合には、 - &man.rc.8; を参照してください。また、 - スクリプトそのものを実行してみてください。 - シャットダウン動作 &man.shutdown.8; &man.shutdown.8; を用いてシステムを意図的にシャットダウンした場合、 &man.init.8; は /etc/rc.shutdown というスクリプトの実行を試みます。 そして、すべてのプロセスへ TERM シグナルを送り、続いてうまく終了できなかったプロセスへ KILL シグナルを送ります。 電源管理機能を持ったシステムで稼働している &os; では shutdown -p now によって、 直ちに電源を落とすことができます。&os; システムを再起動するには、 shutdown -r now を実行してください。 &man.shutdown.8; を実行するには、 root であるか、operator のメンバでなければなりません。&man.halt.8; や &man.reboot.8; を利用することもできます。 より多くの情報を知るために、それらのマニュアルページや &man.shutdown.8; を参照してください。 電源管理機能には &man.acpi.4; がモジュールとして読み込まれるか、 カスタムカーネルにコンパイルされて静的に組み込まれている必要があります。