|
次のページ
前のページ
目次へ
5. ブートシステムをブートすると、 BIOS は一台目のディスク(またはフロッピーや CDROM)からセクタ 0 (MBR - Master Boot Record として知られている)を読み出し、 そこにあるコード - 通常は何らかのブートストラップローダ - へジャンプします。 この小さなブートストラッププログラムは 普通はそれ自身のディスクドライバは持ってなく BIOS サービスを利用します。 これは、Linux カーネルが最初の 1024 シリンダ内に完全に収まっている時のみ ブート可能であることを意味します。 この問題はとても簡単に解決できます: BIOS がアクセス可能なディスク - おそらく一台目か二台目のディスク - の最初の 1024 シリンダ内に完全に収まるパーティションに、 カーネル(と、LILO のマップファイルのようにもしかしたら ブートアップの最中に使用されるかもしれない他のファイル) を配置すればいいのです。 したがって、カーネル用の領域として 10 MB くらいの小さなパーティションを、
一台目か二台目のディスクの先頭から 1024 シリンダ内に完全に収まるように
作成してください。これを
5.1 LILO と `linear' オプションもう一つの注意点は、ブートローダと BIOS がディスクジオメトリについて
意見が一致している必要があることです。
LILO はジオメトリについてカーネルに問い合わせますが、
ディスクドライバの作者の大多数は、
BIOS が使用するであろう LILO が告げる値の代わりに、
パーティションテーブルからジオメトリを得るという悪い癖を受け継いでいます。
したがって、カーネルから供給されるジオメトリはしばしば役に立ちません。
このような場合、LILO に `
5.2 1024 シリンダが 1024 シリンダではない
Tim Williams はこういってます: 「私は Linux のパーティションを最初の 1024 シリンダ以内に作成しましたが、 それでもなお起動しませんでした。1GB 以内に移動したらやっと動きました。」 どうしてなんでしょう? そう、これは AHA2940UW コントローラに接続された SCSI ディスクで、 このコントローラはファームウェアと BIOS の設定オプションに依存して H=64, S=32 (1シリンダは 1 MiB = 1.05 MB になる)か、 H=255, S=63 (1シリンダは 8.2 MB になる)のどちらか使用します。 間違いなく BIOS が前者の設定になっていて、 よって 1024 シリンダ制限が 1 GiB になっています。 しかし Linux が後者の値を使っている間は LILO は制限が 8.4GB であると思っているわけです。
次のページ 前のページ 目次へ |
[ |