[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>