在RHEL/CentOS 7/8 Linux中以应急模式修复文件系统的步骤

时间:2020-01-09 10:38:14  来源:igfitidea点击:

在本文中,我将分享"在RHEL/CentOS 7/8 Linux中以抢救模式修复文件系统的分步教程"。

很多时候,分区上的文件系统被损坏,因此,作为Linux管理员,我们必须确保文件系统处于修复状态(假定要修复)。
但是,尽管如此,我们仍必须努力修复文件系统。

现在要修复文件系统,我们应该卸载该分区以确保没有进程正在使用该分区,这仅适用于某些数据分区,但是除非我们处于救援模式,否则无法卸载任何系统分区。
同样,Linux节点也可能无法访问,因此在这种情况下,必须强制进入救援模式,然后执行文件系统修复。

因此,让我们检查一下如何在救援模式下修复文件系统。
我已经在RHEL/CentOS 7/8环境中验证了这些步骤,但是这些片段将来自在Oracle Virtualbox上作为虚拟机安装的CentOS 8.0 Linux节点。

:在CentOS/RHEL 7/8 Linux中启动进入救援模式

我们可以使用Live DVD引导到用于安装RHEL/CentOS 7/8 Linux节点的救援模式。

由于我已经在另一篇文章中解释了这些步骤,因此其中我会非常简短:

说明:

这里的输出可能会因Linux环境而异,例如,在CentOS上,我们可能会看到Install CentOS Linux 8.0.XXXX。
我们应该集中精力对TAB进行故障排除

Install Red Hat Enterprise Linux 8.0.0
Test this media & install Red Hat Enterprise Linux 8.0.0
Troubleshooting                                    <--- Select

在下一个屏幕上,我们将获得以下选项列表

Install Red Hat Enterprise Linux 7.0 in basic graphics mode
Rescue a Red Hat Enterprise Linux system          <--- Select
Run a memory test
Boot from local drive
Return to main menu

在下一个屏幕中,按" 3"以跳到shell,以便我们可以手动安装所需的文件系统

:激活分区(逻辑卷/raid)

如果我们不使用RAID设备或者逻辑卷,则此步骤可以是可选的。

提示:

如果只有分区,例如/dev/sda1/dev/sdb1等,则可以跳过此步骤,直接转到":以应急模式修复文件系统"

如果使用软件RAID,请先初始化RAID阵列

# mdadm --examine --scan
# mdadm --assemble --scan

如果使用LVM,请激活卷以对其进行扫描。

# vgchange -ay

接下来,我们可以使用列出逻辑卷和卷组

# lvs  <-- To list logical volumes
# vgs  <-- To list volume groups

:在应急模式下修复文件系统

现在,由于我们的分区和逻辑卷处于救援模式,并且由于尚未挂载它们,因此系统进程不再使用它们。
因此,我们可以在此阶段以抢救模式安全地修复文件系统。

提示:

即使文件系统被标记为干净,我们也将使用-f进行强制检查,并使用-e来打印带有e2fsck的详细输出。

修复ext4文件系统(逻辑卷)

我们将使用e2fsck来修复位于逻辑卷顶部的ext4文件系统

# e2fsck -fv /dev/mapper/<vg>-<lv>

例如:检查下图我们修复逻辑卷的位置

# e2fsck -fv /dev/mapper/rhel-root

修复ext4文件系统(普通分区)

我们将再次使用e2fsck修复位于普通分区顶部的ext4文件系统

# e2fsck -fv /dev/<sd device>

例如:检查下图我们修复正常分区的位置

# e2fsck -fv /dev/sda1

修复软件RAID设备

我们将使用e2fsck来修复位于RAID设备顶部的ext4文件系统。
例如:在下面的图像中我们修复软件RAID设备的位置

# e2fsck -fv /dev/md0

使用xfs_repair修复XFS文件系统

现在,我现在没有XFS文件系统,因此无法向我们显示修复XFS文件系统的步骤输出。
但是以下是可用于在RHEL/CentOS 7/8 Linux环境中修复XFS文件系统的命令。

# xfs_repair /dev/mapper/<vg>-<lv>
or
# xfs_repair /dev/<sd device>
or
# xfs_repair /dev/<md device>