fdisk: разметка дисков в Linux, команды и примеры | Глоссарий FREEHOSTING

fdisk

fdisk Partition Tool
fdisk — Утилита разметки дисков для Linux и других UNIX-систем. Создаёт, удаляет и редактирует разделы MBR, GPT и BSD-меток через интерактивное меню или неинтерактивный режим. Базовый инструмент для подготовки нового диска под файловую систему.

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

fdisk — это базовая консольная утилита разметки дисков, которая идёт в каждом Linux из пакета util-linux. Она читает таблицу разделов выбранного блочного устройства и позволяет создать, удалить или изменить запись о разделе. Современные версии fdisk умеют работать как со старой схемой MBR, так и с GPT, поэтому отдельная утилита gdisk сейчас нужна редко.

В отличие от parted, fdisk запускается в интерактивном режиме с однобуквенными командами и записывает изменения только после явного w. Это удобно для аккуратной ручной разметки и снижает риск случайно сломать диск с данными — пока пользователь не подтвердит запись, реальная таблица не меняется.

Сравнение с альтернативами

Утилита Стиль Поддержка GPT Особенности
fdisk Интерактивная Да, с util-linux 2.23 Универсальная, простой синтаксис
parted Командная строка Да Скриптуемая, поддержка ресайза
gdisk Интерактивная Только GPT Углублённая работа с GUID
cfdisk Псевдографика Да Удобная для новичков

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

  • Подготовка нового диска под ext4 или XFS на свежем сервере.
  • Просмотр таблицы разделов и UUID для подключения через fstab.
  • Удаление лишних разделов перед клонированием системы или продажей б/у накопителя.
  • Восстановление таблицы разделов после неудачного эксперимента, пока изменения не записаны.
  • Скриптованная разметка одинаковых дисков на парке серверов через echo и pipe.

Негативный сценарий: администратор перепутал устройства и запустил fdisk на /dev/sda вместо /dev/sdb, удалил все разделы и нажал w. Таблица перезаписана, диск с продакшеном размечен заново, восстановление возможно только через testdisk, и то не всегда. Перед записью fdisk показывает текущее имя устройства — на этот шаг стоит тратить отдельные пять секунд.

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

# список всех дисков и их разделов
sudo fdisk -l

# интерактивная разметка нового диска
sudo fdisk /dev/sdb
# в меню: g - новая GPT, n - новый раздел, w - записать

# неинтерактивная разметка для скриптов
printf 'gnnnnnnwn' | sudo fdisk /dev/sdb

# просмотр размера и геометрии
sudo fdisk -l /dev/sda | head -n 8

# создание файловой системы и метки
sudo mkfs.ext4 -L data /dev/sdb1
sudo blkid /dev/sdb1

После сохранения таблицы fdisk сообщает ядру о необходимости перечитать разделы. Если устройство занято, помогает partprobe или перезагрузка. Для сложных сценариев — выравнивание под 4K, ресайз томов, метки GPT с GUID-типами — гибче parted, а для виртуальных томов и зеркал лучше использовать LVM.

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

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

fdisk работает интерактивно через однобуквенные команды и удобен для ручной разметки. parted умеет в один вызов создавать разделы заданного размера и менять их границы, поэтому подходит для скриптов и автоматизации, а в новых версиях обе утилиты работают и с MBR, и с GPT.

Поддерживает ли fdisk GPT?

Да, начиная с util-linux 2.23 (примерно 2013 год). Команда g создаёт новую GPT-таблицу, t позволяет задать тип раздела по GUID. Для очень специфичных случаев с GPT удобнее использовать gdisk, но обычно хватает fdisk.

Можно ли потерять данные при работе с fdisk?

Да, если записать изменения командой w на диск с реальными данными. Пока запись не выполнена, таблица не меняется. Поэтому перед w полезно сравнить вывод с fdisk -l на другом терминале и убедиться, что выбрано правильное устройство.