私は16進エディター(wxHexEditor)を使用してハードドライブのコンテンツを調べています。パーティションのラベルが保存されている場所を探しています。
したがって、私が調査しているドライブは、NTFSでフォーマットされたGPTドライブです。 Gpartedで、パーティションの名前とラベルを変更しました。名前は見つけやすく、GPT固有のものであり、パーティションテーブルに格納されます。しかし、ラベルがどこに保存されているのかわかりません。
私のNTFSブートセクターはセクター2048にあります。私は NTFSのウィキペディアページ を引用しています:
NTFSでは、すべてのファイル、ディレクトリ、およびメタファイルデータ—ファイル名、作成日、アクセス許可(アクセス制御リストを使用)、およびサイズ— マスターファイルテーブル(MFT)にメタデータとして保存されます。
そして、段落 Metafiles には、メタファイルのリストが含まれています。
$ Volume:ボリュームに関する情報、つまりボリュームオブジェクト識別子ボリュームラベル[…]
したがって、論理的には、パーティションのラベルはこのマスターファイルテーブルに保存されます。
段落のすぐ上パーティションブートセクターバイトオフセット0x30で、8バイトはを含むクラスターを示します。マスターファイルテーブル。私にとっては0x0000000000000004です。しかし、クラスター4には何もありません。ブロックは完全に空です。
NTFSファイルシステムはパーティションのラベルをどこに保存しますか?
情報は正しいです。
フォーマット後、数GBを超えるNTFSでは、MFTは通常クラスター0xC0000にあります。通常のクラスターサイズが8セクターの場合、これは0xC0000×8 = 0x600000 =セクター6291456になります。ウィキペディアで「標準」として指定されている値0x0000 ... 004は、まったく一般的ではありません。
パーティションブートセクタのダンプを投稿できるので、確認できます。
また、16進エディタで文字列「FILE0」を検索するだけで、この文字列はすべてのMFTエントリにあります。通常、最初の24個のMFTエントリのミラーコピーは最初の方にあります。次に、$ Volumeという名前のMFTエントリを見つける必要があります(UCS2で記述されているため、「$。Volume」はhex view)、そこにパーティションラベルを見つけることができるはずです。