Fixup と Update Sequence Number
NTFS の Fixup 値と update sequence について確認します。Fixup については NTFS Documentation を参照します。
サンプルの画像ファイル coin.jpg を E: ドライブへコピーし、MFT ファイルでFile レコードを確認します。coin.jpg ファイルの File レコード番号は 39、シーケンス番号は 1 です。
MFTファイル内のレコード番号39(1024 x 39 = 399,936 )を参照します。
下記 FILE レコードでは、オフセット位置 4 にある Offset to the update sequence 値が 30 00 (⇒ 48)となっています。
30 00 Offset to the update sequence ⇒ 48
03 00 Size in words of Update Sequence Number & Array (S) ⇒ 3
オフセット位置 48 からの 2 バイト、03 00 が update sequence になります。
上記図では、セクタの終わりにある 00 00 が FixUp 値 03 00 と入れ替えられている状態です。
次に、coin.jpg ファイルの名前を変更しレコードをアップデートしてみます。
>ren e:\coin.jpg NotCoin.jpg
MFTファイル内のレコード番号39(1024 x 39 = 399,936 )を参照します。
レコードの更新により、update sequence が 04 00 となっている事を確認できます。
次に、この JPEG ファイルを削除します。
>del e:\NotCoin.jpg
MFTファイル内のレコード番号39 を参照します。
レコードの更新により、update sequence が 05 00 となっている事を確認できます。
また、ファイルが削除された事により、File レコードのシーケンス番号は 2 になった事を確認できます。
レコードを再利用してみます。
>echo "Ancient Andes" > e:\gold.txt
MFTファイル内のレコード番号39 を参照します。
レコードが再利用され、update sequence が 02 00 となっている事を確認できます。
参考URL:
http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf