2

FATファイルシステムがどのように機能するかを理解しようとしています。添付されているFAT16パーティションの最初のセクターから、私は理解できました。

  1. セクターあたりのバイト数=512。
  2. クラスターあたりのセクター=4。
  3. FAT16ファイルシステム。
  4. 予約セクター=4。
  5. FATテーブル数=2。
  6. ルートディレクトリのエントリ数=512。
  7. 総セクター=204800。
  8. ルートディレクトリセクター=32。
  9. FATテーブルのサイズ=200。
  10. 最初のデータセクター=436(4 + 2 * 200 + 32)。
  11. クラスター数=51091。

FATパーティションの最初のセクター

ルートディレクトリは404番目のセクター(0x32800番目のバイト)にあります

ルートディレクトリ

アドレス0x32800のルートディレクトリが接続されています。ルートディレクトリには、a、bという名前の2つのフォルダと、file.txtという名前の1つのファイルがあります。上記の画像では、ファイルとフォルダを区別する方法が示されています。

以下にリストされている疑問:1。フォルダエントリは0x2Eで始まる必要がありますが、そのような値はありません。では、特定のエントリがファイルなのかフォルダなのかを確認するにはどうすればよいでしょうか。2.ご覧のとおり、ルートディレクトリの各エントリは(32バイトではなく)64バイトを占めています。ファイルとフォルダごとに2つの32バイトエントリがあるようです。たとえば、フォルダ'a'には0x32800と0x32820(合計64バイト)のエントリがあります。3.このコンテキストで値0x41は何を意味しますか?値0x41は、0x32800、0x32820、0x32840、0x32880に表示されます。0x32860および0x328A0の値は、0x41とは異なります。4.アドレス0x32800(0x32800 + 0x1a = 0x3281a)からのオフセット0x1Aの値は0、アドレス0x32820(0x32820 + 0x1a = 0x3283a)からのオフセット0x1Aの値は3です。フォルダー'a'に対応する正しいクラスター番号はどれですか。

4

2 に答える 2

3

いいえ、フォルダエントリは「。」で始まりません。(0x2E)。の場合を除きます。および..サブディレクトリのエントリ(これらはルートにありません)。direntがディレクトリの場合、direntの属性バイトには0x10ビットが設定されています。

また、長いファイル名を持つディレクトリも調べています。元のFATファイルシステム仕様では、すべて大文字でOEMコードページにある11文字の名前しか許可されていませんでした。Windows95はこれを拡張しました。これがどのように機能するかをstackoverflowで説明するのはかなり複雑です。LFNまたは長いファイル名についてはMSDNのドキュメントを参照することをお勧めします。

http://technet.microsoft.com/en-us/library/cc938438.aspx

于 2012-12-03T21:53:41.103 に答える
0

FAT **ファイルシステムは、ファイルがそのサイズよりも大きくない限り、すべてのファイルを1つの基本サイズとして保存し、ファイル全体を保持するようにサイズを再調整します。

ただし、ここでのポイントは、ディスク領域が十分にある場合はFATファイルシステムが主に適しているということです。それ以外の場合は、可能であればNTFSファイルシステムを使用することをお勧めします。また、表示している画像はフロッピードライブのレジストリコードのように見えます

于 2013-05-10T16:22:16.507 に答える