列出壞塊和受影響的文件
我用 4 到 5 年的筆記型電腦硬碟製作了完整的磁碟映像。
該硬碟位於筆記型電腦中,經常被帶到一些地方,因此,多年來,它可能在一定程度上承受了物理壓力。
硬碟仍然完好無損,但我使用的程序 Guymager 顯示了在擷取該圖像時遇到了多少壞扇區;具體來說,19個壞道。
這 19 個壞扇區影響了哪些 LBA 編號和哪些文件?
我首先想創建一個壞 LBA 的列表,然後我想在單獨的步驟中列出每個 LBA 上的每個文件。
什麼可以在獨立於文件系統的所有磁碟上列出塊?(低級)。什麼適用於 FAT 和 NTFS?
LBA 編號和壞塊檢測完全獨立於文件系統。查找文件完全依賴於文件系統。不要期望單一工具適用於所有文件系統。
你可以
badblocks
用來掃描壞塊,你可以smartctl
用來獲取重新分配的塊或硬碟韌體檢測到的壞塊的LBA,fdisk
如果你想在分區相對數之間計算(如果你做了例如badblocks /dev/sda1
和LBA。如另一個答案中所述,您可以找到 ext2/ext3/ext3 的受影響文件
debugfs
。您可以使用fibmap ioctl為所有文件系統查找給定文件的第 n 個塊的 LBA,但如果您想查找給定 LBA 的文件,這可能不切實際。還有
filefrag
,它可能使用了這個 ioctl。我確信有 FAT(甚至可能用於 NTFS)的取證工具可以找到給定塊號的文件,但我不能隨便命名。
編輯
Google搜尋發現fatcat可用於 FAT 文件系統的取證分析;似乎
-L
您可以獲得特定集群的文件(您可以從 LBA 計算)。我對這個程序沒有經驗。Google搜尋更多可能會出現更多這樣的程序。
在 ext2/3/4 上使用 debugfs。首先根據block找到inode:
debugfs -D -R "icheck $sda3block4096" /dev/sda3
然後使用此 inode 號查詢文件:
debugfs -D -R "ncheck $inode" /dev/sda3