Index: head/ja_JP.eucJP/books/handbook/boot/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/boot/chapter.xml (revision 47906) +++ head/ja_JP.eucJP/books/handbook/boot/chapter.xml (revision 47907) @@ -1,1072 +1,1042 @@ &os; の起動のプロセス この章では 起動 ブートストラップ (bootstrap) 計算機を起動しオペレーティングシステムをロードするプロセスは、 ブートストラッププロセス、 もしくは単に 起動 と呼ばれます。 &os; の起動プロセスを使えば、 システムをスタートするときに起きることをかなり柔軟にカスタマイズすることができます。 同じ計算機にインストールされた別のオペレーティングシステムを選択することもできますし、 同じオペレーティングシステムの違うバージョンを選択することも、 インストールされた別のカーネルを選択することさえできます。 この章では、指定できる設定オプションついて詳しく説明します。 &os; カーネルがスタートし、デバイスを検出し、 &man.init.8; を起動するまでに起きることすべてを含む &os; の起動プロセスのカスタマイズ方法について説明します。 これは、起動メッセージのテキストの色が、 明るい白から灰色に変わるまでに起きています。 この章を読むと、以下のことが分かります。 &os; のブートストラップシステムの構成およびそれらが互いにどう関係しているのか 起動プロセスを制御するために &os; のブートストラップの各要素に付加できるオプション &man.device.hints.5; の基本的な記述方法 この章では Intel x86 システム上で動作する &os; の起動プロセスだけを扱います。 起動時の問題 計算機の電源を入れ、オペレーティングシステムをスタートさせるのには、 おもしろいジレンマがあります。定義により、 計算機は、オペレーティングシステムが起動するまでは、 ディスクからプログラムを動かすことも含めて、 何をどうすればよいかまったく知りません。 計算機はオペレーティングシステムなしにディスクからプログラムを実行することができず、 オペレーティングシステムのプログラムがディスク上にあるのなら、 どうやってオペレーティングシステムを起動するのでしょうか? この問題はほらふき男爵の冒険 という本の中に書かれている問題ととてもよく似ています。 登場人物がマンホールの下に半分落っこちて、 靴紐 (ブートストラップ) をつかんで自分を引っぱり、持ち上げるのです。 計算機の黎明期には、ブートストラップ という用語でオペレーティングシステムをロードする機構のことを指していたのですが、 いまはこれを縮めて ブート (起動) と言います。 BIOS 基本入出力システム (Basic Input/Output System)BIOS x86 ハードウェアでは、基本入出力システム (Basic Input/Output System: BIOS) にオペレーティングシステムをロードする責任があります。 オペレーティングシステムをロードするために、 BIOS がハードディスク上のマスターブートレコード (Master Boot Record: MBR) を探します。 MBR はハードディスク上の特定の場所になければなりません。 BIOS には MBR をロードし起動するのに十分な知識があり、 オペレーティングシステムをロードするために必要な作業の残りは、 場合によっては BIOS の助けを得た上で MBR が実行できることを仮定しています。 マスターブートレコード (Master Boot Record: MBR) ブートマネージャ (Boot Manager) ブートローダ (Boot Loader) MBR 内部のコードは、 通常ブートマネージャと呼ばれます。 とりわけユーザとの対話がある場合にそう呼ばれます。 その場合は、通常もっと多くのブートマネージャのコードが、 ディスクの最初のトラック またはオペレーティングシステムのファイルシステム上におかれます ブートマネージャはブートローダ と呼ばれることもありますが、 &os; はこの言葉を起動のもっと後の段階に対して使います。 よく使われるブートマネージャには、Boot Easy とも呼ばれる &os; 標準のブートマネージャの boot0, Grub, GAGLILO 等があります。 MBR 内に収まるのは boot0 だけです。 ディスク上にインストールされているオペレーティングシステムが 1 つであれば、標準の PC MBR で十分です。 この MBR はディスク上の最初の起動可能な (アクティブな) スライスを探し、 そのスライスにあるコードを起動してオペレーティングシステムの残りをロードします。 デフォルトで &man.fdisk.8; がインストールする MBR は、このような MBR で、/boot/mbr を基にしています。 ディスク上に複数のオペレーティングシステムが存在しているのなら、 複数のオペレーティングシステムの一覧を表示できて、 起動するオペレーティングシステムを選択できるような、 別のブートマネージャをインストールすることもできます。 次の節では 2 つのブートマネージャについて説明します。 &os; のブートストラップシステムの残りは 3 段階に分かれます。 第 1 ステージは MBR によって起動されるもので、 MBR は計算機を特定の状態にするために必要なことだけ知っていて、 第 2 ステージを起動します。 第 2 ステージでは、第 3 ステージを起動する前に、 もうちょっとやることができます。 第 3 ステージでオペレーティングシステムのロード作業を完了します。 起動作業が 3 段階に分かれているのは、 PC の規格がステージ 1 とステージ 2 で実行できるプログラムのサイズに制限を課しているからです。 これらの作業をつなぎ合わせることによって、 &os; はより柔軟なローダ (loader) を提供しているのです。 カーネル (kernel) &man.init.8; その後カーネルが起動し、デバイスの検出と初期化を開始します。 そしてカーネルの起動が終わると、制御はユーザープロセスの &man.init.8; へ移されます。&man.init.8; はまずディスクが利用可能であることを確かめ、 ファイルシステムのマウント、 ネットワークで利用するネットワークカードのセットアップ、 そして起動時に &os; システムで起動されるように設定されたプロセスの起動、 といったユーザーレベルでのリソース (資源) 設定を行ないます。 - + ブートマネージャと起動ステージ ブートマネージャ - - ブートマネージャ - マスターブートレコード (MBR) MBR やブートマネージャのコードは起動プロセスの第 0 ステージと呼ばれることがあります。 この節では 2 つのブートマネージャ、 boot0LILO について説明します。 <application>boot0</application> ブートマネージャ &os; のインストーラや &man.boot0cfg.8; がインストールする 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 <filename>/boot/boot1</filename> - と起動ステージ 2 <filename>/boot/boot2</filename> + 起動ステージ 1 と起動ステージ 2 概念上、第 1 ステージと第 2 ステージはハードディスクの同じ領域上の同一のプログラムの部分部分です。 スペースの制約のため 2 つに分割されていますが、 いつも一緒にインストールされます。 インストーラまたは &man.bsdlabel.8; は、両者を 1 つにまとめた /boot/boot をコピーします。 第 1 ステージと第 2 ステージは、ファイルシステムの外部、 起動スライスの最初のトラックに置かれ、 先頭が最初のセクタにきます。 boot0 () またはその他のブートマネージャは、 起動プロセスを続けるために必要なプログラムがそこにあると想定しています。 使用されるセクタの数は、/boot/boot の大きさから簡単に分かります。 boot1 は 512 バイトの大きさでなければならないという制限があるので、 非常に単純なプログラムです。 このプログラムは boot2 を検索し、 実行するため、そのスライスの情報を保持する &os; の BSD ラベル に関する最低限の情報だけを持っています。 boot2 はもう少し高機能です。 これは &os; のファイルシステム上でファイルを見つける機能を持ち、 実行するカーネルやローダを指定するための簡単なインタフェースを提供します。 しかしながら boot2 により起動される &man.loader.8; はさらに高機能で、起動設定が行なえる手段を提供します。 <filename>boot2</filename> のスクリーンショット >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot: &man.bsdlabel.8; を用いて、 インストールされた boot1boot2 を変更できます。 &prompt.root; bsdlabel -B diskslice diskslice は起動するディスクとスライスで、 たとえば最初の IDE ディスクの 1 番目のスライスは ad0s1 となります。 Dangerously Dedicated Mode ad0 のようにディスク名だけを指定すると、 &man.bsdlabel.8; は、スライスを持たない 危険な専用ディスクを作成してしまいます。 これはおそらく、あなたが望んでいることではないでしょうから、 Return キーを押す前に、 &man.bsdlabel.8; に与える diskslice の部分を二重にチェックしてください。 - 起動ステージ 3 <filename>/boot/loader</filename> + 起動ステージ 3 ブートローダ (boot-loader) ローダは三段階の起動プロセスの最終段階です。 ローダは通常、ファイルシステム上の /boot/loader として存在しています。 ローダは、 よりさまざまなコマンド群をサポートした強力なインタプリタによって提供される組み込みコマンド群を利用することで、 インタラクティブな設定手段となるように設計されています。 - - ローダプログラムの処理の流れ - ローダは初期化の際にコンソールとディスクの検出を行ない、 どのディスクから起動しているかを調べます。 そして必要な変数を設定してからインタプリタを起動し、 スクリプトからコマンドを送ったり手でコマンドを入力したりできます。 ローダ ローダの設定 ローダは次に /boot/loader.rc を読み込み、通常、変数の標準値を定義した /boot/defaults/loader.conf と、そのマシンにローカルな変数を定義した /boot/loader.conf を読み込みます。 loader.rc はそれらの変数にもとづき、 選択されたモジュールとカーネルをロードします。 ローダは最後に、標準設定で 10 秒のキー入力待ち時間を用意し、 入力がなければカーネルを起動します。 入力があった場合、コマンド群が使えるプロンプトが表示され、 ユーザは変数を調整したり、 すべてのモジュールをアンロードしたり、 モジュールをロードしたりすることができます。 その後、最終的な起動や再起動へ移行します。 - ローダの組み込みコマンド もっともよく使われるローダのコマンドを以下に示します。 利用可能なコマンドをすべて知りたい場合には、 &man.loader.8; を参照してください。 autoboot seconds seconds で与えられた時間内に入力がなければ、 カーネルの起動へと進みます。 カウントダウンを表示し、標準設定では 10 秒間です。 boot -options kernelname すぐにカーネルの起動へ進みます。 オプション、カーネル名が指定されている場合は、 それらが使われます。 unload コマンドを実行後、 カーネル名をコマンドラインから指定することができます。 unload を実行しないと、 一度読み込まれたカーネルが使われます。 boot-conf すべてのモジュールの設定を、 起動時と同じように指定された変数 (最も多いのは kernel) にもとづいて自動的に行ないます。 このコマンドは、変数を変更する前に、 最初に unload を行なった場合にのみ有効に働きます。 help topic /boot/loader.help を読み込み、ヘルプメッセージを表示します。 topic に index が指定された場合、 利用可能な topic の一覧を表示します。 include filename 指定されたファイル名のファイルを処理します。 ローダはファイルを読み込み、行単位で解釈します。 エラーが発生した場合、 include コマンドの実行はその時点で停止します。 load -t type filename 指定されたファイル名のカーネル、 カーネルモジュール、あるいは type に指定された種類のファイルをロードします。 filename 以降に指定された引数はファイルへと渡されます。 ls -l path 指定された path にあるファイルを表示します。 path が指定されていなければ、ルートディレクトリを表示します。 が指定されていればファイルサイズも表示されます。 lsdev -v モジュールがロード可能なすべてのデバイスを表示します。 もし が指定されていれば、 より詳細な出力がされます。 lsmod -v ロード済みのモジュールを表示します。 が指定されていれば、 より詳細な内容が出力されます。 more filename LINES 行を表示するごとに停止しながら指定されたファイルを表示します。 reboot すぐにシステムを再起動します。 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 カーネルの自動設定スクリプトをロードします。 load -t userconfig_script /boot/kernel.conf + - + + カーネル起動時の応答 + + + カーネル (kernel) + 起動時の応答 + + + カーネルがデフォルトのローダもしくはローダを迂回して + boot2 によって読み込まれると、起動フラグが調べられ、 + それに応じて動作が調整されます。 + + + カーネル (kernel) + 起動フラグ + + + 良く使われる起動フラグは次のとおりです。 + + + + + + + カーネル初期化中に、 + ルートファイルシステムとしてマウントするデバイスを尋ねます。 + + + + + + + + CDROM から起動します。 + + + + + + + + 起動時にカーネルコンフィグレーションを行なう + UserConfig を実行します。 + + + + + + + + シングルユーザモードで起動します。 + + + + + + + + カーネル起動時により詳細な情報を表示します。 + + + + + + 上記以外の起動フラグの詳細については、 + &man.boot.8; を参照してください。 + + + + + + + - 起動時のスプラッシュスクリーン + 起動時のスプラッシュスクリーンの設定 Joseph J. Barbish 寄稿: スプラッシュスクリーンは、 これまでとは別の起動画面を表示します。 スプラッシュスクリーンは、 コマンドラインまたはグラフィカルなログインプロンプトが表示されるまで、 起動時の検出メッセージやサービスのスタートアップメッセージを隠します。 &os; には、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 をインストールすると、 起動時にスプラッシュイメージのコレクションからランダムに一枚が選択されます。 - - - スプラッシュスクリーン機能を有効にする - スプラッシュスクリーン .bmp, .pcx または .bin イメージは、ルートパーティション、たとえば /boot に置く必要があります。 デフォルトのブートディスプレイの解像度 256 色、320x200 ピクセル以下の場合には、 以下を含むように /boot/loader.conf を編集してください。 splash_bmp_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.bmp" 1024x768 ピクセルまでの、より大きなビデオ解像度の場合には、 以下を含むように /boot/loader.conf を編集してください。 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" &os; 8.3 からは、TheDraw 形式によるアスキーアートを使うことができるようになりました。 splash_txt="YES" bitmap_load="YES" bitmap_name="/boot/splash.bin" ファイル名は上記のような splash に限られているわけではありません。 対応している形式であれば、 splash_640x400.bmpbluewave.pcx といった、どのような名前でも構いません。 他に興味を持ちそうな loader.conf のオプションを以下で紹介します。 beastie_disable="YES" カウントダウンのプロンプトを除き、 ブートオプションメニューを表示しません。 ブートオプションメニューの画面は利用できませんが、 タイムウェイトカウントダウンプロンプトが表示されている時に、 オプションを選択することで対応するブートオプションを設定できます。 loader_logo="beastie" このオプションは、カラーの beastie ロゴと共にブートオプションメニューの右側に表示されている単語 (デフォルトでは &os;) を置き換えます。 より詳細な情報については、&man.splash.4;, &man.loader.conf.5; および &man.vga.4; をご覧ください。 - - - - カーネル起動時の応答 - - - カーネル (kernel) - 起動時の応答 - - - カーネルがデフォルトのローダ - () もしくはローダを迂回して boot2 - () によって読み込まれると、 - 起動フラグが調べられ、それに応じて動作が調整されます。 - - - カーネル起動フラグ - - カーネル (kernel) - 起動フラグ - - - 良く使われる起動フラグは次のとおりです。 - - - - - - - カーネル初期化中に、 - ルートファイルシステムとしてマウントするデバイスを尋ねます。 - - - - - - - - CDROM から起動します。 - - - - - - - - 起動時にカーネルコンフィグレーションを行なう - UserConfig を実行します。 - - - - - - - - シングルユーザモードで起動します。 - - - - - - - - カーネル起動時により詳細な情報を表示します。 - - - - - - 上記以外の起動フラグの詳細については、 - &man.boot.8; を参照してください。 - - - - - - - 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、 もしくは loaderinit_path 変数で指定される場所にあります。 - - 自動再起動 (automatic reboot)の動作 - - 自動再起動では、 + 起動シーケンスでは、 システム上で利用できるファイルシステムの一慣性を確認します。 もしそれに問題があって &man.fsck.8; が UFS ファイルシステムの不一致を修復できなければ、 - 管理者が問題を直接解決できるように、 - &man.init.8; はシステムをシングルユーザモード - () へと移行させます。 - + 管理者が問題を直接解決できるように、&man.init.8; + はシステムをシングルユーザモードへと移行させます。 シングルユーザモード シングルユーザモード コンソール (console) - このモードには、自動再起動の処理中 () か、 + このモードには、自動再起動の処理中か、 ユーザが起動時に を指定した場合、 あるいは &man.loader.8; で boot_single 変数を設定することによって移行します。 マルチユーザモード () から または なしで &man.shutdown.8; を呼び出すことでもこのモードに移行できます。 /etc/ttys でシステムコンソール consoleinsecure に設定されている場合、 システムはシングルユーザモードに移行する前に 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; がモジュールとして読み込まれるか、 カスタムカーネルにコンパイルされて静的に組み込まれている必要があります。