Документация по ОС FreeBSD Четверг, 30.01.2025, 21:24
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

Как устроена UFS2
Суперблок.

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

Рассмотрим создание файловой системы UFS2:
# newfs -L NameVolume -O2 -U -n /dev/ad1 /dev/ad1: 2014.0MB (4124736 sectors) block size 16384, fragment size 2048 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.(В каждой группе по одной резервной копии суперблока)

Воспользуемся TSK (/usr/ports/sysutils/sleuthkit):

# fsstat -f ufs /dev/ad1 | head -n 30 FILE SYSTEM INFORMATION -------------------------------------------- File System Type: UFS 2 - Тип файловой системы Last Written: Thu Oct 18 23:13:23 2007 - Время последнего монтирования Last Mount Point: /mnt/target - Куда последний раз была смонтирована Volume Name: NameVolume - Имя тома System UID: 0 Flags: Soft Dependencies - Включён SoftUpdate METADATA INFORMATION-------------------------------------------- Inode Range: 0259071 - Общее количество индексных узлов. (диапазон) 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:" Group 0: Last Written: Fri Oct 19 23:28:15 2007 - Время последней записи Inode Range: 023551 - Диапазон/количество индексных узлов. Fragment Range: 094087 - Диапазон/количество фрагментов Boot Block: 03 - Загрузочный код. Super Block: 411 - Резервная копия суперблока. Super Block: 4047 - Резервная копия суперблока. Group Desc: 4855 - Дескриптор группы. (диапазон) Inode Table: 562999 - Таблица индексных узлов. (диапазон) Data Fragments: 300094087 - Диапазон фрагментов для записи данных 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, посмотрим, что там:

# fls -f ufs -a /dev/ad1 2 d/d 2: . d/d 2: .. d/d 188416: dir1 r/r 3: foremost r/r 4: file1.pdf r/r 5: file2.pdf r/r 6: file3.pdf r/r 7: file4.pdf r/r 8: file5.pdf r/r 9: file6.pdf d/d 164864: dir2

2. Список файлов и директорий в dir1?

# fls -f ufs /dev/ad1 188416 d/d 188417: 22 r/r 188418: file2.pdf

3. Сколько блоков/фрагментов занимает file6.pdf?

# istat -f ufs /dev/ad1 9 inode: 9Allocated Group: 0 uid / gid: 1001 / 1001 mode: -rw-r--r-- size: 2328268 num of links: 1Inode Times: Accessed: Fri Oct 19 22:22:23 2007 File Modified: Mon Sep 18 23:29:07 2006 Inode Modified: Sat Oct 20 16:11:57 2007 Direct Blocks: 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 …[skip]…Indirect Blocks: 3144 3145 3146 3147 3148 3149 3150 3151

Indirect Blocks - блоки косвенной адресации, т.е. содержат указатели на другие блоки. (В нашем случае задействован только один)

P.S. Данная информация несёт ознакомительный характер, поэтому не расписывал ёё подробно.
 
 
автор: dikens3
Категория: Установка и настройка | Добавил: oleg (15.12.2007)
Просмотров: 1040 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025