web-dev-qa-db-ja.com

メタデータはサイズを占有しませんか?

4096文字をテキストファイルに入れて保存します。すべての文字が1バイトであるため、テキストファイルのサイズは4Kバイトである必要があります。以下に示すように、問題ありません。

enter image description here

フラッシュメモリをコンピュータに接続します。フラッシュメモリの空き容量は1,717,518,336バイト

enter image description here

フラッシュメモリにファイルのコピーを作成しました。また、空き容量を確認してください。 1,717,514,240バイト空き容量:

enter image description here

違いは何ですか?

1,717,518,336-1,717,514,240 = 4096バイト


私の質問:

Q1:

上記の最後の図に示すように、ファイルがフラッシュ上で占める唯一のスペースは、その内容[文字]のスペースです。メタデータファイルはどこにありますか?

つまり、ファイルを別のコンピューターに移動すると、ファイルの名前、ファイルの所有者、作成日と変更日などがどのように理解されるのですか?

大きさはありませんか?!

Q2:

フラッシュメモリ内のメタデータファイルを表示できますか?

enter image description here

あなたの時間と配慮に感謝します。

51
TheGoodUser

はい、メタデータはスペースを占有します。 NTFSでは、具体的には1024バイトを占有します。ただし、情報はファイルではなく、マスターファイルテーブルMFTに格納されます。特にMFTレコード#4 $AttrDef

詳細は このTechnetの記事 を参照してください:表3.5は定義されたすべてのMFTレコードを保持します。

ボリュームがNTFSでフォーマットされると、マスターファイルテーブル(MFT)ファイルとその他のメタデータが作成されます。メタデータは、NTFSがファイルシステム構造を実装するために使用するファイルです。 NTFSは、MFTの最初の16レコードをメタデータファイル用に予約します。

NTFSは、NTFSボリューム上に作成された各ファイルのファイルレコードと各ディレクトリのディレクトリレコードを作成します。 MFTには、MFT自体の個別のファイルレコードが含まれています。これらのファイルとディレクトリのレコードはMFTに保存されます。ファイルの属性は、MFTの割り当てられたスペースに書き込まれます。ファイル属性に加えて、各ファイルレコードには、MFT内のファイルレコードの位置に関する情報が含まれています。

他のファイルシステムでは、メタデータの扱い方が異なることに注意してください。

EDIT:OPがNTFSではなくFAT32ファイルシステムのメタデータを要求したため、この回答には要点がないことがコメントセクションで指摘されています。方法がわかっている場合は、「正解」属性を削除します。したがって、FAT32に関する質問に答える追加情報を提供します。

FAT32は、ファイルまたはフォルダーの親フォルダー内のエントリにある各ファイルおよびフォルダーの可視性や変更時間などの単純なメタデータを保存し、FSのルートフォルダーからツリーを作成します。 NTFSに関して指摘したように、これはファイルではなく保存されますwithinフォルダーのデータ構造。エントリは元々32バイトの大きさで、次の属性が含まれていました。

Name (8.3) xxxxxxxx.yyy. (88 bits)

Attribute byte (8 bits of information, described later in this section).

One reserved byte.

Create time (24 bits).

Create date (16 bits).

Last access date (16 bits).

Two reserved bytes.

Last modified time (16 bits).

Last modified date (16 bits).

Starting cluster number in the file allocation table (16 bits).

File size (32 bits).

リストは このMicrosoft Technetの記事 から取得され、FAT16に関連しています。 FAT32のクラスターサイズは32ビットにすることができ、ファイル名は8.3より長くなる可能性があるため、テーブルは完全に正確ではありません。長いファイル名と大きなディスクに対応するために、FAT32はWikipediaで読み取ることができるいくつかの動作を変更します here ですが、基本的な考え方は保持されます。

50
bjanssen

大きさはありませんか?!

はい。ただし、事前に割り当てられた大きなブロック内の小さなエントリです。そのブロックは、ディスクの「使用済み」部分でカウントされます。そのブロック内にエントリを追加するために、ブロックを展開する必要はありません。

ファイルシステムによっては、多くのファイル名が追加された後、最終的にブロックが満たされ、拡張されます。

フラッシュメモリ内のメタデータファイルを表示できますか?

簡単ではない

RuslanとBlorgbeardがコメントしたように。 HxD のような16進ビューアをインストールすると、生のファイルシステムデータを表示(および編集-非常に注意)できます。ただし、どのバイトがどのファイルシステム構造に属しているかについて、自分で解釈する必要があります。そのためには、フラッシュディスクで使用されている特定のファイルシステムに関する適切なドキュメントが必要です。 FAT32は、NTFSの多くのバリアントのどれよりも理解しやすいようです。たとえば nderstanding FAT32 Filesystems を参照してください。

26
RedGrittyBrick

メタデータはファイルとして保存されず(通常のファイル管理ツールによって報告もされません)、ディスク上のファイルシステムのデータに保存されます。

ファイルシステムの性質/バージョンに応じて、各エントリはメタデータ情報を表すためにある程度のディスク容量を必要とします。

さらに、マスターファイルテーブルに割り当てられたスペースに加えて、一部のファイルシステムはファイルの変更に関するジャーナルも保持し(余分なスペースを使用)、一部のファイルシステムは特別な目的のメタデータを含む追加のフィールドで拡張することもできます。

したがって、技術的にはメタデータはディスク領域を使用しますが、ファイルシステムにファイル領域を照会するシステムのAPIを呼び出して動作するほとんどのファイル管理ユーティリティでは考慮されませんメタデータ領域では使用されません。

そして、この抽象化は氷山の一角にすぎません。ファイルシステム自体は、低レベルのディスクルーチンによって提供される、基礎となる物理ディスクスペースの抽象化で機能するため、実際には、ディスクの内部ロジックだけが、より高いレベルで使用できる実際のメモリ位置の数を知っています。信頼性がない、予約済み、またはチェックサムに使用されているとマークされている数。

7
Dice9

メタデータはファイルシステムによって異なります。交換可能なメディアで通常使用される最も基本的なファイルシステムは、DOSファイルシステム(FAT)に基づいています。 DOSにはユーザーと権限がありません。または、より正確には、その情報の一部はファイル名の8番目のデータビットで伝達されます。基本的なDOSで使用される唯一のリソースオーバーヘッドFS=は、ファイルのブロック、またはファイルが存在するディレクトリを説明することであり、そのブロックはおそらく処理のためにすでにコミットされています。 "、すでに。IOW、空のファイルを追加してもストレージのビットは追加されませんが、既存の消費され割り当てられたビットが変更されます。

ジャーナリングとユーザーでより高度なファイルシステムを使用すると、メタデータ、ジャーナルエントリ、および場合によってはフォレンジックチェーンを取得して、以前のバージョンのファイルを復元できます。その後、使用済みのストレージで小さなファイルが爆発する可能性があります。

したがって、FS=タイプを確認してください。FATの場合、メディアのメタデータにユーザーが記録されていない可能性があります。したがって、スペースは使用されません。:)

良い FAT FSの例 はオープンソースの実装です-利用可能な操作のリストに「ユーザーの取得/設定」と「ユーザーによるアクセスの確認」が含まれていないことがわかります。アイデンティティなし=そのアイデンティティの保存なし。

3
JezC

上記の最後の図に示すように、ファイルがフラッシュ上で占める唯一のスペースは、その内容[文字]のスペースです。メタデータファイルはどこにありますか?

「メタデータファイル」は、ファイルを含むディレクトリです。これが基本的にディレクトリとは何か、つまりディレクトリの内容を説明するメタデータのコレクションです。

つまり、ファイルを別のコンピューターに移動すると、ファイルの名前、ファイルの所有者、作成日と変更日などがどのように理解されるのですか?

大きさはありませんか?!

はい、ディレクトリにあります。ほとんどのファイルシステムでは、2つの異なるディレクトリにリンクされている場合、同じファイルに2つの異なる名前を付けることができます。

フラッシュメモリ内のメタデータファイルを表示できますか?

ファイルシステムがサポートしている場合は、ディレクトリのサイズを確認することで確認できます。

2
David Schwartz

メタデータはどこに保存されますか?

メタデータについて話すとき、メタデータには2つのタイプがあります。

最初のタイプには、作成日、最終変更日、最終アクセス日が含まれます。ファイルシステム(つまり、NTFS/FAT/Ext3など)に応じて、Windowsの所有者やNTFSのアクセス許可など、使用可能な「メタデータ」が異なります。

最初のタイプはすべてのファイルに適用されます。例の.txtファイル。

すべてのファイルシステムは、ユーザーが直接アクセスできないマスターファイルテーブル(NTFSのMFT、他のファイルシステムのその他の名前)でこれらのメタデータを含むスペースを事前に割り当てます。 MFTはドライブ容量の一部としてカウントされないため、いずれにしても「追加の」ストレージスペースは必要ありません。

2番目のタイプの「メタデータ」は、ファイルタイプまたはアプリケーションによって定義されます。たとえば、Officeドキュメントには「作成者」、「件名」、その他のメタデータが保持されます。 JPEG画像は、「撮影日」、「カメラモデル」、「シャッタースピード」などのEXIFデータのセットを保持します。 MP3サウンドには「アルバム」、「トラック#」、「ビットレート」が含まれています...

2番目のタイプは、これらの「メタデータ」がファイルの一部を形成するため、追加のスペースを使用します。


ドライブごとに異なるサイズ

テキストファイルがオンの場合C:\ 4Kかかります。フラッシュドライブに入れると1KサイズになりますH:\。これは、パーティションごとに「ブロックサイズ」が異なるためです。

ファイルにはブロック内のスペースが割り当てられます。したがって、ブロックサイズが4Kのファイルシステムでは、1バイトは4Kに割り当てられ、4,097バイト(4K + 1バイト)は8Kに割り当てられます。

どうやらあなたのC:は4Kブロックサイズでフォーマットされ、H:は1Kブロックサイズでフォーマットされているため、違いが生じます。

2
Kenneth L