Answers:
如果您尝试运行xfs_repair,并得到建议安装文件系统以重播日志的错误消息,并且在安装后仍收到相同的错误消息,则可能需要执行强制修复(使用-L
带有标志的xfs_repair
)。此选项应该是不得已的方法。
例如,我将使用CentOS 7安装中的根分区损坏的情况。尝试安装分区时,我不断收到以下错误消息:
挂载:在/ mnt / centos-root上挂载/ dev / mapper / centos-root失败:结构需要清洗
不幸的是,强制修复将涉及在尝试修复之前将日志清零(销毁)。使用这种方法时,可能会得到比最初预期更多的损坏数据。但是,在进行任何永久更改之前,我们可以使用适当的xfs工具查看可能造成的损坏。
使用xfs_metadump和xfs_mdrestore,可以创建受影响分区的元数据映像,然后对该映像(而不是分区本身)执行强制修复。这样做的好处是能够在分区上执行强制修复之前查看其损坏。
为此,您需要一个尺寸合适的USB或外部硬盘驱动器。首先安装USB驱动器-我的USB位于/dev/sdb1
,您的USB名称可能有所不同。
mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb
挂载后,运行xfs_metadump
以创建分区元数据到USB的副本-同样,受影响的分区可能有所不同。在这种情况下,我的根分区已损坏/dev/mapper/centos-root
:
xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump
接下来,您需要将元数据还原到图像中,以便我们进行修复并衡量损坏。
xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img
我发现在救援模式下xfs_mdrestore
不可用,相反,您需要在实时CentOS CD的救援模式下。
最后,我们可以对图像进行修复:
xfs_repair -L /mnt/usb/centos-root.img
修复完成后,您已经评估了输出和潜在损坏,可以确定是否要对该分区进行修复。
要对分区运行修复,只需运行:
xfs_repair -L /dev/mapper/centos-root
不要忘记也检查其他分区是否损坏。修复之后,重新引导系统,您应该能够成功引导。
请记住,在-L
没有其他可能的选择要修复的情况下,应将标志用作最后的手段。
我发现这些在线文章有帮助: