parted — разметка дисков GPT и MBR в Linux | Глоссарий | Глоссарий FREEHOSTING

parted

parted Partition Tool
parted — Утилита GNU для разметки дисков. В отличие от fdisk, поддерживает GPT и большие диски (более 2 ТБ), работает с MBR, BSD, Mac, Loop. Доступна в виде CLI parted, скриптуемого режима и графической оболочки GParted.

Определение простыми словами

parted — инструмент GNU для создания, удаления и изменения разделов на блочных устройствах. Появился в 1999 году как ответ на ограничения старого fdisk: тот работает только с MBR (максимум 4 первичных раздела, до 2 ТБ на диск) и не понимает GPT. parted умеет MBR, GPT, BSD disklabel, Mac partition map, loop-устройства, способен расширять и переносить разделы.

parted — низкоуровневый инструмент, требующий аккуратности: ошибочная команда mklabel мгновенно стирает всю разметку диска. Безопасных подтверждений «да-нет» нет, поэтому в продакшене стандартная практика — снять снимок ВМ или сделать дамп таблицы разделов через sgdisk --backup перед работой. Графический фронтенд GParted прост и понятен, но недоступен на серверах без X11.

Сравнение (таблица)

Параметр parted fdisk sgdisk cfdisk
MBR Да Да Нет Да
GPT Да Да (с util-linux 2.23+) Только GPT Да
Скриптовый режим Да, отличный Через here-doc, неудобно Превосходный, для скриптов Только интерактив
Изменение размера раздела resizepart (без ФС) Только пересоздание Только пересоздание Только пересоздание
Интерактивность Командная строка с подсказками Однобуквенные команды Только аргументы Псевдографика
Графическая версия GParted Нет Нет Нет

Кейсы использования

  • Разметка нового диска объёмом более 2 ТБ — здесь fdisk бессилен из-за ограничений MBR.
  • Подготовка USB-флешки или внешнего SSD под несколько систем (живой Linux + общий exFAT-раздел).
  • Скриптуемая разметка диска при автоматизированном развёртывании серверов через cloud-init или Ansible.
  • Расширение раздела на VPS после увеличения объёма виртуального диска у провайдера: parted resizepart + resize2fs/xfs_growfs.
  • Создание GPT-разметки с дополнительным разделом BIOS Boot Partition для загрузчика GRUB на дисках с GPT.
  • Негативный сценарий: запуск parted в интерактивном режиме на боевом сервере без бэкапа таблицы разделов. Команды print free, mklabel, mkpart применяются мгновенно, без подтверждения вроде «вы уверены». Малейшая опечатка в имени устройства (sda вместо sdb) уничтожает таблицу разделов системного диска и делает сервер незагружаемым.

Технические детали

# Текущая разметка диска
sudo parted /dev/sdb print

# Создание GPT и нового раздела на весь диск (скриптовый режим)
sudo parted -s /dev/sdb mklabel gpt
sudo parted -s -a optimal /dev/sdb mkpart primary ext4 0% 100%

# Разметка GPT с тремя разделами
sudo parted -s /dev/sdc mklabel gpt 
  mkpart primary fat32 1MiB 512MiB 
  mkpart primary ext4 512MiB 50GiB 
  mkpart primary ext4 50GiB 100% 
  set 1 esp on

# Расширение раздела после увеличения виртуального диска
sudo parted /dev/sda resizepart 1 100%
sudo resize2fs /dev/sda1   # для ext4
sudo xfs_growfs /          # для XFS

# Бэкап и восстановление таблицы GPT
sudo sgdisk --backup=/root/sdb-gpt.bin /dev/sdb
sudo sgdisk --load-backup=/root/sdb-gpt.bin /dev/sdb

# Проверка выравнивания раздела
sudo parted /dev/sdb align-check optimal 1

Параметр -a optimal при создании раздела гарантирует выравнивание по 1 МиБ — критично для производительности SSD и виртуальных дисков. Использование процентов вместо точных секторов (0% и 100%) автоматически учитывает выравнивание.

Частые вопросы

Чем parted отличается от fdisk?

fdisk традиционно работает с MBR, parted с самого начала умеет GPT и большие диски. С 2013 года fdisk тоже понимает GPT, но parted удобнее в скриптах и единственный поддерживает онлайн-resizepart.

Изменения вступают в силу сразу?

Да, parted применяет команды немедленно. Нет «commit» и «save», как в fdisk. Поэтому перед работой с боевым диском всегда снимайте бэкап таблицы разделов через sgdisk --backup.

Безопасно ли использовать parted на смонтированном диске?

Создание новых разделов на свободном пространстве — безопасно. Расширение или перемещение существующего раздела требует размонтированной ФС или, для root-раздела, загрузки с LiveCD/rescue-системы хостинга.