+---------------------------+ |ブートセクター| | |--------------+ | | | | データ領域 | | | | | +---------------------------+ |
Linux ではディスク全体は(/dev/fd0 のような)一つのデバイスとして表現します。
MS-DOS のブートセクターは以下のような構造をしています-
+--------------------------------+ 0x000 |プログラムコードへのジャンプ命令| |--------------------------------| 0x003 | | | ディスクパラメータ | | | |--------------------------------| 0x02C/0x03E | | | プログラムコード | | | | | |--------------------------------| 0x1FE | マジックナンバー (0xAA55) | +--------------------------------+ |
ハードディスクの最初のセクターにはパーティションテーブルがあります。また 拡張パーティションと「それぞれの」論理パーティションにもパーティション テーブルが存在します。
+--------------------------------------------+ | パーティションテーブル /dev/hda | | +------------------------------------------| | | パーティション 1 /dev/hda1 | | | | | |------------------------------------------| | | パーティション 2 /dev/hda2 | | | | +--------------------------------------------+ |
ディスク全体には、/dev/hda、/dev/hdb、/dev/sda、などといった呼称でアクセス することができます。基本パーティションは、/dev/hda1 ... /dev/hda4 です。
+--------------------------------------------+ | パーティションテーブル /dev/hda | | +------------------------------------------| | | パーティション 1 /dev/hda1 | | | | | |------------------------------------------| | | パーティション 2 /dev/hda2 | | | | | |------------------------------------------| | | 拡張パーティション /dev/hda3 | | | +----------------------------------------| | | | 拡張パーティションテーブル | | | |----------------------------------------| | | | パーティション 3 /dev/hda5 | | | | | | | |----------------------------------------| | | | 拡張パーティションテーブル | | | |----------------------------------------| | | | パーティション 4 /dev/hda6 | | | | | +--------------------------------------------+ |
このハードディスクには 2 つの基本パーティションと 2 つの論理パーティションを 含む拡張パーティションがあります。論理パーティションは、/dev/hda5 ... として アクセスできます。
+---------------------------+ 0x000 | | | プログラムコード | | | | | |---------------------------| 0x1BE | パーティションテーブル | | | |---------------------------| 0x1FE | マジックナンバー (0xAA55) | +---------------------------+ |
LILO は以下の場所には置くことはできません。
Linux 以外のフロッピーディスクや基本パーティションのブートセクター。
Linux のスワップパーティション。
拡張パーティション内の論理パーティションのブートセクター。 [2]
第 2 ハードディスク上。(現在の第1ハードディスクが外されたり、壊れた 場合のバックアップ用のインストールの場合はこの限りではありませんし、 他のブートローダを使って他のデバイスからブートすることは可能です。
LILO は無効な場所にブートセクターを何とか置くことを試みようとしますが、 決してそれを信じてはいけません。
[1] | 殆どの FDISK などのプログラムは拡張パーティションからブートされるとは 思っていないので、拡張パーティションをアクティブにすることを拒否します。 LILO は、この制限のない activate という小さなプログラムを同梱しています。 Linux fdisk もまた拡張パーティションのアクティブ化をサポートしています。 |
[2] | LILO を、-b オプションや、BOOT 変数を使って、このような場所に強制的に 置くことは可能です。しかし論理パーティションからのブートをサポートした マスターブートレコードに置くようなプログラムは殆どないでしょう。 |