虚拟机启动报错:checking filesystems failed

时间:2024-03-15 14:05:09

今天像往常一样,打开我的虚拟机,在启动过程中出现了failed

虚拟机启动报错:checking filesystems failed

原因

是由于前几天,笔者更改了Windows的系统时间,可以明显看出,last mount time 是2022年,而 now 是2019年,明显与实际不符

解决方法

出现报错后,先输入密码,进入命令行模式
再输入 fsck 进行检查和维护不一致的文件系统
最后输入 reboot 重启一下就可以了

具体的解决过程

1.出现这个问题之后就立马搜索了网上的相关博客,大家建议输入“fsck -y /dev/mapper/vg_0-root”类似的命令,我进行搜索后发现系统报superblock
can’t read…这样的错,如图
虚拟机启动报错:checking filesystems failed
2.接着我以为是我的superblock出现了问题,在报错信息中,可以在最后一行看到可用的命令和号码,的话可以在启动报错的页面查看具体的位置,不要按照网上的照抄
3.后来发现不是superblock的问题,就是虚拟机系统时间被改变了,直接输入了fsck 没有后面的一长串指令,重启之后发现启动成功了

心路历程

看到启动报错的时候是很慌的,因为笔者的虚拟机没有备份,安装了zookeeper,nginx,redis,kafka,一旦操作不当需要卸载重新安装是一个很大的工程,后来在网上了解了相关的概念之后会大胆许多,因为很多指令不会有那么大的杀伤力。

相关概念

这次了解了一些概念,比较零碎,记录下来以便以后翻看
1.fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
-C : 显示完整的检查进度
-d : 打印出 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复

2.superblock:硬盘分区会分成block,几个block会组成一个block group,Super block即为超级块,它是硬盘分区开头,超级块中的数据其实就是文件卷的控制信息部分,也可以说它是卷资源表,有关文件卷的大部分信息都保存在这里。

3.调用备份的方法就是仔细读错误提示