[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:39239] Kernel panic: No init found
増田と申します。
最近 Debian を使い始めたところです。
インストール〜カーネルコンパイルでハマってかなり苦労したのですが、なん
とか解決(回避?)できたので、レポートです。(報告半分、質問半分)
- したかったこと
3.0r1 を使って、bf2.4 をメモリ 1GB (Pentium 4)のマシンにインストール。
その後、メモリを 1GB 認識するように、HIGHMEM を y にしてカーネルを再コ
ンパイル。
- 現象
再コンパイルしたカーネルが、ブートの途中で No init found で panic
する。(mem=800M など小さい値を明示的に与えると、ブートする)
- 対応策
Processor family が 386 だったのを Pentium 4 に変えたら、正常に動作す
るようになりました。
コンパイルの手順は、
apt-get install libncurses5-dev kernel-package fakeroot
apt-get install kernel-source-2.4.18
cd /usr/src
tar jxf kernel-source-2.4.18.tar.bz2
ln -s kernel-source-2.4.18 linux
cd linux
cp /boot/config-2.4.18-bf2.4 .config
make oldconfig
+ 全部 default のまま return
make menuconfig
+ Processor family を Pentium 4 に
+ メモリを 4G 対応に
make-kpkg clean
fakeroot make-kpkg --revision=custom.1 kernel_image
dpkg -i ../kernel-image-2.4.18_custom.1_i386.deb
というかんじです。
Processor family を変えないでメモリを 4G 対応にしただけの場合、もとの
.config との diff は
16c16,17
< CONFIG_NOHIGHMEM=y
---
> CONFIG_HIGHMEM4G=y
> CONFIG_HIGHMEM=y
だけでした。この config でコンパイルした kernel では、panic を起こして
失敗(起動時のカーネルパラメータに mem=800M などを与えると起動)。
Processor family を Pentium 4 にしてコンパイルし直してみると、ブート成
功。メモリも 1GB 認識。
という結果でした。(Pentium III にしても成功しました。その他は調べてません)
一応解決はしたのですが、こんなもんでよいでしょうか。
いろいろ検索してみたものの、同じ状況の例はなかなか見つからず。
1 つだけ見つかったのがこれでした(解決したという結論には至ってない):
http://www.linuxforum.com/forums/index.php?showtopic=5569
何かありましたらご指摘などいただければありがたいです。
補足)
ちなみに、panic しているのは、init/main.c の最後のところで、
execve() が失敗したあとの errno の値は 80 でした。なぜこうなるのやら。
#define ELIBBAD 80 /* Accessing a corrupted shared library */
---
増田和悦 <k@xxxxxxx>