我用 4 到 5 年的笔记本电脑硬盘制作了完整的磁盘映像。
该硬盘位于笔记本电脑中,经常被带到一些地方,因此,多年来,它可能在一定程度上承受了物理压力。
硬盘仍然完好无损,但我使用的程序 Guymager 显示了在捕获该图像时遇到了多少坏扇区;具体来说,19个坏道。
这 19 个坏扇区影响了哪些 LBA 编号和哪些文件?
我首先想创建一个坏 LBA 的列表,然后我想在单独的步骤中列出每个 LBA 上的每个文件。
我用 4 到 5 年的笔记本电脑硬盘制作了完整的磁盘映像。
该硬盘位于笔记本电脑中,经常被带到一些地方,因此,多年来,它可能在一定程度上承受了物理压力。
硬盘仍然完好无损,但我使用的程序 Guymager 显示了在捕获该图像时遇到了多少坏扇区;具体来说,19个坏道。
这 19 个坏扇区影响了哪些 LBA 编号和哪些文件?
我首先想创建一个坏 LBA 的列表,然后我想在单独的步骤中列出每个 LBA 上的每个文件。
在 ext2/3/4 上使用 debugfs。首先根据block找到inode:
然后使用此 inode 号查询文件:
LBA 编号和坏块检测完全独立于文件系统。查找文件完全依赖于文件系统。不要期望单一工具适用于所有文件系统。
你可以
badblocks
用来扫描坏块,你可以smartctl
用来获取重新分配的块或硬盘固件检测到的坏块的LBA,fdisk
如果你想在分区相对数之间计算(如果你做了例如badblocks /dev/sda1
和LBA。如另一个答案中所述,您可以找到 ext2/ext3/ext3 的受影响文件
debugfs
。您可以使用fibmap ioctl为所有文件系统查找给定文件的第 n 个块的 LBA,但如果您想查找给定 LBA 的文件,这可能不切实际。还有
filefrag
,它可能使用了这个 ioctl。我确信有 FAT(甚至可能用于 NTFS)的取证工具可以找到给定块号的文件,但我不能随便命名。
编辑
谷歌搜索发现fatcat可用于 FAT 文件系统的取证分析;似乎
-L
您可以获得特定集群的文件(您可以从 LBA 计算)。我对这个程序没有经验。谷歌搜索更多可能会出现更多这样的程序。NTFS、ext3、ext4
如果您已使用 复制了失败的驱动器上的数据
ddrescue
,则使用ddrutility
仅为此目的创建的数据。我成功地让它
ddrescue
在 20 秒内列出了给定映射文件的受影响的 NTFS 文件。它将其日志文件写入当前目录。
链接页面提到了对 NTFS、ext3 和 ext4 的支持。
btrfs
btrfs 有它自己的内置
scrub
函数。