「ルートデバイスを開けません」エラーでカーネルパニックが発生します。「root =」オプションをどこに追加すればよいですか?


9

Linuxカーネル3.0.0.13(アップグレードによってインストールされたもの)で起動しようとすると、カーネルパニックエラーが発生します。

VFS:ルートデバイス "sda1"または不明なブロック(0,0)を開けません。正しい "root ="ブートオプションを追加してください。

幸いなことに、以前のバージョンを使用して起動した場合、問題はありません。どうすればこれを解決できますか?正しい場所はどこに追加すればよいroot= optionですか?このカーネルが機能しない場合、どうすればデフォルトから削除して、古いカーネルを使用できますか?


ここでも同じ問題。私が観察する主な違い今は/ dev / SDA6使用し、3.0.0.12へのアップしているそのUUIDを使用してハードディスクを識別するためのGRUB confの試行、3.0.0.13 ...奇妙な...
ダン・ソープ

回答:


11

続行するためにログなどで多くの情報を提供していませんが、あなたが直面しているこのエラーはおそらくカーネルがIDE / SATAドライブによって混乱しているためだと思います。クイックGoogle検索を実行すると、リンク1リンク2リンク3に移動しました

以下は、上記のリンクのいずれかによって参照されるリンクからの抜粋です

最も可能性の高い問題の1つである可能性があります(ただし、一度解決すると、二度と表示されることはありません)。

Unable to mount root fs on unknown-block(0,0)

または

VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
  sda driver: sd
    sda1 sda2

数字0,0または8,3あなたのケースでは異なる場合があります-それはカーネルがアクセスしようとする(そして失敗する)デバイスを指します。一般的に言って、最初の数字が0の場合、カーネルはハードウェアを識別できないと言えます。別の数字(8など)の場合、ファイルシステムを識別できません(ただし、ハードウェアにアクセスできます)。

ここでの問題は、ブートしているカーネルがroot=/dev/...(ブートローダー構成内で)与えたパラメーターを実際のアクセス可能なファイルシステムに変換できないことです。いくつかの理由により、このような障害が発生する可能性があります。

  • カーネル構成にHDDコントローラーのドライバーがありません(ケース1、4、5)
  • カーネル構成に、HDDコントローラーが使用するバスのドライバーがありません
  • カーネル構成に、使用しているファイルシステムのドライバーがありません
  • root =パラメータでデバイスが誤って識別されている(ケース2、3)

理由がわかっていれば、問題の解決は簡単です。おそらくそうではないので、ここで簡単なチェックを行います。

カーネル構成ウィザード(make menuconfig部分)を開き、カーネル構成を適宜更新できるようにします。

  • ハードディスクコントローラーが使用するバス/プロトコルのサポートが(モジュールとしてではなく)組み込まれていることを確認します。
  • ほとんどの場合、これはPCIサポート、SATAサポート(SCSIデバイスサポートの下)、...
  • 使用しているHDDコントローラーのサポートが(モジュールとしてではなく)組み込まれているかどうかを確認します。最も頻度の高いケースの1つ:ハードディスクコントローラープロトコル(IDE、SATA、SCSIなど)のサポートを
    選択したが、HDDコントローラードライバー自体(Intel PIIXなど)を選択し忘れた。試してみてください
    、次のlscpiコマンドを実行すると、上のその出力を貼り付け
    http://kmuto.jp/debian/hcl/。このサイトでは、システムに選択する必要のあるカーネルドライバーが表示されます。menuconfig内で、
    「/」を入力して検索機能を開き、ドライバ
    名を入力してそれが存在する場所を見つけることができます。 # lspci -n
  • 使用するファイルシステムのサポートが(モジュールとしてではなく)組み込まれていることを確認します。
  • ルートファイルシステムがbtrfsを使用しているとしましょう(絶対にお勧めしません)が、それを選択しなかった、または
    モジュールとしてビルドするように選択した場合、表示されるエラーが発生します。
    カーネルにファイルシステムサポートが組み込まれていることを確認してください。
  • のカーネルパラメータroot=が正しいパーティションを指しているかどうかを確認します。

    これは思ったほど馬鹿ではありません。1つのカーネルでブートすると、ディスクが/ dev / sdaであると表示される場合がありますが、(構成済みの)カーネルは/ dev / hdaであると想定しています。これは、カーネルが互いに矛盾しているためではなく、使用されているドライバーが原因です。古いドライバーはhda構文を使用し、新しいsdaを使用します。

    hdaをsdaで切り替えてみてください(およびhdbをsdbで切り替えて、...)。

    また、最近のカーネルは、デバイス上で見つけたパーティションの概要を伝えました。存在する場合は、パーティションを誤って選択したかどうかを確認するのに役立つ可能性があります(このセクションの冒頭にある例では、2つだけのパーティションが見つかり、カーネルは3番目のパーティションをブートするように指示されました)。そうでない場合は、カーネルが最初のデバイスを認識していないことが原因である可能性があります(そのため、パーティションを表示することはできません)。

  • ブートローダーによってブートされているカーネルが正しいカーネルかどうかを確認します。最初のカーネル(ブートしない)をビルドした/boot後、新しいカーネルでカーネルを上書きする前にマウントする必要があることを忘れている人を見かけました。その結果、カーネルはルートファイルシステム(/)にカーネルをコピーしますが、ブートローダーはカーネルイメージが/bootパーティション上にあると想定します。


1
こんにちは、それは長い時間が経過しましたが、ありがとう。CD-Romに欠陥があり、すべて正常に動作したことを削除しました!
ルカセロン

リンク1、リンク4、リンク5はすべて死んでいます。
疑問符

0

何が起こっているかを説明するこの回答を読んだ後、[Boot-Reapir CD] [1] [1]を使用してみてくださいhttps ://help.ubuntu.com/community/Boot-Repair

「root =パラメータでデバイスが誤認識されている(ケース2、3)」の修復に優れていた。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.