問題タブ [ntfs-mft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
278 参照

c++ - FSCTL_ENUM_USN_DATA を実行する前に、ファイル/ディレクトリの数を把握する

USNジャーナル/NTFS MFTファイルの列挙を行う前に

ファイル/ディレクトリの数を知りたいです( std::vector: を「予約」するため、v.reserve(...)およびその他の理由で)。

FSCTL_QUERY_USN_JOURNAL以前に使用することを考えていUSN_JOURNAL_DATA_V0ましたが、ボリュームに関する情報が含まれています。

残念ながら、、、FirstUsnこの情報は教えないNextUsnでください。MaxUsnボリュームに 10 万個のファイルがある場合でも、NextUsnたとえば 1,000 万個になる可能性があるため、適切な大きさのオーダーは得られません。

FSCTL_ENUM_USN_DATA を実行する前にファイル/ディレクトリの数を取得する方法は?

0 投票する
1 に答える
308 参照

filesystems - FAT と NTFS ファイル システムの比較の説明

ファイル システム、特に FAT* と NTFS について勉強し始めました。

FAT ファイル システムでは、クラスターはデータ クラスターまたはディレクトリ クラスターである可能性があり、ルート ディレクトリの開始クラスター番号は常にわかっています。これは、FAT32 より前はフォーマット時に修正されていたためであり、FAT32 と同様に、ブートの拡張 BIOS ブロックで検出されます。セクタ。

一方、NTFS は、システム内の各ファイルとディレクトリの MFT レコードを使用して、マスター ファイル テーブルの下にすべてを整理します。マスター ファイル テーブルには、予約済みとしてマークされた最初の 27 番目の位置があり、最初のインデックスは、MFT 自体を記述する $MFT レコードで構成されます。

NTFS が常駐/非常駐データ属性を介してデータを追跡する方法を理解していますが、FAT はディレクトリ エントリを使用してクラスタ チェーンの最初のクラスタを検索し、さらに処理するためにファイル アロケーション テーブルを参照します。

今、私の心は、これらのことを「処理する」のが難しいと感じています。

NTFS のルート ディレクトリはどこにありますか?

ディレクトリは MFT レコードでどのように表されますか? 常駐および非常駐の両方の方法で、現在の MFT レコードを介してサブディレクトリ MFT レコードを見つけるにはどうすればよいですか?

MFT レコードの後半で指定されたクラスター実行が 1024 バイトの制限を超えた場合はどうなりますか? (これはひどく断片化されたファイルを意味することを理解しています)

0 投票する
0 に答える
87 参照

windows - Windows サーバー 2008、2012 などでボリュームのクローンを作成した後、OS パーティションが RAW になる

ディスクのクローン作成で問題に直面しています。(つまり) クローン作成が完了すると、OS パーティションは NTFS ファイル システムではなく RAW になります。

FSCTL_GET_VOLUME_BITMAP Device IO Control API を使用して、ボリューム ビットマップ バッファーを取得しました。このボリュームビットマップを使用して、ソースディスクから使用済みクラスターのみを複製し、宛先ディスクの同じオフセットに書き込みました。空きクラスタ位置はそのままに。

  1. 使用されているクラスターのクローン作成だけで問題が発生しますか?

  2. ボリューム ビットマップの常駐コンテンツと非常駐コンテンツの両方で正しいですか? 非居住者の属性を考慮していないためです。次のコードを使用して、使用済みのクラスターのみを複製しました。

  3. この問題に直面しているのは、Windows サーバー コンピューターのみです。

私の問題を解決する方法を提案してください。以下のコードスニペットを見つけてください。

使用済みクラスターの検索

ボリューム ビットマップの取得:

0 投票する
1 に答える
296 参照

filesystems - NTFS 変更ジャーナル - ファイル変更追跡

特定のボリュームのファイルを監視するための変更追跡ソフトウェアを開発しています。FileSystemWatcher (.NET) と AlternateDataStreams を試しましたが、すべてにいくつかの制限があります (つまり、変更追跡ソフトウェアは 24 時間年中無休である必要があり、代替データ ストリームは読み取り専用ファイルでは機能しないなど)。

いくつかの調査の後、NTFS 変更ジャーナルを直接読むことができると考えました。これは、ファイルが同じボリューム上で移動/名前変更された場合などにうまく機能します。ファイルを識別するために、ファイル参照番号を使用しています。

しかし、ファイルが別のボリュームに移動された場合、ファイル参照番号は当然変更されます。

私の質問: ファイルが別のボリュームに移動されても変更されない一意の ID (GUID など) はありますか?

0 投票する
0 に答える
1253 参照

python - NTFS はすべての inode/ファイルのハッシュまたは CRC32 を保存しますか?アクセス方法は?

ファイルを読み取り、これらのバイトを MD5SUM、SHA256、CRC32 などのハッシュ アルゴリズムに渡し、ハッシュを取得する方法を知っています。

ここで私は少し違うことを尋ねています:

NTFS パーティションにファイルを書き込み/変更するたびに、ハッシュまたは CRC32 を再計算し、この情報を NTFS メタデータ / FAT / MFT (マスター ファイル テーブル) (正確な名前は覚えていません) に保存しますか?

注: 重要なことは、ファイル システムに保存されているハッシュ/CRC を読み取りたいだけであり (つまり、数バイトを読み取り、最大数ミリ秒である必要があります)、ハッシュを再計算しないことです (10 GB ファイル)。


もしそうなら、Pythonを使用して特定のファイルのこのCRCまたはハッシュにアクセスする方法は? 次のようなものがありますか: