尝试从10.10升级到11.04之前,一切似乎都很顺利,直到重新启动为止。出现此错误消息:
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
我们该如何解决?
sudo apt-get install linux-image-generic
升级到最新版本来解决了该问题核心。
尝试从10.10升级到11.04之前,一切似乎都很顺利,直到重新启动为止。出现此错误消息:
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
我们该如何解决?
sudo apt-get install linux-image-generic
升级到最新版本来解决了该问题核心。
Answers:
您缺少该内核的initramfs。从Ubuntu的Advanced options(高级选项)下的GRUB菜单中选择另一个内核,然后运行sudo update-initramfs -u -k version
以生成initrd version
(替换version
为内核版本字符串,例如4.15.0-36-generic
)sudo update-grub
。
Ubuntu System
或Recovery Mode
,如何执行该命令以测试其是否有效?
从livecd开始,打开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
和更新grub而不会出错。
update-initramfs -u -k 2.6.38-8-generic (or your version)
如果您不知道您的版本。采用:
dpkg --list | grep linux-image
然后更新Grub。
update-grub2
重新启动系统。
sudo mount --bind /dev/pts /mnt/dev/pts
并sudo mount --bind /sys /mnt/sys
在编辑中;没有这个,update-grub2
抱怨。
version
呢?
ls /mnt/boot
寻找最新的内核版本。或者,如果你想正确地做到这一点,阅读menuentry 'Ubuntu'
距离/mnt/boot/grub/grub.cfg
initrd
从失踪/boot
。问题是:文件怎么可能只是消失了?我什么也没做,似乎很危险。
在我的情况下,问题是/boot
容量为100%,因此最后2个内核更新未成功完成,因此在重新引导时GRUB2选择了最新的内核时,它失败了。
我通过引导到安装的最旧的内核并使用aptitude删除了一些未使用的内核来解决了该问题。通过使用aptitude,在卸载完成后,dpkg自动尝试配置损坏的软件包,这次成功了。
dpkg --configure -a
就足以触发update-initramfs挂钩,并修复损坏的内核。
/boot
分区吗?
sudo apt-get autoremove
删除旧内核,以防上的空间不足/boot
。
sudo apt-get autoremove
,再次重新启动(较旧的内核),然后执行了sudo apt-get dist-upgrade
,这可以正常工作。这是在我拥有的小型测试机上。虽然是同一问题,但100%/boot
内核启动消息告诉您可以使用哪些磁盘
例如,如果在我的测试4.17的Linux虚拟机的设置我更换正确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_blk
驱动程序(CONFIG_VIRTIO_BLK=y
)可以读取。
除了Tomeu的指示外,在chroot之前,我还需要:
sudo mount --bind /dev /mnt/dev
此外,在chroot之后:
cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/
(从这里得到这个。)
/dev
上/mnt/dev
。
您也可以在救援模式下引导服务器,然后仅重新安装grub
http://info.w3calculator.com/free-code/linux/recover-from-corrupted-boot-image/