partitions — разметка диска для Linux сервера


Разметка диска для Linux сервера представляет собой выделение разделов или партиций. Партиция — выделенная часть диска, на которой создается своя файловая система. Партиция или раздел монтируется отдельно в определенную точку файловой системы сервера, в определенный каталог.



На разных партициях могут существовать разные файловые системы. Основное преимущество — разделение по назначению.



На любом Linux сервере есть один корневой раздел. Это партиция, которая может занимать отдельный диск или его часть, которая смонтирована в корневой каталог.

Могут быть дополнительные разделы. Часто используется LVM — технология позволяющая создавать логические разделы поверх физических дисков. Это даёт гибкость при изменении объема партиций.




Назначение дополнительных разделов

На веб-сервере в отдельный раздел часто выносят логи. Если логи разрастутся — они займут весь выделенный им раздел, но в корне место не закончится. Сервер  продолжит работать.

Также отдельный раздел обычно создают для бэкапов.

Отдельный раздел можно создавать под SWAP, он не монтируется в файловую систему.




Рассмотрим как создаются разделы с помощью утилиты parted, у неё есть аналоги, например fdisk.



Посмотреть список партиций

parted -l

разметка диска для Linux сервера


Таблица разделов имеет тип GPT. На диске два раздела, один из них содержит BIOS boot и имеет объем 1 Мб.

Второй раздел корневой, он является загрузочным и содержит ядро с загрузчиком.



Что и куда смонтировано можно посмотреть выполнив mount просто или df

df -h

монтирование при разметке диска в linux


Раздел /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




Отмонтировать разделы возникает необходимость при восстановлении поврежденной файловой системы.

Сказать спасибо