列出坏块和受影响的文件

列出坏块和受影响的文件

我用 4 到 5 年的笔记本电脑 HDD 制作了完整的磁盘映像。

该硬盘位于经常随身携带的笔记本电脑中,因此多年来,它可能经历了一定程度的物理压力。

HDD 仍然完好无损,但我使用的程序 Guymager 显示了在捕获该图像时遇到了多少个坏扇区;具体来说,有19个坏扇区。

这19个坏扇区影响了哪些LBA号和哪些文件?

我首先想创建一个错误 LBA 的列表,然后我想在单独的步骤中列出每个 LBA 上的每个文件。

答案1

在 ext2/3/4 上使用 debugfs。首先根据block找到inode:

debugfs -D -R "icheck $sda3block4096" /dev/sda3

然后使用这个 inode 号来查询文件:

debugfs -D -R "ncheck $inode" /dev/sda3

答案2

列出独立于文件系统的所有磁盘上的块有何作用? (低级)。什么适用于 FAT 和 NTFS?

LBA 号和坏块检测完全独立于文件系统。查找文件完全依赖于文件系统。不要指望一个工具适用于所有文件系统。

您可以用于badblocks扫描坏块,您可以用于smartctl获取重新分配的块的LBA或硬盘固件检测到的坏块,fdisk如果您想在分区相对数之间进行计算(如果您做了例如badblocks /dev/sda1和LBA。

正如另一个答案中提到的,您可以找到 ext2/ext3/ext3 的受影响文件debugfs

您可以使用fibmap 读写控制查找所有文件系统中给定文件的第 n 个块的 LBA,但如果您想查找给定 LBA 的文件,这可能不切实际。还有filefrag,它可能使用此 ioctl。

我确信有适用于 FAT(甚至可能适用于 NTFS)的取证工具,可以找到给定块号的文件,但我无法立即命名。

编辑

谷歌搜索发现肥猫用于 FAT 文件系统的取证分析;看来-L您可以获得特定集群的文件(您可以从 LBA 计算)。我对这个程序没有经验。更多地谷歌搜索可能会发现更多这样的程序。

答案3

NTFS、ext3、ext4

如果您已使用 复制了故障驱动器上的数据ddrescue,则使用ddrutility它就是为了这个目的而创建的。

ddrescue我成功地让它在 20 秒内列出了给定映射文件的受影响的 NTFS 文件。

它将日志文件写入当前目录。

链接页面提到了对 NTFS、ext3 和 ext4 的支持。

BTFS

btrfs 有它自己的内置scrub函数。

相关内容