Жесткий диск в Linux может быть разделен на разделы, которые функционируют как отдельные блочные устройства. Возможно, вы помните такие примеры, как /dev/sda1 и /dev/sda2. Здесь /dev/sda представляет весь диск, а /dev/sda1 — это первый раздел на этом диске. Разделы невероятно полезны для разделения данных. Если вам нужна определенная файловая система для части вашего хранилища, вы можете создать для нее новый раздел вместо форматирования всего диска.
Таблица разделов
Итак, какой компонент диска сообщает ОС о том, как диск разбит на разделы? Ответ — таблица разделов. Этот важнейший компонент содержит информацию о том, как организованы разделы жесткого диска. Таблица разделов указывает, где начинается и заканчивается каждый раздел, какие разделы являются загрузочными и какие сектора диска выделены каждому разделу. Существуют две основные схемы таблиц разделов: Master Boot Record (MBR) и GUID Partition Table (GPT).
Понимание разделов Linux
Диски состоят из разделов, которые помогают нам организовывать наши данные. На одном диске может быть несколько разделов, но они не могут перекрываться. Любое пространство на диске, не выделенное разделу, известно как свободное пространство. Типы доступных разделов Linux зависят от используемой схемы таблицы разделов. Внутри раздела вы можете создать файловую систему или выделить его для других целей, например, для пространства подкачки (swap).
Разделы MBR
Master Boot Record (MBR) — это традиционный стандарт таблицы разделов.
- Он поддерживает основные (primary), расширенные (extended) и логические (logical) разделы.
- MBR имеет ограничение в четыре основных раздела.
- Чтобы создать больше разделов, один основной раздел должен быть обозначен как расширенный раздел (разрешен только один на диск). Внутри этого расширенного раздела вы можете создавать несколько логических разделов, которые функционируют как любой другой раздел.
- Он поддерживает диски размером до 2 терабайт.
Разделы GPT
GUID Partition Table (GPT) — это современный стандарт для разделения дисков.
- Он имеет только один тип раздела, и вы можете создать их большое количество.
- Каждому разделу присваивается Глобально Уникальный Идентификатор (GUID).
- GPT обычно используется с системами загрузки на основе UEFI.
Структура файловой системы
Как мы узнали ранее, файловая система — это организованная коллекция файлов и каталогов. По своей сути она состоит из базы данных для управления файлами и самих файлов. Давайте рассмотрим ее структуру более подробно.
- Загрузочный блок (Boot block): Расположен в первых нескольких секторах файловой системы, этот блок не используется самой файловой системой. Вместо этого он содержит информацию, используемую для загрузки операционной системы. Требуется только один загрузочный блок на ОС. Хотя другие разделы могут иметь загрузочные блоки, они часто остаются неиспользованными.
- Суперблок (Superblock): Это один блок, следующий за загрузочным блоком, который содержит метаданные о файловой системе, такие как размер таблицы inode, размер логических блоков и общий размер файловой системы.
- Таблица inode (Inode table): Это база данных, управляющая файлами и каталогами. Каждый файл или каталог имеет уникальную запись в таблице inode, которая хранит различные атрибуты о нем. Мы рассмотрим inode в отдельном уроке.
- Блоки данных (Data blocks): Здесь хранится фактическое содержимое ваших файлов и каталогов.
Ниже приведен пример диска с таблицей разделов MBR (обозначенной как msdos). Вы можете увидеть основные, расширенные и логические разделы.
pete@icebox:~$ sudo parted -l
Model: Seagate (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 6860MB 6859MB primary ext4 boot
2 6861MB 21.5GB 14.6GB extended
5 6861MB 7380MB 519MB logical linux-swap(v1)
6 7381MB 21.5GB 14.1GB logical xfs
Этот второй пример показывает таблицу разделов GPT, которая использует уникальные идентификаторы для своих разделов.
Model: Thumb Drive (scsi)
Disk /dev/sdb: 4041MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 1000MB 1000MB first
2 1000MB 4040MB 3040MB second