在 ext4 文件系统上查找哪些文件受坏块影响

15 linux ext4

我有一个 ext4 文件系统,它最近开发了一些坏扇区。运行会fsck.ext4 -c发现并记住坏块。如何找到哪些文件(如果有)包含这些坏块,以便从备份中恢复它们?

Net*_*hox 14

用的组合dumpe2fsdebugfs被包括在e2fsprogs包沿着fsck.ext*
您必须使用命令的输出作为下一个命令的参数。
这些工具会自动检测文件系统块大小,因此比直接badblocks调用更一致且更安全。

打印文件系统的已注册坏块:

# dumpe2fs -b DEVNAME
Run Code Online (Sandbox Code Playgroud)

打印使用给定块列表的 inode:

# debugfs -R "icheck BLOCK ..." DEVNAME
Run Code Online (Sandbox Code Playgroud)

将路径名打印到给定的 inode 列表:

# debugfs -R "ncheck INODE ..." DEVNAME
Run Code Online (Sandbox Code Playgroud)

debugfs也有一个交互式 shell 和-f cmd_file选项,但它们在这种情况下不是很强大或有用。
-R 选项允许更多的自动化脚本,如下所示:

# dumpe2fs -b DEVNAME
Run Code Online (Sandbox Code Playgroud)