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


51

テキストファイルに4096文字を入れて保存します。すべての文字は1バイトなので、テキストファイルのサイズは4Kバイトである必要があります。以下を参照してください。

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

フラッシュメモリにファイルのコピーを作成しました。そして、再び空き領域を見てください。1,717,514,240バイトの空き容量があります

ここに画像の説明を入力してください

違いは何ですか:

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


私の質問 :

Q1:

上の最後の写真でわかるように、ファイルがフラッシュ上で占める唯一のスペースは、コンテンツ[文字]のスペースです。メタデータファイルはどこにありますか?

つまり、ファイルを別のコンピューターに移動すると、ファイルの名前、ファイルの所有者、作成および変更された日付、および...

それはどんなサイズも占有しませんか?!!

Q2:

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

ここに画像の説明を入力してください

時間と配慮を評価してください。


10
メタデータはファイルシステム自体に含まれます。これは、Windowsによって報告されるファイルサイズの一部ではありません。さらに、FAT32とNTFSメタデータは異なります。
ラムハウンド14

@Ramhoundテキストファイルをフラッシュメモリに移動すると、そのメタデータファイルもフラッシュメモリに移動します。どうやって見ることができますか?
TheGoodUser


1
OS内部を理解することは別として(それ自体が価値があります)、ディスクの修復/回復プログラムを作成しているのでない限り、このような情報を調べたり変更したりする理由はおそらくないでしょう。通常の使用では、ファイルシステム自体とそれを使用するすべての整合性を簡単に損なう可能性があるため、このレベルで情報を変更することは避けたいでしょう。
ジョー14

3
簡単な答え:スペースを占有しますが、ファイルサイズの一部としてはカウントされません。
user253751 14

回答:


50

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

詳細については、Technetの記事をご覧ください。表3.5には、定義されているすべてのMFTレコードが含まれています。

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

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

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

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

FAT32は、ファイルまたはフォルダーの親フォルダーのエントリに各ファイルおよびフォルダーの可視性または変更時間などの単純なメタデータを保存し、FSのルートフォルダーからツリーを作成します。NTFSに関して指摘したように、これはファイルではなく、フォルダーデータ構造に保存さます。エントリは元々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 読むことができますが、基本的な考え方は保持されます。


2
SysinternalスイートのNTFSinfoを使用して、メタデータを調べ、拡張を見つけることができます。ここからダウンロードできます:technet.microsoft.com/en-us/sysinternals/defaultいくつかのメタデータエディターがありますが、使用していないのでお勧めできません。
bjanssen

9
少なくともNTFSの@ TheGoodUser-Spメタデータは、従来の意味では「ファイル」に保存されていません。これは、あなたが探している印象です。\ windowsフォルダーに隠れているもの何もありません。ファイルのメタデータは、ファイルシステム自体の不可欠な部分です。
ロブモアー14

2
この場合、フラッシュドライブはFAT-32としてフォーマットされます。metadaは、ファイルアロケーションテーブル(FAT)に格納されているので、en.wikipedia.org/wiki/File_Allocation_Table
jnovacho

2
NTFSとFATの割り当てテーブルは事前に割り当てられていることに注意することが重要です。形式によって異なりますが、通常、いくつかのセクターは、断片化を減らすためにメタデータを格納するために使用される空の事前割り当てブロックで占められています。
カスライ14

2
メタデータが固定サイズだと思う理由は何ですか?アクセス制御リストは確かに複雑さが非常に大きく異なります。私はそれは常に(アクセス時刻と修正時刻などの他のすべてのメタデータと一緒に)1024バイトに収まるかを確認することができない
ベンフォークト

26

それはどんなサイズも占有しませんか?!!

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

ファイルシステムによっては、多くのファイル名が追加された後、最終的にブロックが何らかの形で塗りつぶされて拡張されます。

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

簡単ではない

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


3
@TheGood Googleを奪われたら、おそらくLinuxを起動しdd、rawフラッシュファイルシステムを別のディスク上のファイルにコピーしてから、hex-viewerを使用して特定のファイルシステムの適切な参照作業と組み合わせて調べることから始めます(プロプライエタリで非公開でない場合)。でメタデータを変更しtouch、繰り返し、ddバイナリdiffを使用します。
RedGrittyBrick 14

1
Googleを奪われていないのは良いことです。
クトゥルフ14

5
@Cthulhu:古いものにはネクロノミコンは必要ありません。fhtagn。
RedGrittyBrick 14

2
ハードドライブで16進ビューアを直接使用するためにOSを変更する必要はありません。まともな16進ビューアを使用してください。(それでもhiewできるように思えますが、私はずっと前に窓にいたのでわかりません)。
ルスラン14

1
HxDは、Windowsで間違いなくそれを行います。補足メニュー、ディスクを開く。
Blorgbeard 14

7

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

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

さらに、マスターファイルテーブルに割り当てられたスペースに加えて、一部のファイルシステムはファイルの変更に関するジャーナルを保持します(余分なスペースが必要です)。

したがって、技術的にはメタデータはディスクスペースを消費しますが、システムのAPIを呼び出してメタデータスペースではなくファイルスペースをファイルシステムにクエリするほとんどのファイル管理ユーティリティでは考慮されません。

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


3

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

ジャーナリングとユーザーを含むより高度なファイルシステムを使用すると、メタデータ、ジャーナルエントリ、および場合によっては以前のファイルバージョンなどを回復するためのフォレンジックチェーンを取得します。

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

FAT FSの良いは、オープンソースの実装です。利用可能な操作のリストには、「ユーザーの取得/設定」と「ユーザーによるアクセスの確認」が含まれていません。IDなし=そのIDのストレージなし。


2

上の最後の写真でわかるように、ファイルがフラッシュ上で占める唯一のスペースは、コンテンツ[文字]のスペースです。メタデータファイルはどこにありますか?

「メタデータファイル」は、ファイルを含むディレクトリです。それは基本的にディレクトリです-ディレクトリの内容を記述するメタデータのコレクション。

つまり、ファイルを別のコンピューターに移動すると、ファイルの名前、ファイルの所有者、作成および変更された日付、および...

それはどんなサイズも占有しませんか?!!

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

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

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


2

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

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

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

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

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

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

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


異なるドライブで異なるサイズ

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

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

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


空のテキストファイルをフラッシュメモリにコピーすると、そのメタデータもフラッシュメモリに移動します。さて、たとえばLinuxでメタデータファイルを表示する方法はありますか?たとえば、バイナリで。
TheGoodUser

メタデータをコピーするかどうかは、その方法によって異なります。たとえばrobocopy、タイムスタンプ、属性、所有者情報、アクセス制御リスト(ACL)などをコピーするかどうかを選択できます。フラッシュメモリ上のファイルシステムがサポートするかどうかにも依存します(たとえば、FAT32は所有者情報とACLを保持しないため、とにかく破棄されます)。メタデータはファイル形式ではないため、生データを表示できません。ddLinuxで必要な低レベルのものを表示したい場合でも、それらを解釈する方法は別の話です。
ケネスL 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.