如何根据块地址确定故障文件?

如何根据块地址确定故障文件?

在调查故障驱动器时(参见。为什么 SMART 通过了,但 RAW 读取错误率却显示失败?)。

我对所有驱动器都执行了 SMART 测试。

我的 SSD 内置驱动器使用时显示以下错误smartmonctl

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       90%       521         2023520
# 2  Short offline       Completed: read failure       90%       521         2023520

如何根据偏移量确定哪个文件受到了影响?

答案1

如果您愿意花点时间,您可以简单地尝试读取系统中的所有文件,看看是否有任何关于 I/O 错误的抱怨。

请记住,所查看的区域可能根本没有分配给任何文件。

答案2

最后我自己找到了答案。所以,这是有可能的。

echo '1613920' > error_blocks # The value from LBA_of_first_error column less the number of blocks in previous partitions
sudo fsck_hfs -B error_blocks /dev/disk1s2 # In my case, the filesystem is on /dev/disk1s1

结果如下:

1 blocks to match:
** /dev/rdisk1s2
** Root file system
   Executing fsck_hfs (version diskdev_cmds-557.3~1).
** Verifying volume when it is mounted with write access.
   Journal need to be replayed but volume is read-only
** Checking Journaled HFS Plus volume.
fsck_hfs: Volume is journaled.  No checking performed.
fsck_hfs: Use the -f option to force checking.

所以那里没有文件!

但是,此方法需要确认,因为即使检查了许多块,我仍无法使用此命令显示路径。

相关内容