[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:16372] Re: 8.4GBの壁



From: nobuhide shimizu <nobushim@js3.so-net.ne.jp>
Subject: [plamo:16368] Re: 8.4GBの壁
Date: Tue, 12 Nov 2002 13:38:40 +0900

> > わたしの説明不足です.
> > Dual Bootにするのに,Bootセクタは,8.4GBのなかになければ,,,
> > というのがありませんでしたっけ?
> 
> grubがあればパーテーション0(hda0など)が15GBであろうがパーテーション1(hda1)からブートしてますけど
> はなしがあってますか
> 
> #grubがないと
> #liloはやってませんのでしりません

基本的にこの手の制限は BIOS(の仕様)に起因するものなので,BIOS が対応し
ていれば問題にはならないはずです.

# 当初の IDE の規格って 500MB くらいが上限じゃなかったっけ?

また,BIOS が対応していない場合でも,grub なら 2nd stage の boot
loader さえ BIOS 経由で読めるところにあれば,自分自身で FS を見てカー
ネルをロードできるはず.

lilo の場合は,カーネルの読み込みに BIOS の力を借りるので制限には引っ
掛かりやすいですが,最近(といってもかなり前だと思うが)のバージョンなら 
linear なり lba32 なりのオプションを指定して BIOS の C/H/S の変換を介
さなければ BIOS の制限を回避することができたように思います.

多少背景的な説明をしておくと, HDD からブートする場合,最初の HDD の先
頭の 512 byte,いわゆる MBR(Master Boot Record)という領域が最初に実行
されることになっています.この領域から何をするかが lilo と grub では異
なっており,lilo ではこの領域の中に直接カーネルの HDD 上の位置情報が書
き込まれていて,それを手がかりにカーネルイメージをメモリに読み込みます.

一方,grub の場合は MBR には 1st stage と呼ばれるコードが置かれ,この
コードは別途存在する 2nd stage のコードを読むためだけに使われます.そ
して実際にカーネルのイメージを読み込むのは 2nd stage のコードの仕事と
なります.

# ちょうど 2 段式ロケットみたいなイメージですかね.

単にカーネルを読み込むだけなら lilo のように 512 byte のコードでも可能
なんですが,grub では 2nd stage を介することでコードサイズの制限を外し,
2nd stage に ext2/3 や reiserfs 等のファイルシステムを理解する機能をも
たせたため,「ファイルとして」カーネルを読み込ませることが可能になって
います.

すなわち,ファイル名経由でカーネルイメージを扱えるので lilo みたいにカー
ネルを再構築したら MBR を書き換える(= 新しいカーネルイメージの HDD 上
の位置を書き込む)という作業が不要になっているわけです.

昔,こういう話を Linux Seminar でやったので参考までに :-)
> http://www.linet.gr.jp/lswg/000331/kojima/index.html

ちなみに IDE HDD の壁の話はこれですね
> http://www.linet.gr.jp/lswg/000331/kojima/mgp00016.html

---------
こじま

Follow-Ups
[plamo:16376] Re: 8.4GBの壁, nobuhide shimizu
References
[plamo:16364] Re: 8.4GBの壁, fb9c-hgc
[plamo:16365] Re: 8.4GBの壁, FUJII Hiroyuki
[plamo:16368] Re: 8.4GBの壁, nobuhide shimizu

[検索ページ] [メール一覧]
Plamo ML 公開システム