Обычные пользователи Линукс в основном используют небольшие жесткие и разделы в повседневной жизни, но на серверах порой приходится работать с очень большими разделами. Для примера, невозможно создать раздел размером 4Тб(на базе RAID) используя штатную утилиту fdisk. Она просто не даст возможности создать раздел более 2Тб.
Для решения данной проблемы нужно использовать GNU утилиту parted с GPT. Данная программа поддерживает Intel EFI/GPT таблицу разделов. GPT это стандарт расположения таблицы разделов на жестком диске. Он является частью Extensible Firmware Interface (EFI) стандарта, который разрабатывает Intel как замена устаревшему PC BIOS – реликвии которая тянется со времен первых IBM PC. EFI использует GPT в то время как BIOS использует Master Boot Record (MBR)
Диаграмма иллюстрирует расположение таблицы разделов GUID. Каждый логический блок (LBA) имеет размер 512 байт. LBA адреса с отрицательными значениями указывают на позицию начиная от конца раздела, -1 – это последний адресуемый блок раздела.
Поддержка GPT в ядре Linux
Поддержка EFI GUID разделов есть как на 32битной так и на 64битной платформе. Для использования GPT в своей системе необходимо включить поддержку GPT в ядре. Если не включить поддержку GPT в ядре, то после рестарта сервера ваша файловая система не сможет примонтироватся, а так же возможно повреждение самой таблицы GPT. Некоторые ОС уже идут с поддержкой GPT в ядре, если данная поддержка отсутствует, то при компиляции ядра необходимо установить значение CONFIG_EFI_PARTITION в Y и перекомпилировать ядро 🙂
File Systems Partition Types [*] Advanced partition selection [*] EFI GUID Partition support (NEW) ....
Создание раздела Linux на 6TB
Однажды понадобилось мне создать раздел на 5-6Тб (8 терабайтных дисков собраны как RAID-6).
Создание такого раздела с помощью parted почти не отличается от обычного создания с помощью fdisk
# parted /dev/sdX
Output:
GNU Parted 1.8.1 Using /dev/sdX Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
mklabel gpt
Создаем раздел на 5Тб:
mkpart primary 0 5001G
Выходим из программы и сохраняем изменения:
quit
Теперь создаем файловую систему на новосозданом разделе:
<var># mkfs.ext4 /dev/sdX1</var>
Примечание: Нужно заменить /dev/sdX на ваше реальное устройство . Ну и не забывайте вносить правки в /etc/fstab, если это необходимо :).