カーネルが起動中に /dev/sda ファイルが見つかりません

カーネルが起動中に /dev/sda ファイルが見つかりません

Gentooカーネル(kernel-2.6.36-gentoo-r5)を設定しましたが、起動時にインストールが失敗します/dev/sda1

ALERT! /dev/sda1 does not exist . Dropping to a shell .

シェルを使ってディレクトリに入ってみると、orファイルが/devないことがわかりました。ただし、Debianカーネル(vmlinuz-2.6.32-5-686)から起動すると、パーティションを見つけてマウントできます。sda*hd*/dev/sda1

問題は何ですか?どうすれば解決できますか?/etc/modules.autoload.d/kernel-2.6起動中に自動的にロードされるようにファイルにモジュール名を追加しませんでした。これが問題の原因ですか?

答え1

カーネルを再構築する方法について正確に言及していません。これはかなり複雑なプロセスなので、ディストリビューションの推奨事項に従う必要があります。実際にプリコンパイルできないいくつかの機能(ハードウェアをサポートする最新のドライバセット)が必要ない限り、ディストリビューションのカーネルを使用する必要があります。

2つの一般的な落とし穴があり、どちらかが観察した症状を引き起こす可能性があります。

  • たぶん必要なドライバをコンパイルするのを忘れたかもしれません。カーネルの設定は難しいプロセスであり、主な設定を忘れやすいです。特に、ルートファイルシステムに接続するために必要なドライバ(ディスクコントローラ、パーティションスキーム、ファイルシステム、および関連するボリューム管理)が含まれていることを確認してください。これらのドライバはカーネルに組み込まれているか(つまりモジュールではない)initrdが必要です(この場合はinitrdドライバと関連ファイルシステムを組み込む必要があります)。.configディストリビューションから始めて、必要な部分だけを変更することをお勧めします。
  • initrdを使用している場合は、それを再作成またはインストールするのを忘れたか、ブートローダにそのように指示した可能性があります。

答え2

ルートデバイスにアクセスするために必要な特定のドライバは必要ありません。おそらくSATAまたはそれが使用するSCSIモジュールの1つです。ドライバを作成していないか、initrdに入れていません。

答え3

カーネルを設定するときは、正しいSATAドライバを選択したことを確認する必要があります。あなたのハードウェアが何であるかわからないので、どのドライバがあなたに合っているのかを直接調べる必要があります。

私はいつもSATAドライバをモジュールではなくカーネルに構築するので、扱いやすくなります。

答え4

ランタイムはmake && make modules_install && make installカーネルを構築するだけでなく、カーネルイメージ(bzImage)をインストールして/boot/にコピーし、initrdを作成し、両方のためのgrubエントリを作成する必要があります。

これが使用するコマンドや構文ではない場合は、この手順を試してみることをお勧めします。これがあなたがフォローしているプロセスであれば、initrdを再構築mkinitrdし、grub構成のルートデバイスがシステム構成を正確に示すことを確認することをお勧めします。

関連情報