Разметка диска для Linux сервера представляет собой выделение разделов или партиций. Партиция — выделенная часть диска, на которой создается своя файловая система. Партиция или раздел монтируется отдельно в определенную точку файловой системы сервера, в определенный каталог.
На разных партициях могут существовать разные файловые системы. Основное преимущество — разделение по назначению.
На любом Linux сервере есть один корневой раздел. Это партиция, которая может занимать отдельный диск или его часть, которая смонтирована в корневой каталог.
Могут быть дополнительные разделы. Часто используется LVM — технология позволяющая создавать логические разделы поверх физических дисков. Это даёт гибкость при изменении объема партиций.
Назначение дополнительных разделов
На веб-сервере в отдельный раздел часто выносят логи. Если логи разрастутся — они займут весь выделенный им раздел, но в корне место не закончится. Сервер продолжит работать.
Также отдельный раздел обычно создают для бэкапов.
Отдельный раздел можно создавать под SWAP, он не монтируется в файловую систему.
Рассмотрим как создаются разделы с помощью утилиты parted, у неё есть аналоги, например fdisk.
Посмотреть список партиций
parted -l
Таблица разделов имеет тип GPT. На диске два раздела, один из них содержит BIOS boot и имеет объем 1 Мб.
Второй раздел корневой, он является загрузочным и содержит ядро с загрузчиком.
Что и куда смонтировано можно посмотреть выполнив mount просто или df
df -h
Раздел /dev/vda2 на взятом для демонстрации сервере смонтирован в корень. Дополнительный раздел выделенный на том же диске мог бы выглядеть так:
/dev/vda3 10G 0 10G /backup
При использовании другого диска у него отличалась бы буква в имени, диск бы назывался /dev/vdb или /dev/vdc.
Разница между MBR и GPT
Современные дистрибутивы используют таблицу разделов GUID (globally unique identifiers или GPT) , вместо BIOS в системе UEFI
GPT
- позволяет работать с разделами объемом больше 2TB
- первые 512 байт содержат MBR (для обратной совместимости)
MBR
- может занимать весь объем или 2 Тб
- 128 байт каждой партиции содержат hexdump
С MBR процесс разметки диска имеет особенности
Есть 3 типа таблицы:
primary (содержит файловые системы, до 4 штук)
extended (содержит логические разделы, до 1 штук)
logical (содержит файловые системы, до 15 штук)
Разберем создание таблицы разделов для диска /dev/vdb. Он пуст, не имеет таблицы разделов и не смонтирован в файловой системе.
Создадим таблицу разделов gpt и две партиции.
Разметка диска для Linux — создание таблицы разделов
Для нового пустого диска!
Выполнение тех же команд для системного диска приведет к потере данных. Команды выполняются утилитой parted сразу, без подтверждения.
Переходим в parted для раздела
parted /dev/vdb
Выводим список партиций
p
При необходимости смотрим подсказки по работе с утилитой
help
Задаём единицы измерения — Мегабайты
unit mib
Теперь создание таблицы разделов
mktable
Тип (msdos для MBR, gpt для GPT)
gpt
Подтверждение
yes
Снова выводим список партиций
p
Таблица разделов создана. Переходим к партициям, их будет две.
Первую создадим выполняя команды по одной, вторую сразу в одну команду.
Создание партиций на диске
Можно просмотреть неразмеченное и доступное пространство и в нём создавать разделы нужного размера
print free
Задаём единицы измерения
unit mib
Создаём раздел
mkpart
Указываем его имя
test1
Указываем тип файловой системы
ext4
Задаём начальный сектор, расстояние от начала диска до начала партиции (утилита выводит подсказки на всех этапах)
1mib
Конечный сектор
1025mib
Теперь создаём второй раздел, он начнется с 1025 Мб. Создадим его указывая всё в одну строку
mkpart test2 ext4 1025mib 2000mib
Создаём файловую систему и монтируем разделы
Просмотрим список получившихся партиций — их должно быть две: /dev/vdb1 и /dev/vdb2
parted -l
Далее создаем файловую систему на разделе /dev/vdb2
mkfs.ext4 /dev/vdb2
Создаем точку монтирования и монтируем /dev/vdb2
mkdir /mount/2
mount -t ext4 /dev/vdb2 /mount/2
В /mount/2 должен появиться каталог lost+found
ls -la /mount/2
lost+found
Разметка диска для Linux сервера на этом завершена. Аналогично можно создавать другие партиции и монтировать их в каталоги, которые предварительно нужно создавать.
Для всех добавляемых разделов кроме раздела под SWAP нужно задавать правила в /etc/fstab чтобы разделы монтировались после перезагрузки.
Создание extended партиции для диска MBR
Для раздела на диске с таблицей MBR можно использовать тип extended.
Это нужно когда планируется больше 4х разделов. Разделов с типом Primary может быть до четырех. Если планируется больше, то один из них делается extended и на нём выделяются логические разделы.
Номера логических партиций начинаются с 5.
Пример создания раздела (до этапа с mkpart всё также как рассмотрено выше):
mkpart extended 1024mib 1927mib
Создание логического тома на расширенном (extended)
mkpart logical 1024mib 1025mib
Отмонтировать разделы возникает необходимость при восстановлении поврежденной файловой системы.