カーネルパニック-同期していない:VFS:unknown-block(0,0)にルートfsをマウントできません


97

10.10から11.04にアップグレードしようとすると、再起動するまですべてうまくいくように見えました。このエラーメッセージが表示されます。

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

どうすれば修正できますか?


1
トラブルメインシステムとは関係なく、インストールメディア(USBスティック)とは関係ないかもしれません ...➪こちらをご覧ください:askubuntu.com/a/632636/479118
フランクノッケ

私は十分に担当者を持っていないので、私は答えを投稿することはできませんが、私はこの問題を得たとき、私は、ライブUSBスティックに起動して、それを解決し、メインとEFIパーティションをマウントネットワーキングを可能にし、実行されているsudo apt-get install linux-image-generic最新のものにアップグレードしますカーネル。
オーウェン

回答:


83

そのカーネルのinitramfsがありません。Ubuntuの[詳細オプション ]の[GRUB]メニューから別のカーネルを選択し、実行sudo update-initramfs -u -k versionしてinitrdを生成します(などのカーネルバージョン文字列でversion置き換えversionます4.15.0-36-genericsudo update-grub


2
そのOSに存在する一意のカーネルオプション(マルチブートシナリオ)を選択するときにカーネルパニックが表示された場合、update-initramfsを起動するにはどうすればよいですか?
knocte

3
@Dew、貧しい人々のコメント...
psusi

2
@ knocte、Tomeu Roigの回答を参照してください。
psusi

1
それは悪い答えのように見えますが、それは真実です!
user3215 14年

2
入力Ubuntu Systemまたは入力できませんRecovery Mode。どうすればそのコマンドを実行して、機能するかどうかをテストできますか?
キャスパー

53

livecdで開始し、ターミナルを開きます

sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt 

そして今、あなたはupdate-initramfsエラーなしでgrubを作成し、更新することができます。

update-initramfs -u -k 2.6.38-8-generic (or your version)

バージョンがわからない場合。つかいます:

dpkg --list | grep linux-image

そして、Grubを更新するだけです。

update-grub2

システムを再起動します。


1
私が追加されているsudo mount --bind /dev/pts /mnt/dev/ptssudo mount --bind /sys /mnt/sys私の編集では、これがなければ、update-grub2文句を言いました。
Hbf

4
どのように正確 に見つけることができversionますか?
knocte

1
EFIを使用している場合、最初の/ dev / sdaxを超えるマウントポイントは存在しません。
ポールグレゴワール

@knocte ls /mnt/bootは、最新のカーネルバージョンを探してみてください。それとも、それを適切に行いたい場合は、読んでmenuentry 'Ubuntu'から/mnt/boot/grub/grub.cfg
チロSantilli新疆改造中心法轮功六四事件

Ubuntu 14.04で動作しました!initrdから欠落していました/boot。質問は次のとおりです。ファイルが単純に消えることはどのように可能ですか?危険そうなことは何もしませんでした。
Ciro Santilli新疆改造中心法轮功六四事件

22

私の状況では、問題は/boot容量が100%であったため、最後の2つのカーネル更新が正常に完了しなかったため、GRUB2が最新のカーネルを選択したリブートで失敗しました。

インストール済みの最も古いカーネルを起動し、aptitudeを使用して未使用のカーネルを削除することで問題を解決しました。aptitudeを使用することにより、アンインストールが行われた後、dpkgは自動的に壊れたパッケージを構成しようとしましたが、今回は成功しました。


3
これは私のソリューションに最も近いものでした。dpkg --configure -aupdate-initramfsフックをトリガーし、壊れたカーネルを修正するには、実行するだけで十分でした。
対称

別の/bootパーティションがあったということですか?
Ciro Santilli新疆改造中心法轮功六四事件

1
私の到着前にセットアップされたサーバーであり、独自のパーティションおよび無人アップグレードで/ bootを使用して構成されました
-sheepeatingtaz

3
sudo apt-get autoremoveで領域が不足した場合に使用して、古いカーネルを削除できます/boot
フロリアンブラッカー

私は古いカーネルにブートし、を実行し、sudo apt-get autoremove再度リブート(古いカーネル)し、次にを実行しましたsudo apt-get dist-upgradeが、これは機能しました。これは私が持っている小さなテストマシンでした。しかし、同じ問題、100%/boot
jmlumpkin

19

カーネルの更新が中止された後にこれが発生した場合(たとえば、システムクラッシュwhile aptitude safe-upgrade)、

  1. 古いカーネルで起動し、
  2. を実行しdpkg --configure -aます。

これにより、アップグレードが完了します。これには、psusiが説明するブート設定の構成も含まれます。


1

カーネルブートメッセージは、使用できるディスクを示します

例えば、私の中であれば、テストのLinux 4.17の仮想マシンのセットアップ私は、正しいを交換root=/dev/vdaしてroot=/dev/vdb、最後のメッセージです。

---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)-

ただし、上記の数行では、次のタイプのメッセージが表示されます。

VFS: Cannot open root device "vdb" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
fe00          524288 vda
 driver: virtio_blk

これは、基本的vdbには見つかりませんでしたが、ドライバー()が/dev/vda原因で読み取ることができるものがあることを直接教えてくれます。virtio_blkCONFIG_VIRTIO_BLK=y




0

/ bootパーティションがいっぱいで、カーネルの更新が失敗したため、この問題が発生しました。GRUBメニューで古いカーネルから起動することで、これを修正することができました。

ブートに成功したとき、古いカーネルのパージを開始しましたが、いくつかの依存関係の問題が発生したため、最初にlinux-serverパッケージをアンインストールする必要がありました

apt-get remove linux-server
apt-get update
apt-get -f install
apt-get upgrade

その後、再起動しましたが、すべて正常に機能していました!

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