続行するためにログなどで多くの情報を提供していませんが、あなたが直面しているこのエラーはおそらくカーネルが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
パーティション上にあると想定します。