Прежде всего, и я понимаю, что это не был один из терминов из вашего вопроса, вы должны понимать метаданные . Вкратце и украденные из Википедии, метаданные - это данные о данных. То есть метаданные содержат информацию о части данных. Например, если я владею автомобилем, у меня есть набор информации об автомобиле, который не является частью самого автомобиля. Информация, такая как регистрационный номер, марка, модель, год выпуска, информация о страховке и так далее. Вся эта информация в совокупности называется метаданными. Как вы увидите, в файловых системах Linux и UNIX метаданные существуют на нескольких уровнях организации.
Суперблок , по существу , метаданные файловой системы и определяет тип файловой системы, размера, состояние, а также информации о других структурах метаданных (метаданные метаданных). Суперблок очень важен для файловой системы и поэтому хранится в нескольких избыточных копиях для каждой файловой системы. Суперблок - это структура метаданных очень высокого уровня для файловой системы. Например, если суперблок раздела / var становится поврежденным, то рассматриваемая файловая система (/ var) не может быть смонтирована операционной системой. Обычно в этом случае вам нужно запуститьfsck
который автоматически выберет альтернативную резервную копию суперблока и попытается восстановить файловую систему. Сами резервные копии хранятся в группах блоков, распределенных по файловой системе, причем первые хранятся со смещением в 1 блок от начала раздела. Это важно в случае необходимости ручного восстановления. Вы можете просмотреть информацию о резервном копировании суперблока с помощью команды, dumpe2fs /dev/foo | grep -i superblock
которая полезна в случае попытки восстановления вручную. Предположим, что команда dumpe2fs выводит строку Backup superblock at 163840, Group descriptors at 163841-163841
. Мы можем использовать эту информацию, а также дополнительные знания о структуре файловой системы, чтобы попытаться использовать эту резервную копию суперблока: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo
. Обратите внимание, что для этого примера я принял размер блока 1024 байта.
Инода существует, или, файловую систему и представляет собой метаданные о файле. Для ясности все объекты в системе Linux или UNIX являются файлами; актуальные файлы, каталоги, устройства и так далее. Обратите внимание, что среди метаданных, содержащихся в inode, нет имени файла, как думают люди, это будет важно позже. Inode содержит по существу информацию о владельце (пользователь, группа), режиме доступа (права на чтение, запись, выполнение) и типе файла.
Dentry это клей , который держит дескрипторы и файлы вместе, связывая номер индексных дескрипторов файлов с именами файлов. Dentries также играют роль в кэшировании каталогов, что в идеале позволяет хранить наиболее часто используемые файлы для быстрого доступа. Обход файловой системы является еще одним аспектом dentry, поскольку он поддерживает связь между каталогами и их файлами.
Файл , в дополнение к тому , что люди , как правило , думают о том, когда представлены слова, на самом деле просто блок логически связанных произвольных данных. Сравнительно очень скучно, учитывая всю работу, проделанную (выше), чтобы отслеживать их.
Я полностью понимаю, что несколько предложений не дают полного объяснения какой-либо из этих концепций, поэтому, пожалуйста, не стесняйтесь спрашивать дополнительные детали, когда и где это необходимо.