Failed to mount /sysroot如何解决?

centos7系统启动出现Failed to mount /sysroot报错,系统root分区无法挂载,一般引发的问题是主机文件系统损坏,采用umount和mount的方式可能可以恢复,但无法真正修复已经损坏的文件系统,在后续使用中仍会出现主机端读写错误。

最近一个centos系统就出现此故障,简单总结一下就是主机文件系统元数据损坏导致I/O error,系统卡死

ll /dev/mapper/centos-root   #系统的根分区逻辑卷
lrwxrwxrwx 1 root root 7 12月  1 09:57 /dev/mapper/centos-root -> ../dm-0 
#对应的块设备文件/dev/dm-0

umount /dev/mapper/centos-root提示不成功

直接xfs-repair也不行

最后通过新的系统镜像引导进入恢复模式修复

在官方下载新的镜像,制作光驱盘,系统重启,按F6进入启动管理,选择从光盘启动,进入系统安装引导

img

选择troubleshooting

20190607113642.png

选择Rescue a CentOS system

20190607113915.png

选择3直接跳转到shell

执行xfs_repair -v /dev/dm-0

如果不行的话加-L参数(-L:强制日志清零,包括元数据更改)此参数可能会丢失文件系统元数据,生产环境慎用,使用之前先备份元数据

xfs_metabaimp /dev/dm-0 /tmp/vol1.metadump

xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统

xfs_check: 检测 xfs 文件系统的完整性

如果不确定文件系统是否正常的话可以在修复之前先xfs_check进行检测

xfs_check /dev/sdd(盘符); echo $?

返回0即表示正常,检测之前确保分区已经umount

posted @ 2020-12-01 11:21  海军同学  阅读(9500)  评论(0编辑  收藏  举报