内核恐慌 – 不同步:VFS:无法在未知块(0,0)上挂载根fs
在尝试从10.10升级到11.04时,似乎一切顺利,直到重启。 出现此错误消息:
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
我们如何解决这个问题?
您缺少该内核的initramfs。 从grub菜单中选择另一个内核,或运行update-initramfs -u -k version
以生成update-initramfs -u -k version
的initrd然后update-grub
。
从livecd,open aa终端开始
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
和update-grub。
update-initramfs -u -k 2.6.38-8-generic (or your version)
如果你不知道你的版本。 使用:
dpkg --list | grep linux-image
只需更新Grub。
update-grub2
重新启动系统。
在我的情况下,问题是/boot
是100%容量,所以最后2个内核更新没有成功完成,因此在重新启动时GRUB2选择了最新的内核,它失败了。
我通过引导安装到最旧的内核并使用aptitude删除一些未使用的内核来解决了这个问题。 通过使用aptitude ,在卸载发生后, dpkg会自动尝试配置损坏的软件包,这次成功了。
如果这发生在中止内核更新后(例如,在aptitude safe-upgrade
系统崩溃),
- 用旧内核启动和
- 运行
dpkg --configure -a
。
这将完成升级,包括配置启动设置,如psusi所述 。
除了Tomeu的指示,在我需要chroot之前:
sudo mount --bind /dev /mnt/dev
另外,在chroot之后:
cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/
( 从这里得到这个。 )
您也可以在救援模式下启动服务器,并仅重新安装grub
http://info.w3calculator.com/free-code/linux/recover-from-corrupted-boot-image/
由于我的/ boot分区已满,我遇到了这个问题所以我的内核更新失败了。 我设法通过从GRUB菜单中的旧内核启动来解决这个问题。
当我设法启动时,我开始清除旧内核,但我设法得到一些依赖性问题,所以首先我必须卸载linux-server包
apt-get remove linux-server apt-get update apt-get -f install apt-get upgrade
然后我重新启动,一切正常!
内核引导消息告诉您可以使用哪些磁盘
例如,如果在我的测试Linux 4.17虚拟机设置中,我用root=/dev/vdb
替换正确的root=/dev/vda
,最后一条消息是:
---[ 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
,但是由于virtio_blk
驱动程序( CONFIG_VIRTIO_BLK=y
),可以读取/dev/vda
。