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

[plamo:15249] Re: Plamo3.0b2をloadlinでインストール失敗



From: Pola X <polax@hamal.freemail.ne.jp>
Subject: [plamo:15248] Plamo3.0b2をloadlinでインストール失敗
Date: Thu, 05 Sep 2002 12:16:10 +0900

> d:\inst> us
> d:\inst> loadlin vmlinuz initrd=initrd.gz ram=/dev/ram
> 
> を実行しました。
> plamo2.2まではこの方法で上手く行っていたのですが、
> 今回は、
> Loading vmlinuz................
> の後に、
> Uncompressing Linux 
> 
> crc error
> 
>  -- System halted
> 
> となってしまいそこから進みません。

手元で確認したわけではないですが,カーネルのサイズが大きすぎて 
loadlin.exe では正しく処理できていないのかも知れません.

似たようなトラブルが grub98 でも起きていたので grub98 の開発者の高井さ
んに訪ねたところ,以下のような情報を教えていただきました.

From: TAKAI Kousuke <tak@kmc.gr.jp>(高井 幸輔)
Subject: [linux98:6333] Re: bootable kernel size via grub98
Date: Tue, 13 Aug 2002 08:28:24 +0900

> >> grub98 でロードできるカーネルのサイズって 1.05MB 前後に制限あったりし
> >> ます?
> 
> 確かにその辺りが上限になっています。
> もう少し正確には、32ビットコード (圧縮されたカーネルとその展開ルーチン、
> linux/arch/i386/boot/compressed/bvmlinux.out) のサイズの上限が約 1024KB
> で、実際にはこれにブートセクタと setup (16ビットコード) がくっつくので
> だいたい 1050KB ということだと思います。
> 
> この上限は、 grub の制限というよりはどちらかというと Linux カーネル側の
> 制限に由来しています。 Linux カーネルのブートセクタの最後の方には
> 32ビットコードのサイズを示すフィールドがあって、 grub(/98) は
> このフィールドに従って読み込むサイズを決めているのですが、
> このフィールドは16ビットしかありません。このフィールドは16バイト単位
> (昔の言葉では「パラグラフ」単位) でサイズを保持しているので、
> 表せる最大のサイズは 0xFFFF * 16 == 1048560 バイトとなっています。
> Linux カーネルの構築時にはこのフィールドのオーバーフローは
> チェックされないで、パラグラフ単位のサイズの下位16ビットだけが
> 書き込まれてしまいます。したがってカーネルサイズが1024KB未満の
> 端数のサイズであるかのように見えてしまい正しくロードできません。
> 
> このフィールドを無視してファイルサイズから読み込みサイズを決めるように
> grub/98 を変更すればこのような場合にも対応できると思いますが、
> フロッピーにべた書きしてある場合のようにファイルサイズを決定できない
> 場合があって少々面倒になるため手つかずになっています。どうもすみません。
> 
> -- 
>  京大マイコンクラブ                     高井 幸輔 <tak@kmc.gr.jp>

loadlin.exe が上記のサイズフィールドを参照しているとすると,同じ問題が
起きているような気がしますね.

SCSI 用のドライバとかを外したらこのサイズ(1.05MB)以下にすることも可能
だと思うけど,そういうニーズってありますかね?

------
こじま

Follow-Ups
[plamo:15250] Re: Plamo3.0b2をloadlinでインストール失敗, Pola X
References
[plamo:15248] Plamo3.0b2をloadlinでインストール失敗, Pola X

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