チェックディスクの原因になるDirty Bitはどこにあるか

【このドライブで問題が見つかりました。今すぐドライブをスキャンして修復してください。】や【このデバイスまたはディスク上のいくつかのファイルに問題がある可能性があります】の原因であるFAT16/32に関しては、チェックディスクの必要があるとマークしているDirty Bit と呼ばれるものは、BOOTセクタの固定の位置にあるらしい。

ところが、NTFSの場合は、 NTFS マスターテーブルのボリューム テーブル内にあるらしくて、ディスクをダンプしても特定が難しい様だ。

しかも、このテーブル、内部でバックアップされているので2か所に保存されているようだ。

dtclear.cab

Dirty Bitの変更ツールを作ってみた。
NTFSの場合はデータが破壊される可能性があるので、 /fオプションを付けて実行。
書き換えたテーブルの位置はアプリが表示するので、もし書き換えてデータが壊れた場合は手動で復元してください。 ・ω・

C:\> DTClear.exe J: /f /c 

DTClear.exe v1.0 (c)2023 PFW/BlackWingCat
対象 Drive[J]
NTFSは非対応です
[NTFS]Dirty Flag[2d40]は181です
Dirty Flag[1]をOFFにします
[NTFS]Dirty Flag[1beaad40]は181です
Dirty Flag[2]をOFFにします

/s でフラグON
/c でフラグOFF

NTFSのダーティーテーブルのフォーマットなのだけど
0x0080 が有効と書かれているサイトがあったけど、手元のUSBだと 0x0080 が無効で 0x0181が有効だった。

こっちのサイトだと
0x0101(Win8)と0x0181(Win7)が有効、0x0001(Win8)と0x0000(Win7)が無効とか言ってて謎

おすすめ

1件の返信

  1. のん より:

    ntfs-3gのntfsprogs/ntfswipe.cなどのmainから読めば、ボリュームのダーティービットが立ってると普通は続行できないように早々にガードされてるので読みやすいかも。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です