3

dd_rescueを使用してハードディスクを回復してきました。これにより、ハードウェアエラーのためにコピーできなかったすべてのデバイスセクターのリストが表示されます。

そのリストを取得し、これらの不良セクタを含むすべてのファイルを取得して削除できるようにするツールを作成したいと思います。これを行うためにどのAPIを使用できるかわかりません。基本的に、ディスク上のすべてのファイルのリストと、ファイルごとに、ディスク上で占有するセクターの範囲のリストを取得したいと思います。

私の最初の推測は、ディスク上の各ディレクトリエントリを繰り返し処理し、ファイルがこれらの不良セクタの1つと重複していないかどうかを確認することです。たぶんもっと良い方法があります。

4

3 に答える 3

2

ファイルのデータ位置を物理ブロック(セクター)にマップする場合は、F_LOG2PHYSコマンドでfcntl(2)呼び出しを使用できます。すべてのファイルシステムがこのコマンドをサポートしているわけではありませんが、HFS+はサポートしています。lseekを使用してファイルオフセットを選択するだけで、F_LOG2PHYSからdiskoffsetを取り戻すことができます(l2p_devoffsetフィールドのstruct log2physに返されます)。詳細については、fcntl.hを参照してください。

于 2011-03-05T20:11:12.273 に答える
2

HFS +ファイルシステムを介したグラブ用に公開されたAPIはありませんが、ファイルシステムのソースはXNUカーネルの一部としてAppleから入手できます。また、fsを理解するのに役立つかもしれないhfsdebugツールをチェックしてください。

于 2009-09-09T14:55:10.797 に答える
2

これは古い質問ですが、トピックを検索する際のトップヒットの1つであるため、検索したすべての人に以下を示します。

Mac OS X 10.6以降、fsck_hfs(8)は物理セクターをファイルにマップできます(オプション-Bを参照)。使用上の注意:照合は、カタログのチェックが実際に実行された場合にのみ成功します。したがって、オプション-lまたは-fを使用して強制的にチェックする必要がある場合があります。

ところで、PPCバイナリとしてのhfsdebugはRosettaに依存しているため、Lion以降では実行されません。

于 2013-06-08T12:00:30.767 に答える