|
次のページ
前のページ
目次へ
3. ブートディスクとブートのプロセス
ブートディスクは基本的にはシステムのミニチュアであり,必要なものが全て 揃った Linux システムを1枚のフロッピーディスクに収めたものです.このミ ニチュアシステムは,完全なフルサイズの Linux システムの機能の多くを実 行できなければなりません.したがって,ブートフロッピーを作る前には Linux のブートのプロセスの基本を理解しておくべきです.ここで基礎知識を 説明しますが,これを理解できていれば本書の残りの部分もわかると思います. ただし,詳しい部分や変更可能なオプションについては省略している部分も多 くあります.
3.1 ブートのプロセス
全ての PC システムのブート処理では,まず ROM のコード(特に
BIOS)が実行されます.このコードはブートドライブのシリンダ 0,セ
クタ 0 にあるセクタを読み込んで実行します.ブートドライブは普通
はフロッピーディスクドライブ (DOS では
Linux カーネルがフロッピーに生書きされている(raw デバイスとして書き込 まれている)場合,フロッピーの最初のセクタは Linux カーネルそのものにな ります.この最初のセクタはブートデバイスからカーネルの残りの部分をロー ドしてブート処理を続けます. カーネルのロードが完全に終了すると,ロードされたカーネルは基本デバイス を初期化します.次にデバイスのどれかをルートファイルシステム としてロード・マウントします.ルートファイルシステムはごく普通の ファイルシステムで、``/'' としてマウントされます。 カーネルにはルートファイルシステムの場所を指示してやらなければなり ません.この場所にロードできるイメージが無ければ,カーネルは停止してし まいます. 状況によっては -- フロッピーからブートする場合にはしばしば -- ルートファ イルシステムは RAM ディスク にロードされます.これはシステム からディスクのようにアクセスできる RAM です.システムを RAM ディスクにロー ドする理由は 2 つあります.まず RAM はフロッピーディスクよりも桁違いに速 く,システムを速く操作できるからです.またカーネルは 圧縮されたファイルシステム をフロッピーから読み込んで, これを RAM ディスクに展開することができるからです.これを使えばフロッピー にずっと多くのファイルを入れることができます. ルートファイルシステムがロード,マウントされると,次のようなメッセージ が表示されます:
VFS: Mounted root (ext2 filesystem) readonly.
次にシステムはルートファイルシステム(の
システムの初期化をモジュール化するため,このスクリプトから別のスクリプ トを複数個起動することもよく行われます.例えば標準的な SysVinit の構造 では,/etc/rc.d/ ディレクトリに複雑なサブディレクトリがあ り,それぞれのサブディレクトリにはシステムサービスの起動と停止の方法を 指定しているファイルがあります.ですが,ブートディスクの sysinit スク リプトは普通はとてもシンプルなものになるでしょう. sysinit スクリプトが終了すると,制御は
3.2 ディスクの種類
これまで説明した基本的なブート処理を理解していれば,ブートに必要となる 色々な種類のディスクを定義することができます.ここではディスクを4つに 分類します.特に断らない限り,これ以降の議論では「ディスク」という言葉 はフロッピーディスクを指すものとします.ただし,議論の大部分はハードディ スクにも同様に適用できるだろうと思います.
一般に「ブートディスクの作成」という時は,ブート(カーネル)とルート(ファ イル)の部分を両方作成することを指します.これらは同じディスクになるこ と(1 枚のブート/ルートディスク)も,別のディスクになること(ブートディス ク + ルートディスク)もあります.レスキューディスクの用途には,別々のブー トディスクとルートディスクを組み合わせて使えばとても柔軟に運用できるで しょう.そして,入りきらない分に対してユーティリティディスクを別に用意 するとよいでしょう.
次のページ 前のページ 目次へ |
[ |