fdisk (Русский)
fdisk из пакета util-linux - интерактивная консольная утилита, которая может создать таблицу разделов и разделы на жестком диске и управлять ими. В таблице разделов описано разбиение жесткого диска на разделы.
Эта статья объясняет fdisk(8) и связанную с ней утилиту sfdisk(8).
Установка
fdisk и связанные с ним утилиты входят в состав пакета util-linux, который является частью мета-пакета base.
Список разделов
Чтобы просмотреть таблицы разделов и разделы на блочном устройстве, вы можете запустить fdisk, указав устройство (например: /dev/sda
), /dev/nvme0n1
, /dev/mmcblk0
, и т.д.):
# fdisk -l /dev/sda
/proc/partitions
.Резервное копирование и восстановление таблицы разделов
Вы можете захотеть сделать резервное копирование таблицы разделов и схемы разделов диска перед их изменениями. Вы также можете использовать резервное копирование для копирования одинаковых разметок разделов на другие диски.
Вы можете использовать sfdisk для таблиц разделов GPT и MBR, чтобы сохранить разметку разделов вашего устройства в файл с параметром -d
/--dump
. Выполните следующую команду для устройства /dev/sda
:
# sfdisk -d /dev/sda > sda.dump
Файл должен выглядеть примерно так для одного раздела ext4 размером 1 ГиБ:
sda.dump
label: gpt label-id: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE device: /dev/sda unit: sectors first-lba: 34 last-lba: 1048576 /dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7
Чтобы позже восстановить эту разметку, вы можете выполнить:
# sfdisk /dev/sda < sda.dump
Создание таблицы разделов и самих разделов
Первый шаг в разметке диска — создание таблицы разделов. После этого создаются собственно разделы в соответствии с желаемой схемой разметки. Смотрите статью Разметка диска, чтобы решить, что выбрать для использования: MBR или GPT.
Перед началом вы можете сделать резервную копию вашей текущей таблицы разделов и схемы.
В недавних версиях fdisk отказались от устаревшей системы использования цилиндров в качестве стандартной единицы измерения, как и от совместимости с MS-DOS по умолчанию. fdisk автоматически выполняет выравнивание по 2048 512-байтовым секторам (1 МиБ), что должно быть совместимо со всеми расширенными форматами HDD и подавляющим большинством SSD. Это означает, что с настройками по умолчанию вы получите правильное выравнивание.
Чтобы использовать fdisk, запустите программу с именем блочного устройства, которое вы хотите изменить. В этом примере используется /dev/sda
:
# fdisk /dev/sda
Это откроет интерактивный режим fdisk, где вы можете вводить команды.
Создание новой таблицы
Чтобы создать новую таблицу разделов и удалить всю текущую информацию о разделах, введите o
для таблицы разделов MBR или g
для таблицы разделов GUID (GPT). Пропустите эти шаги, если необходимая таблица уже была создана.
Создание разделов
Создайте новый раздел с помощью команды n
. Вам нужно будет ввести тип раздела, номер раздела, начальный сектор и конечный сектор.
Тип раздела
При исплоьзовании MBR fdisk спросит тип раздела. Введите p
для создания первичного раздела или e
для создания расширенного. Может быть до четырёх основных разделов.
fidsk не спрашивает ID типа раздела и по умолчанию использует 'Linux filesystem'; вы сможете изменить его позже.
Номер раздела
Номер раздела — это номер, присвоенный разделу, например, раздел с номером 1
на диске /dev/sda
будет /dev/sda1
. Номера разделов могут не совпадать с реальным порядком разделов на диске, в этом случае их можно отсортировать.
Рекомендуется использовать номер по умолчанию, который предложит fdisk.
Первый и последний сектор
Первый сектор должен быть указан в абсолютном выражении с использованием номеров секторов. Последний сектор может быть задан с использованием абсолютного положения в секторах или в виде позиций, измеряемых в кибибайтах (K
), мебибайтах (M
), гибибайтах (G
), тебибайтах (T
) или пебибайтах (P
).
Позиция последнего сектора может быть задана в:
- в абсолютном выражении от начала диска. Например,
40M
в качестве первого сектора указывает позицию 40 МиБ от начала диска. - в относительном выражении, предваряя размер символами
+размер
или-размер
. Например,+2G
указывает на позицию через 2 ГиБ после начального сектора, а-200M
указывает на позицию 200 МиБ перед последним доступным сектором.
Нажатие Enter
без ввода значения использует значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.
- При разметке всегда рекомендуется использовать значения по умолчанию для первого и последнего секторов раздела. Кроме того, стоит указывать относительные размеры разделов с помощью нотации
+размер{M,G,T,P}
и не использовать разделы меньше 1 МиБ. Такие разделы всегда будут выровнены в соответствии со свойствами устройства. - На диске MBR оставьте неразмеченными как минимум 33 512-байтовых сектора (16,5 КиБ) в конце диска на случай, если вам понадобится преобразовать MBR в GPT.
- Системный раздел EFI требует тип
EFI System
. - GRUB требует раздел загрузки BIOS с типом
BIOS boot
при установке GRUB на диск с разметкой GPT. - Рекомендуется использовать
Linux swap
для любого раздела подкачки, так как systemd будет автоматически монтировать его.
Повторяйте эту процедуру, пока не получите желаемые разделы.
Изменение типа раздела
У каждого раздела есть определённый тип. MBR использует partition ID; GPT использует GUID типов разделов.
Нажмите t
, чтобы изменить идентификатор типа раздела. Используемое по умолчанию значение Linux filesystem
должно быть подходящим для большинства случаев.
- Введите
L
для просмотра списка внутренних кодов fdisk. - При использовании GPT рекомендуется следовать Discoverable Partitions Specification, поскольку systemd-gpt-auto-generator(8) будет монтировать их автоматически.
Загрузочный раздел
Вы можете отметить раздел как загрузочный, введя a
.
Запись изменений на диск
Для записи новой таблицы на диск и выхода используйте команду w
.
Перемещение разделов
Чтобы переместить раздел, необходимо иметь свободное пространство в том месте, куда будет перемещён раздел. При необходимости можно освободить место, уменьшив разделы и файловые системы на них. Смотрите Parted (Русский)#Сжатие разделов. Чтобы переместить раздел:
# echo '+секторы,' | sfdisk --move-data устройство -N номер
Где секторы
— количество секторов для перемещения раздела (+
означает перемещение вперёд), устройство
— устройство, на котором находится раздел, а номер
— номер раздела. Обратите внимание, что если вы добавляете новый раздел в середине или в начале диска, вам, скорее всего, потребуется изменить нумерацию разделов. Смотрите #Сортировка разделов или режим "extra functionality" в fdisk.
Советы и рекомендации
Сортировка разделов
В ситуации, когда, например, новый раздел создаётся между двумя существующими или раздел удаляется, нумерация разделов может перестать соответствовать их реальному расположению на диске, и для исправления можно выполнить сортировку. В этом примере используется /dev/sda
.
# sfdisk -r /dev/sda
Если вы не используете постоянные имена для блочных устройств, то вам может понадобиться обновить файлы конфигурации, в которых используется нумерация разделов, в частности /etc/fstab
и/или /etc/crypttab
.