Каковы детали структуры файловой системы EXT2?
Я пытаюсь обернуть голову вокруг файловой системы EXT2, но я не могу найти ни одного места, которое подробно показывает мне файловую систему EXT2.
Я наконец-то сам составил схему. Так что я дошел до этого. Теперь я пытаюсь выяснить следующее (я уже нашел некоторую информацию):
- Количество байтов на сектор: 0,5 кБ - 4 кБ
- Количество байтов в блоке: от 4 до 64 КБ
- Количество секторов на блок: 1 - 128
- Количество блоков в группе блоков:
- Количество групп блоков на раздел:
Для меня безумие, что я не могу найти ни одного места, где есть эта информация.
РЕДАКТИРОВАТЬ: Также только что нашел это, что означает, что мои байты на номер блока, вероятно, неправильно:
#define EXT2_MIN_BLOCK_SIZE 1024
#define EXT2_MAX_BLOCK_SIZE 4096
1 ответ
Я обычно нахожу свою информацию о ext2 в вики osdev, которая, в свою очередь, ссылается здесь.
Количество байтов на блок 1024<<n
где n
дается в суперблоке и представляет собой 32-битное целое число. Теоретически, блок может быть где-то между 1024 и... большим количеством байтов. Обычно используются блоки размером 1, 2, 4 или 8 кБ, хотя это зависит от нескольких факторов, таких как размер раздела и ожидаемый средний размер файла.
Каждая группа блоков содержит один битовый массив свободных блоков. Это дает ограничение 8*block size
на количество блоков в группе блоков. То же самое верно для инодов в группе блоков. Фактические значения находятся в суперблоке.
Это, в свою очередь, дает нижнюю границу для количества групп блоков, необходимых для заполнения раздела.