一、前言:
1、我这里使用的是物理服务器。
2、因为物理服务器开机较慢,开机时还没有完全进入系统就进行了硬重启。
3、再次启动的时候发现进度条越到后面时候越慢,到刚好满的时候直接就卡住不动了。
二、问题排查:
1、刚开始以为是系统自启动服务没有启动而卡住了。
2、后面通过上网搜索到在进度走动的时候按F5看具体的启动过程,注意:要在进度条走动的时候就要按下F5键,不要再进度条已经停止按下F5键,可能有些信息会看不到。
分析上图,发现到"systemd-readhead[784]: Failed to open pack file: Input/output error” 这里就卡住不动了,“Input/output error”是关键字,就是IO有问题,其实是Linux系统文件损坏了,其他类似这样IO有问题,或者系统出现类似“XFS”有问题的同样可以通过修复Linux文件系统的方式解决。
三、修复方法
1、重启系统,到系统选择内核界面的时候按“e”键进入单用户模式,如下图。
2、找到“Linux16”开头这行,把“ro”改成“rw init=/sysroot/bin/bash”,然后按“Control+x”进入单用户模式,如下图。
3、进入单用户模式之后
3.1 首先要确保要修复的文件系统分区是umount状态,分区是可变的,具体根据你们的需要修复的分区来。
umount /dev/mapper/centos-root
3.2 修复文件系统分区
xfs_repair -d /dev/mapper/centos-root
3.3 文件系统修复完成后重启系统
reboot
至此,文件系统修复完成
以下是我在网上摘抄过来的,仅供大家查阅
1、检查文件系统:先确保umount
xfs_check /dev/sdd(盘符); echo $?
返回0表示正常
2、执行xfs_repair -n,检查文件系统是否损坏,如何损坏会列出将要执行的操作
如果幸运的话,会发现没有问题,你可以跳过后续的操作。
该命令将表明会做出什么修改,一般情况下速度很快,即便数据量很大,没理由跳过。
3、执行xfs_repair修复文件系统
xfs_repair /dev/sdd (ext系列工具为fsck)
4、最后方法:损失部分数据的修复方法
根据打印消息,修复失败时:
先执行xfs_repair -L /dev/sdd(清空日志,会丢失文件),再执行xfs_repair /dev/sdd,再执行xfs_check /dev/sdd 检查文件系统是否修复成功。
说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。
备注:
在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。
xfs_metadump为调试工具,可以不管,跳过。