fdisk (Русский)
util-linux fdisk — диалоговая утилита командной строки, которая создаёт и изменяет таблицы разделов и разделы на жёстком диске. Жёсткие диски делятся на разделы, и это деление описывается в таблице разделов.
В этой статье рассматриваются 3 инструмента разметки с разными интерфейсами:
- fdisk(8) — основной диалоговый интерактивный инструмент,
- sfdisk(8) — инструмент для автоматизации и сценариев, используемый для резервного копирования/восстановления разметки,
- cfdisk(8) — интерактивный инструмент с текстовым интерфейсом (TUI), который часто считается более удобным для пользователя.
Установка
fdisk и связанные с ним утилиты входят в состав пакета util-linux, который является частью мета-пакета base.
Список разделов
Чтобы просмотреть таблицы разделов и разделы на блочном устройстве, выполните следующую команду, где устройство — это имя вроде /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 sector-size: 512 /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 автоматически выполняет выравнивание разделов на основе блоков размером 2048 512-байтных секторов (1 МиБ), что совместимо со всеми Advanced Format HDD и подавляющим большинством SSD. Это означает, что настройки по умолчанию обеспечат правильное выравнивание.
Чтобы использовать fdisk, запустите программу с именем блочного устройства, которое вы хотите изменить. В этом примере используется /dev/sda:
# fdisk /dev/sda
Это откроет интерактивный режим fdisk, где вы можете вводить команды.
Создание новой таблицы
- Проверьте, что ваши NVMe-накопители и жёсткие диски Advanced Format используют оптимальный логический размер сектора перед разметкой.
- Рассмотрите возможность выполнения SSD memory cell clearing перед разметкой SSD.
Чтобы создать новую таблицу разделов и удалить всю текущую информацию о разделах, введите g для таблицы разделов GUID (GPT) или o для MBR. Пропустите этот шаг, если необходимая таблица уже была создана.
Создание разделов
Создайте новый раздел с помощью команды n. Вам нужно будет ввести тип раздела, номер раздела, начальный сектор и конечный сектор.
Тип раздела
При использовании MBR fdisk запросит тип раздела MBR. Укажите его, введите p для создания первичного раздела или e для создания расширенного. Может быть до четырёх основных разделов.
fdisk не запрашивает ID типа раздела и по умолчанию использует 'Linux filesystem'; вы сможете изменить его позже.
Номер раздела
Номер раздела — это номер, присвоенный разделу, например, раздел с номером 1 на диске /dev/sda будет /dev/sda1, /dev/nvme0n1p1 на /dev/nvme0n1 и /dev/mmcblk0p1 на /dev/mmcblk0. Подробнее о схеме именования смотрите в Device file#Partition. Номера разделов могут не всегда соответствовать порядку разделов на диске, в этом случае их можно отсортировать.
Рекомендуется выбирать номер по умолчанию, предложенный fdisk.
Первый и последний сектор
Первый сектор должен быть указан в абсолютном выражении с использованием номеров секторов. Последний сектор может быть задан с использованием абсолютного положения в секторах или в виде позиций, измеряемых в кибибайтах (K), мебибайтах (M), гибибайтах (G), тебибайтах (T) или пебибайтах (P).
Позиция последнего сектора может быть задана в:
- абсолютном выражении от начала диска. Например,
40Mв качестве первого сектора указывает позицию 40 МиБ от начала диска. - относительном выражении, предваряя размер символами
+размерили-размер. Например,+2Gуказывает на позицию через 2 ГиБ после начального сектора, а-200Mуказывает на позицию 200 МиБ перед последним доступным сектором.
Нажатие клавиши Enter без ввода значения задаёт значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.
- При разметке всегда рекомендуется использовать значение по умолчанию для первого сектора раздела. Кроме того, обязательно указывайте размеры разделов с помощью нотации
+размер{M,G,T,P}и не используйте размеры меньше 1 МиБ. Такие разделы всегда будут выровнены в соответствии со свойствами устройства. -
Системный раздел EFI требует тип раздела
EFI System. -
GRUB требует раздел загрузки BIOS с типом раздела
BIOS bootпри установке GRUB на диск с разметкой GPT на системе с BIOS.
Изменение типа раздела
С каждым разделом ассоциирован определённый тип. MBR использует partition ID; GPT использует GUID типов разделов.
Нажмите t, чтобы изменить тип раздела. Вы можете использовать алиасы для распространённых типов разделов:
-
uefiдля ESP -
xbootldrдля раздела XBOOTLDR -
homeдля раздела /home -
swapдля раздела подкачки -
linuxдля остальных разделов
- Нажмите
L, чтобы показать список внутренних кодов fdisk. - При использовании GPT рекомендуется следовать Discoverable Partitions Specification. Это позволяет использовать GPT automounting.
Сделать раздел MBR загрузочным
Вы можете сделать раздел MBR загрузочным (также известным как активный), нажав a.
Просмотр и запись изменений в таблицу разделов
- Вывести изменения — командой
p. - Отменить изменения — командой
q. - Записать изменения на диск и выйти — командой
w.
Создание файловой системы
Чтобы создать файловую систему на новом разделе, смотрите Файловые системы#Создание файловой системы.
Перемещение разделов
Чтобы переместить раздел, необходимо иметь свободное пространство в том месте, куда будет перемещён раздел. При необходимости можно освободить место, уменьшив разделы и файловые системы на них. Смотрите Parted (Русский)#Сжатие разделов. Чтобы переместить раздел:
# echo '+секторы,' | sfdisk --move-data устройство -N номер
Где секторы — количество секторов для перемещения раздела (+ означает перемещение вперёд), устройство — устройство, на котором находится раздел, а номер — номер раздела. Обратите внимание, что если вы добавляете новый раздел в середине или в начале диска, вам, скорее всего, потребуется изменить нумерацию разделов. Смотрите #Сортировка разделов или режим "extra functionality" в fdisk.
Советы и рекомендации
Сортировка разделов
В ситуации, когда, например, новый раздел создаётся между двумя существующими или раздел удаляется, нумерация разделов может перестать соответствовать их реальному расположению на диске, и для исправления можно выполнить сортировку. В этом примере используется /dev/sda.
# sfdisk -r /dev/sda
Если вы не используете постоянные имена для блочных устройств, то вам может понадобиться обновить файлы конфигурации, в которых используется нумерация разделов, в частности /etc/fstab и/или /etc/crypttab.
partprobe /dev/sda.)cfdisk
Утилита cfdisk(8) предлагает основанный на curses текстовый интерфейс (TUI), который более дружелюбен к пользователю, чем fdisk, но не поддерживает большинство функций fdisk, перечисленных в дополнительных/экспертных командах. Запустите её так:
# cfdisk /dev/sda
- Вы можете нажать клавишу
?, чтобы вызвать экран справки по TUI. - При запуске cfdisk в верхней части экрана отображается текущий список разделов. Один из разделов всегда выделен курсором
>>и инвертированным фоном — вы можете перемещать выделение клавишами стрелок вверх/вниз. - В нижней части cfdisk показывает подробности о выбранном разделе и список команд, которые можно выполнить над ним — используйте стрелки влево/вправо для выбора команды, затем Enter для её выполнения. Под командами отображается текст справки.
- Как и в обычном fdisk, все действия ставятся в очередь и выполняются только при запуске команды
Write— до этого момента с диском ничего не происходит. Вы можете выйти из программы в любое время, чтобы безопасно отменить все изменения. - Если на диске ещё нет таблицы разделов, вам будет предложено создать её. Если вы хотите изменить существующий формат таблицы разделов, необходимо либо очистить содержимое диска, либо использовать классический fdisk для очистки и пересоздания таблицы разделов.