RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
В начале UFS находится суперблок, в котором хранится основная информация: строение файловой системы, размер, конфигурация.
Рассмотрим создание файловой системы UFS2:
# newfs -L NameVolume -O2 -U -n /dev/ad1 /dev/ad1: 2014.0MB (4124736 sectors) block size16384, fragment size2048 using 11 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. with soft updates super-block backups (for fsck -b #) at:160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976, 3387328, 3763680
Объём созданного раздела составляет 2014.0 Мбайт и содержит 4124736 секторов, размер блока равен 16384 байта, а размер фрагмента 2048 байт. В созданном разделе будут использоваться 11 групп цилиндров и объём информации, хранящийся в каждой группе, не более 183.77 Мбайт. Каждая группа цилиндров (Возможно кроме последней группы) содержит 11761 блок и 23552 индексных узла.(По умолчанию размер блока равен 8 фрагментам, а значит, в 11761 блоке содержится 94088 фрагментов.) Soft Updatesвключены. Копии суперблока будут находиться в секторах 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976, 3387328, 3763680.(В каждой группе по одной резервной копии суперблока)
# fsstat -f ufs /dev/ad1 | head -n 30FILE SYSTEM INFORMATION -------------------------------------------- File System Type: UFS 2 - Тип файловой системы Last Written: Thu Oct 1823:13:232007 - Время последнего монтирования Last Mount Point: /mnt/target - Куда последний раз была смонтирована Volume Name: NameVolume - Имя тома System UID: 0Flags: Soft Dependencies - Включён SoftUpdate METADATA INFORMATION-------------------------------------------- Inode Range: 0 – 259071 - Общее количество индексных узлов. (диапазон) Root Directory: 2 - Где находится корневой каталог Num of Avail Inodes: 259069 - Количество свободных индексных узлов Num of Directories: 1 - Количество директорий на данный момент CONTENT INFORMATION-------------------------------------------- Fragment Range: 0 - 1031183 - Общее количество фрагментов. (диапазон) Block Size: 16384 - Размер блока (Состоит из 8 фрагментов) Fragment Size: 2048 - Размер фрагмента (1/8 часть блока) Num of Avail Full Blocks: 124821 - Количество свободных блоков Num of Avail Fragments: 14 - Количество свободных фрагментов CYLINDER GROUP INFORMATION -------------------------------------------- Number of Cylinder Groups: 11 - Количество групп цилиндров Inodes per group: 23552 - Количество индексных узлов в каждой группе Fragments per group: 94088 - Количество фрагментов в каждой группе
Исходя из названия, суперблок, можно предположить, что он занимает 1 блок. В данном примере он равен 16384 байта и состоит из 8 фрагментов или 32 секторов. В UFS2 суперблок всегда находится в секторе 128.
Группы цилиндров.
Система UFS делится на секции, называемые группами цилиндров. Каждая группа цилиндров содержит более подробную информацию о своей группе.
Вот как выглядит нулевая группа:
# fsstat -f ufs /dev/ad1 | fgrep -A 22 "Group 0:"Group0: Last Written: Fri Oct 1923:28:152007 - Время последней записи Inode Range: 0 – 23551 - Диапазон/количество индексных узлов. Fragment Range: 0 – 94087 - Диапазон/количество фрагментов Boot Block: 0 – 3 - Загрузочный код. Super Block: 4 – 11 - Резервная копия суперблока. Super Block: 40 – 47 - Резервная копия суперблока. Group Desc: 48 – 55 - Дескриптор группы. (диапазон) Inode Table: 56 – 2999 - Таблица индексных узлов. (диапазон) Data Fragments: 3000 – 94087 - Диапазон фрагментов для записи данных Global Summary (from the superblock summary area): Данные от суперблока: Num of Dirs: 1 - Количество директорий на данный момент Num of Avail Blocks: 11384 - Количество свободных блоков Num of Avail Inodes: 23549 - Количество свободных индексных узлов Num of Avail Frags: 14 - Количество свободных фрагментов Local Summary (from the group descriptor): Данные от дескриптора группы: Num of Dirs: 1 - Количество директорий на данный момент Num of Avail Blocks: 11384 - Количество свободных блоков Num of Avail Inodes: 23549 - Количество свободных индексных узлов Num of Avail Frags: 14 - Количество свободных фрагментов Last Block Allocated: 0 - Последний выделенный блок Last Fragment Allocated: 0 - Последний выделенный фрагмент Last Inode Allocated: 0 - Последний выделенный индексный узел
Дескрипторы групп цилиндров:
Каждая группа цилиндров содержит специальную структуру - дескриптор группы, в котором хранится информация об использованных и свободных фрагментах, блоках, индексных узлах и многое другое. В дескрипторе группы находятся битовые карты индексных узлов, блоков и фрагментов группы. К примеру, состояние выделения блоков и фрагментов определяется по битовой карте блоков или фрагментов соответственно. В битовой карте индексных узлов хранятся метаданные, описывающие файлы и каталоги.
Примеры: 1. Список файлов и директорий? Корневой каталог всегда находится в индексном узле 2, посмотрим, что там: