fdisk (Русский)

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи fdisk. Дата последней синхронизации: 1 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

fdisk из пакета util-linux - интерактивная консольная утилита, которая может создать таблицу разделов и разделы на жестком диске и управлять ими. В таблице разделов описано разбиение жесткого диска на разделы.

Эта статья объясняет fdisk(8) и связанную с ней утилиту sfdisk(8).

Совет: Для базовых функций разметки можно использовать cfdisk(8) с текстовым пользовательским интерфейсом.

Установка

fdisk и связанные с ним утилиты входят в состав пакета util-linux, который является частью мета-пакета base.

Список разделов

Чтобы просмотреть таблицы разделов и разделы на блочном устройстве, вы можете запустить fdisk, указав устройство (например: /dev/sda), /dev/nvme0n1, /dev/mmcblk0, и т.д.):

# fdisk -l /dev/sda
Примечание: Если устройство не указано, fdisk покажет все разделы из /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.

Перемещение разделов

Важно: Разделы нельзя использовать в процессе их перемещения. Поскольку перемещение требует перезаписи всего раздела на диске, это медленная и потенциально опасная операция. Настоятельно рекомендуется создавать резервные копии! Согласно man-странице sfdisk, «эта операция рискованна и не является атомарной».

Чтобы переместить раздел, необходимо иметь свободное пространство в том месте, куда будет перемещён раздел. При необходимости можно освободить место, уменьшив разделы и файловые системы на них. Смотрите Parted (Русский)#Сжатие разделов. Чтобы переместить раздел:

# echo '+секторы,' | sfdisk --move-data устройство -N номер

Где секторы — количество секторов для перемещения раздела (+ означает перемещение вперёд), устройство — устройство, на котором находится раздел, а номер — номер раздела. Обратите внимание, что если вы добавляете новый раздел в середине или в начале диска, вам, скорее всего, потребуется изменить нумерацию разделов. Смотрите #Сортировка разделов или режим "extra functionality" в fdisk.

Советы и рекомендации

Сортировка разделов

В ситуации, когда, например, новый раздел создаётся между двумя существующими или раздел удаляется, нумерация разделов может перестать соответствовать их реальному расположению на диске, и для исправления можно выполнить сортировку. В этом примере используется /dev/sda.

# sfdisk -r /dev/sda

Если вы не используете постоянные имена для блочных устройств, то вам может понадобиться обновить файлы конфигурации, в которых используется нумерация разделов, в частности /etc/fstab и/или /etc/crypttab.

Примечание: Перед использованием новых разделов ядро должно перечитать обновлённую таблицу. Перезагрузитесь или попросите ядро перечитать таблицу разделов.

Смотрите также