4〜5年前のラップトップHDDからフルディスクイメージを作成しました。
そのHDDは、頻繁に持ち運ばれるラップトップに搭載されていたため、長年にわたって、ある程度の物理的ストレスを経験している可能性があります。
HDDはそのまま動作しますが、私が使用したプログラムであるGuymagerは、その画像のキャプチャ中に不良セクタがいくつ発生したかを示しました。具体的には、19の不良セクタ。
どのLBA番号とどのファイルがこれらの19個の不良セクタの影響を受けますか?
最初に不良LBAのリストを作成し、次にそれらの各LBAのすべてのファイルを個別のステップでリストしたいと思います。
ファイルシステムから独立したすべてのディスク上のブロックを一覧表示する機能は何ですか? (低レベル)。そして、FATとNTFSで何が機能しますか?
LBA番号と不良ブロックの検出は、ファイルシステムとはまったく関係ありません。 ファイルの検索はファイルシステムに完全に依存しています。単一のツールがすべてのファイルシステムで機能することを期待しないでください。
badblocks
を使用して不良ブロックをスキャンし、smartctl
を使用して再割り当てされたブロックまたはハードディスクファームウェアによって検出された不良ブロックのLBAを取得し、fdisk
など。パーティション相対数の間で計算する場合(たとえば、badblocks /dev/sda1
およびLBA。
他の回答で述べたように、ext2/ext3/ext3の影響を受けるファイルはdebugfs
で見つけることができます。
fibmap ioctl を使用して、すべてのファイルシステムの特定のファイルのn番目のブロックのLBAを見つけることができますが、特定のLBAのファイルを見つけたい場合、これはおそらく実用的ではありません。おそらくこのioctlを使用するfilefrag
もあります。
特定のブロック番号のファイルを見つけるFAT用(場合によってはNTFS用)のフォレンジックツールがあると確信していますが、名前を付けることはできませんでした。
編集
グーグルは、FATファイルシステムのフォレンジック分析のために fatcat を見つけます。 -L
特定のクラスターのファイルを取得できます(LBAから計算できます)。私はこのプログラムの経験がありません。もっとグーグルすると、おそらくもっとそのようなプログラムが見つかるでしょう。
Ext2/3/4でdebugfsを使用します。まず、ブロックに基づいてiノードを見つけます。
debugfs -D -R "icheck $sda3block4096" /dev/sda3
次に、このiノード番号をファイルのクエリに使用します。
debugfs -D -R "ncheck $inode" /dev/sda3
Fail {ing、ed}ドライブからddrescue
を使用してデータをコピーした場合は、この目的のために作成された ddrutility
を使用します。
20秒以内にddrescue
マップファイルを指定して影響を受けるNTFSファイルを一覧表示することに成功しました。
ログファイルを現在のディレクトリに書き込みます。
リンク先のページでは、NTFS、ext3、およびext4のサポートについて説明しています。
btrfsには、独自の組み込みのscrub
関数があります。