Вопрос: Разве метаданные не занимают каких-либо размеров?


я кладу 4096 символов в текстовом файле и сохранить его. Поскольку каждый символ имеет 1 байт, размер текстового файла должен быть 4 Кбайт. Как вы видите ниже, это нормально:

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
2017-08-04 10:41


Источник


метаданные будут содержаться в самой файловой системе. который не является частью размера файла, о котором сообщает Windows. Кроме того, метаданные FAT32 и NTFS будут разными. - Ramhound
@Ramhound, когда я перемещаю текстовый файл во флэш-память, его файл метаданных также перемещается во флэш-память, верно? как я могу это видеть? - TheGoodUser
Возможный дубликат Как хранятся метаданные файлов в Windows?, Как хранятся имена файлов? - and31415
Помимо понимания внутренних компонентов ОС (что само по себе стоит), вероятно, нет причин когда-либо просматривать или изменять такую ​​информацию, если вы не пишете программу восстановления / восстановления диска. Для нормального использования вы никогда не захотите изменять информацию на этом уровне, поскольку это может легко подорвать целостность самой файловой системы и всего, что ее использует. - Joe
Короткий ответ: он занимает пробел, но он не считается частью размера файла. - user20574


Ответы:


Да, метаданные занимают пространство. В NTFS он занимает 1024 байта, чтобы быть конкретным. Однако информация не сохраняется в файле, а в таблице основных файлов MFT. В частности, в записи MFT # 4 $AttrDef,

Видеть эта статья Technet для получения дополнительной информации: таблица 3.5 содержит все записи MFT.

Когда том отформатирован с помощью NTFS, создается файл таблицы основных файлов (MFT) и другие части метаданных. Метаданные - это файлы, используемые NTFS для реализации структуры файловой системы. NTFS резервирует первые 16 записей MFT для файлов метаданных.

NTFS создает запись файла для каждого файла и запись каталога для каждого каталога, созданного на томе NTFS. MFT включает отдельную запись файла для самого MFT. Эти записи файлов и каталогов хранятся на MFT. Атрибуты файла записываются в выделенное пространство в MFT. Помимо атрибутов файлов, каждая запись файла содержит информацию о позиции записи файла в MFT.

Обратите внимание, что другие файловые системы могут и имеют дело с метаданными по-разному.

РЕДАКТИРОВАТЬ: В разделе комментариев было указано, что в этом ответе отсутствует точка, поскольку ОП запросил метаданные в файловых системах FAT32, а не в NTFS. Если бы я знал, как это сделать, я бы удалил атрибут «правильный ответ». Поэтому я предоставляю дополнительную информацию, которая отвечает на вопрос относительно 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 изменяет поведение, которое можно прочитать в Википедии Вот но основная идея имеет место.


50
2017-08-04 11:00



Вы можете использовать NTFSinfo Sysinternal для просмотра метаданных и поиска любых расширений. Вы можете скачать это здесь: technet.microsoft.com/en-us/sysinternals/default Есть несколько редакторов метаданных, но я не могу рекомендовать их, потому что я их не использовал. - bjanssen
@ Метаданные TheGoodUser-Sp, по крайней мере на NTFS, не хранится в «файле» в обычном смысле, и именно поэтому я получаю такое впечатление, которое вы ищете. Там не что-то спрятано в папке \ windows где-то, о которой мы все просто не говорим; метаданные файлов являются неотъемлемой частью самой файловой системы. - Rob Moir
В этом случае Flash Drive форматируется как FAT-32. Таким образом, метада хранится в таблице распределения файлов (FAT) en.wikipedia.org/wiki/File_Allocation_Table - jnovacho
Важно отметить, что таблицы распределения для NTFS и FAT предварительно распределены. Он отличается от формата в формате, но несколько секторов обычно занимают пустые предварительно распределенные блоки, которые должны использоваться для хранения метаданных, чтобы уменьшить фрагментацию. - Kaslai
Что заставляет вас думать, что метаданные являются фиксированным размером? Список контроля доступа, безусловно, может значительно варьироваться по сложности; Я не вижу, как он может всегда соответствовать 1024 байтам (наряду со всеми другими метаданными, такими как время доступа и модификации) - Ben Voigt


Разве он не занимает каких-либо размеров? !!

Да, но это небольшая запись в большом заранее выделенном блоке. Этот блок подсчитывается в «используемой» части вашего диска. Добавление записи внутри этого блока не требует расширения блока.

В зависимости от файловой системы, в конце концов, блок будет заполнен и расширен как-то после добавления большого количества файлов.

Могу ли я увидеть файл метаданных во флэш-памяти?

Нелегко

Как прокомментировал Руслан и Благборд. Вы можете установить шестнадцатеричный просмотрщик, такой как HxD который позволит вам просматривать (и редактировать - быть очень осторожным) данные сырой файловой системы. Но вам придется самому интерпретировать, какие байты принадлежат к структурам файловой системы. Для этого вам понадобится хорошая документация конкретной файловой системы, используемой на флеш-диске. FAT32, вероятно, будет проще понять, чем любой из многих вариантов NTFS. Видеть Понимание файловых систем FAT32 например.


26
2017-08-04 11:21



@TheGood Если лишен Google, я, вероятно, начну с загрузки Linux и использования dd для копирования исходной файловой системы флэш-памяти в файл на другом диске, а затем с помощью шестнадцатеричного просмотра, чтобы изучить его в сочетании с хорошей справочной работой по конкретной файловой системе (если она не является частной и нераскрытой). Я могу изменить метаданные с помощью touch, повторите dd и использовать двоичный diff. - RedGrittyBrick
Хорошо, что я не лишен Google. - Cthulhu
@Cthulhu: Старые не нуждаются в некрономиконе. fhtagn. - RedGrittyBrick
Нет необходимости менять ОС, чтобы напрямую использовать шестнадцатеричный просмотрщик на жестком диске. Просто используйте приличный шестнадцатеричный просмотрщик. (Кажется, даже hiew может это сделать, но я не уверен, так как давно был на окнах). - Ruslan
HxD безусловно, сделает это, в Windows. Меню «Дополнительно», «Открыть диск». - Blorgbeard


Метаданные не хранятся (и не сообщаются обычными инструментами управления файлами) в виде файлов, они хранятся на данных файловой системы на диске.

В зависимости от характера / версии файловой системы каждая запись занимает некоторое количество дискового пространства для представления информации метаданных.

Кроме того, наряду с пространством, выделенным в таблице основных файлов, некоторые файловые системы также будут хранить журнал о смене файлов (с большим объемом), а некоторые файловые системы могут быть расширены дополнительными полями, содержащими метаданные специального назначения.

Таким образом, технически метаданные занимают дисковое пространство, но не учитываются большинством утилит управления файлами, которые работают с API-интерфейсом вызывающей системы, который запрашивает файловую систему для файл пространства, а не для метаданные пространство.

И эта абстракция является лишь верхушкой айсберга, поскольку сама файловая система работает над абстракцией лежащего в основе физического дискового пространства, предоставляемого низкоуровневыми дисковыми подпрограммами, поэтому на самом деле только внутренняя логика диска будет знать, сколько фактических позиций памяти доступно для более высоких уровней и сколько их помечены как ненадежные, зарезервированные или используемые для контрольной суммы.


7
2017-08-04 12:21





Метаданные зависят от файловой системы. Самые основные файловые системы, обычно используемые на сменных носителях, основаны на файловой системе DOS (FAT). У DOS нет пользователей и разрешений. Или, вернее, некоторая информация содержится в 8-м бите данных имени файла. Единственные накладные расходы ресурсов, которые используются в базовой DOS FS, - это учет блоков файла или каталога, в котором он находится, и этот блок, вероятно, уже предназначен для обработки «.», Уже. IOW, добавление пустого файла не добавит еще один бит памяти, но это будет изменение некоторые существующие потребляемые и распределенные биты.

Когда вы используете более продвинутые файловые системы, с журналами и пользователями, вы получаете метаданные и записи журналов и, возможно, криминалистическую цепочку для восстановления предыдущих версий файлов и т. Д. Затем небольшой файл может взорваться в используемом хранилище.

Итак, проверьте тип FS. Если это FAT, у вас, вероятно, нет пользователя, записанного в метаданных на носителе. Следовательно ... не используется пространство. :)

Хороший пример FAT FS это реализация с открытым исходным кодом, и вы можете видеть, что список доступных операций не включает в себя «get / set user» и «check access by user». Нет идентичности = нет хранения этого удостоверения.


3
2017-08-04 11:15





Как вы видите на предыдущем рисунке выше, единственное место, которое занимает файл на флешке, - это пространство для его содержимого [символов]. Так где же файл метаданных?

«Файл метаданных» - это каталог, содержащий файл. В основном это каталог - это набор метаданных, описывающих содержимое каталога.

Я имею в виду, когда я перемещаю файл на другой компьютер, как он понимает имя файла, владельца файла, дату, созданную и измененную, и ...?

Разве он не занимает каких-либо размеров? !!

Да, в каталоге. В большинстве файловых файлов один и тот же файл может иметь два разных имени, если он связан с двумя разными каталогами.

Могу ли я увидеть файл метаданных во флэш-памяти?

Если ваша файловая система поддерживает его, вы можете увидеть его, посмотрев размер каталога.


2
2017-08-04 11:56





Где хранятся метаданные?

Когда мы говорим о метаданных, существует два типа метаданных.

Первый тип включает созданную дату, последнюю измененную дату, дату последнего доступа. В зависимости от файловой системы (т. Е. NTFS / FAT / Ext3 и т. Д.) Будут доступны разные «метаданные», например владелец Windows и разрешение на NTFS.

Первый тип применяется ко всем файлам, например. .txt файл в вашем примере.

Все файловые системы предварительно распределяют пробелы, чтобы содержать эти метаданные в таблице основных файлов (MFT для NTFS, некоторые другие имена для другой файловой системы), которые не доступны напрямую пользователям. Поскольку MFT не учитывается как часть емкости диска, в любом случае не требуется «дополнительного» пространства для хранения.

Второй тип «метаданных» определяется типом файла или приложением. Например, документы Office хранят «Автор», «Предмет» и другие метаданные; Изображения JPEG сохраняют набор данных EXIF, включая «изображение даты», «модель камеры», «скорость затвора»; в то время как MP3-звук содержит «альбом», «трек», «битрейт» ...

Второй тип DOES занимает дополнительное пространство, потому что эти «метаданные» составляют часть файла.


Различные размеры в разных дисках

Когда ваш текстовый файл включен C:\ он занимает 4K. Он становится размером 1К, когда вы кладете его на флешку H:\, Это связано с тем, что разные «размер блока» для разных разделов.

В файлах выделяются пробелы в блоке. Поэтому в файловой системе с размером блока 4K выделяется 1 байт 4K, тогда как 4 097 байт (4K + 1 байт) выделяется 8K.

По-видимому, ваш C: форматируется с размером блока 4K, в то время как H: форматируется с размером блока 1K, что приводит к разнице.


2
2017-08-06 04:25



Когда я копирую пустой текстовый файл во флэш-память, его метаданные также будут перемещены во флэш-память. теперь, есть ли способ, например, в Linux увидеть файл метаданных? например, в двоичном формате. - TheGoodUser
Независимо от того, копируются ли метаданные, зависит от того, как вы это делаете. Например robocopy дает вам возможность копировать временные метки, атрибуты, информацию о владельце, списки контроля доступа (ACL) и т. д. Это также зависит от того, поддерживает ли файловая система в вашей флеш-памяти (например, FAT32 не сохраняет информацию о владельце и ACL, поэтому они все равно отбрасываются ). Метаданные не представлены в виде файла, поэтому вы не можете видеть исходные данные; если вы хотите увидеть вещи низкого уровня, которые могут вам понадобиться dd в Linux, но как их интерпретировать - это еще одна история. - Kenneth L