12.2. fsck 的文件系统特定信息
12.2.1. ext2、ext3 和 ext4
所有这些文件 sytems 使用
e2fsck
二进制文件来执行文件系统检查和修复。文件名 fsck.ext2、
fsck.ext3
和 fsck.ext4
是同一二进制文件的硬链接。这些二进制文件在引导时自动运行,其行为因正在检查的文件系统和文件系统的状态而异。
对于不是元数据日志记录文件系统的 ext2 和没有日志的 ext4 文件系统,会调用完整的文件系统检查和修复。
对于带有元数据日志的 ext3 和 ext4 文件系统,日志会在用户空间中重新执行,二进制文件会退出。这是默认操作,因为日志重播可确保崩溃后文件系统的一致性。
如果这些文件系统在挂载时遇到元数据不一致的情况,它们会在文件系统超级块中记录此事实。如果 e2fsck 发现文件系统标记为此类错误,e2fsck 会在重播日志(如果存在)后执行完整检查。
如果未指定 -p 选项,e2fsck 可能会在运行期间要求用户输入。p 选项告知 e2fsck 自动执行所有可以安全完成的修复。如果需要用户干预,e2fsck 会在其输出中指示未修复的问题,并在退出代码中反映此状态。
常用的 e2fsck 运行时选项包括:
- -n
- 无修改模式.仅检查操作.
- -b superblock
- 如果主块被损坏,请指定备用的 suprerblock 的块数。
- -f
- 如果超级块没有记录的错误,也强制进行全面检查。
- -j journal-dev
- 指定外部日志设备(若有的话)。
- -p
- 自动修复或"复制"文件系统,无需用户输入。
- -y
- 假设所有问题的答案都为"是"。
e2fsck 的所有选项都在 e2fsck (8) 手册页中指定。
e2fsck 在运行时执行以下五个基本阶段:
- Inode、块和大小检查.
- 目录结构检查。
- 目录连接性检查。
- 参考计数检查。
- 组摘要信息检查。
e2image (8) 工具可用于在修复前创建元数据镜像,以进行诊断或测试。-r 选项用于测试目的,以便创建与文件系统本身大小相同的稀疏文件。然后 e2fsck 可以直接对生成的文件进行操作。如果要存档或提供用于诊断的镜像,则应指定 -Q 选项。这会创建更精简的文件格式,适合传输。
12.2.2. XFS
在引导时不自动执行任何修复。要启动文件系统检查或修复,请使用 xfs_repair 工具。
注意
虽然 xfsprogs 软件包中存在
fsck.xfs
二进制文件,但这仅用于满足在启动时查找 fsck 的 initscripts。文件系统
二进制文件。fsck.xfs
立即退出,退出代码为 0。
旧的 xfsprogs 软件包包含一个 xfs_check 工具。这个工具非常慢,对于大型文件系统无法很好地扩展。因此,它已被 xfs_repair -n 替代。
xfs_repair 需要文件系统上的干净日志才能运行。如果没有完全卸载文件系统,则应在使用 xfs_repair 之前挂载和卸载文件系统。如果日志损坏且无法重新执行,则使用 -L 选项可将日志归零。
重要
只有无法重新执行日志时,必须使用 -L 选项。选项丢弃日志中的所有元数据更新,并产生进一步的不一致。
可以使用 -n 选项,以空运行(仅检查)模式运行 xfs_repair。指定此选项时,不会对文件系统进行任何更改。
xfs_repair 使用非常少的选项。常用的选项包括:
- -n
- 无修改模式。仅检查操作.
- -L
- 将元数据日志归零。仅当无法通过 mount 重新执行日志时才使用。
- -m maxmem
- 将运行期间使用的内存限制为 maxmem MB。可以指定 0 来粗略估算所需的最小内存。
- -l logdev
- 如果存在,指定外部日志设备。
xfs_repair 的所有选项都在 xfs_repair (8) 手册页中指定。
xfs_repair 在运行时执行以下八个基本阶段:
- inode 和 inode 块映射(寻址)检查.
- inode 分配映射检查。
- inode 大小检查。
- 目录检查。
- 路径名称检查。
- 链接数检查。
- 空闲映射检查。
- 超级块检查。
如需更多信息,请参阅 xfs_repair (8) 手册页。
xfs_repair 不是交互式的。所有操作都自动执行,无需用户输入。
如果需要在修复前为诊断或测试目的创建元数据镜像,则可以使用 xfs_metadump (8) 和 xfs_mdrestore (8) 工具。
12.2.3. Btrfs
注意
Btrfs 在 Red Hat Enterprise Linux 7 中作为技术预览功能提供,但自 Red Hat Enterprise Linux 7.4 发行版本起已被弃用。它将在以后的 Red Hat Enterprise Linux 主发行版本中删除。
如需更多信息,请参阅 Red Hat Enterprise Linux 7.4 发行注记中的 已弃用的功能。
btrfsck 工具用于检查和修复 btrfs 文件系统。此工具仍处于早期开发阶段,可能无法检测或修复所有类型的文件系统损坏。
默认情况下,btrfsck 不会对文件系统进行更改;也就是说,它默认运行仅检查模式。如果需要修复,则必须指定 --repair 选项。
btrfsck 在运行时执行以下三个基本阶段:
- 扩展检查。
- 文件系统 root 检查。
- 根参考计数检查。
btrfs-image (8) 工具可用于在修复前创建元数据镜像,以进行诊断或测试。