糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > linux centos系统启动失败:VFS:Unable to mount root fs on unknown-block

linux centos系统启动失败:VFS:Unable to mount root fs on unknown-block

时间:2019-10-30 09:03:08

相关推荐

linux centos系统启动失败:VFS:Unable to mount root fs on unknown-block

最近遇到了一次虚机系统启动失败,提示错误如图:

根据字面意思,根目录的文件系统出问题了,无法挂载,导致系统无法启动。

尝试了以下方法:

1.将这个盘挂载到别的机器上通过fsck/xfs_repair修复。没有成功,再从这个盘启动报的一样的错误

2.有可能是内核出现了问题。这种情形一般出现于更新内核/执行yum update的过程中出现了某些错误。这时候需要重新生成initramfs

3.如果遇到当前内核的文件不齐全生成不了initramfs,选择从其他内核版本加载

生成新的initramfs

准备材料:centos标准镜像。这里用的是

CentOS-7-x86_64-DVD-1908.iso

将镜像挂载到机器上,设置机器优先从镜像启动。会进入这个界面,依次按照如下选择:Troublesshooting->Rescue a CentOS system

会进入修复模式,再弹出下面的选项时选择continue

此时会根据镜像的sysimge作为根目录。输入lsblk,可以看到我们原本的系统盘的目录

按照我原先对盘的分区,/dev/sda1是boot目录,/dev/mapper/centos-root是根目录。接下来mount root目录,并切换成原来的根目录

mount /dev/mapper/centos-root /mnt/origin_rootchroot /mnt/origin_root

此时基于原本的内核重新生成initframs

dracut initramfs.img -k /lib/modules/<kernel version>/ -v

如果本身/lib/modules下是有多个内核版本的,选择一个自己想要的内核版本。这之后会在当前目录下生成一个initramfs.img文件。将这个文件替换原来boot目录下的initramfs文件。注意这里替换只替换正常启动用的initramfs.img,不要替换rescue和kdump

mount /dev/sda1 /mnt/origin_bootcp initramfs.img /mnt/origin_boot/initramfs-<kernel ver>.img

至此,我们就将有问题的initramfs替换为了正常的initramfs。之后关闭机器,设置启动顺序为从硬盘启动即可

从其他内核启动

其他步骤同上。进入到rescue模式后,挂载当前的根目录,在/lib/modules下查看有哪些内核版本。再修改/boot/grub2/grubenv,将其修改为选定的内核版本名称

grub2-editenv list确认修改生效

保存文件后重启即可

如果觉得《linux centos系统启动失败:VFS:Unable to mount root fs on unknown-block》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。