目录

一、说明

二、确认修复方式

三、进救援模式

 四、进入救援修复文件系统


一、说明

        之前写过修复文件系统的文章,但只是基于非 “根“ 的文件系统,下面记录一下非”根“文件系统进救援模式修复方法。

二、确认修复方式

        大多Linux主机系统重启时会自动修复文件系统,如果大家遇到文件系统需要修复的情况,允许的情况下可以先对系统进行重启尝试是否可以自动修复文件系统。

        如果重启后仍无法修复损坏的文件系统,就需要进行手动修复,我们首先要确认是:哪个文件系统损坏了。

        提前确认这个条件是因为,非”根“文件系统卸载后是可以直接进行修复操作,如果是”根“文件系统那就不能卸载进行操作,如果是xfs文件系统检查错误也只能卸载后检查,所以如果确认是”根“文件系统的损坏,那只能进入救援模式去修复文件系统。

三、进救援模式

1、VMware虚拟机查看是否挂载ISO镜像如果没挂载按照以下操作,并开机进入固件。

(如果是真实生产环境物理机则需要使用引导光盘,并设置启动项从光盘启动或者通过ILO挂载本地镜像文件,重启进入BOIS调启动项从光盘启动)

centos救援模式 centos7救援_centos救援模式

客户机右键设置按图挂载本地镜像

centos救援模式 centos7救援_vmware_02

 2、上下左右键操作,进入下面的界面就可以调启动项,选择”CD-ROM Rrive“按+号调到第一位按F10即可。

centos救援模式 centos7救援_vmware_03

 3、然后进入如下界面,选择"Troubleshooting"

 

centos救援模式 centos7救援_linux_04

 4、进入如下界面,选择"Rescue a CentOS Linux system"

centos救援模式 centos7救援_centos救援模式_05

 5、进入以下界面提示rescue环境会找到已安装的Linux系统,并将其挂载到光盘Linux环境的/mnt/sysroot目录下,"continue"表示挂载权限为读写,“Read_only"为只读。因为要对系统进行修复,所以需要读写权限。一般选择第一项"continue”,输入1

centos救援模式 centos7救援_文件系统_06

 四、进入救援修复文件系统

1、不同文件系统类型修复方式

a、检查文件系统:
 ext*:(查看“Filesystem state: clean”是否为clean,如果存在error则需要修复文件系统)
 # tune2fs -l /dev/sdb1 |more 
 xfs:(xfs文件系统检查修复需要卸载文件系统后操作)
 # xfs_ncheck /dev/sdb1;echo $?
 如果返回0表示正常不用修复,否则继续下面步骤
 b、ext、xfs修复操作
 ext*:
 # fsck -y /dev/sdb1
 xfs:
 # xfs_repair /dev/sdb1

以下则为进入救援模式修复“根”文件系统

2、如下图,我们已经进入救援模式,进入救援模式,界面如下。先按回车进入shell,提示我们执行chroot /mnt/sysroot就可以进入原系统,下图我们可以看到原系统文件系统已经挂载

centos救援模式 centos7救援_文件系统_07

 3、如是”ext“文件系统我们可以直接进行检查修复操作,如果是”xfs”则需要卸载文件系统检查或修复。

centos救援模式 centos7救援_vmware_08

 4、执行命令“xfs_ncheck /dev/mapper/vg-lv;echo $?” 根据实际的分区名称更改,回车。

会对分区进行检查,最后返回0则不需要修复,返回其他数值则需要进行修复

centos救援模式 centos7救援_centos救援模式_09

因为我的测试环境没有问题返回为0

centos救援模式 centos7救援_文件系统_10

 5、执行命令“xfs_repair /dev/mapper/vg-lv”进行修复

centos救援模式 centos7救援_centos救援模式_11

centos救援模式 centos7救援_重启_12

 以上为进入救援模式以及“xfs”文件系统的修复过程,修复完毕后reboot重启即可。