GPT fdisk (Русский)

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

GPT fdisk состоит из программ gdisk, cgdisk, sgdisk, и fixparts. Они представляет собой набор инструментов для разметки диска, созданный Родом Смитом. Они работают с дисками с глобальным уникальным идентификатором (GUID) с таблицей разделов (GPT), а не со старыми (и всё ещё более распространенными) таблицами разделов основной загрузочной записи (MBR).

gdisk, cgdisk и sgdisk имеют одинаковую функциональность, но предоставляют разные пользовательские интерфейсы. gdisk — текстовый и интерактивный режим, sgdisk — режим командной строки, и cgdisk — интерфейс на основе curses. Эта статья охватывает утилиты gdisk(8) и sgdisk(8).

Совет:
  • Для базовых функций разметки можно использовать cgdisk(8) с текстовым пользовательским интерфейсом.
  • На сайте GPT fdisk есть подробные пошаговые инструкции для gdisk, cgdisk, sgdisk и FixParts.

Установка

Установите пакет gptfdisk.

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

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

# gdisk -l /dev/sda

или с помощью sgdisk:

# sgdisk -p /dev/sda

Резервное копирование и восстановление таблицы разделов

Перед внесением изменений в диск вы можете сделать резервную копию таблицы разделов и схемы разделов диска. Вы также можете использовать резервную копию, чтобы скопировать одну и ту же структуру разделов на несколько дисков.

Используя sgdisk, вы можете создать двоичную резервную копию, состоящую из защитной MBR, основного заголовка GPT, резервного заголовка GPT и одной копии таблицы разделов. В приведённом ниже примере таблица разделов /dev/sda сохраняется в файл sgdisk-sda.bin:

# sgdisk -b=sgdisk-sda.bin /dev/sda

Позже вы можете восстановить резервную копию, запустив:

# sgdisk -l=sgdisk-sda.bin /dev/sda

Если вы хотите клонировать структуру разделов вашего текущего устройства (/dev/sda в данном случае) на другой диск (/dev/sdc) запустите:

# sgdisk -R=/dev/sdc /dev/sda

Если оба диска будут на одном компьютере, вам необходимо рандомизировать GUID диска и разделов:

# sgdisk -G /dev/sdc

Создание таблицы разделов и самих разделов

Первый шаг в разметке диска — создание таблицы разделов. После этого создаются собственно разделы в соответствии с желаемой схемой разметки.

Перед началом вы можете сделать резервную копию вашей текущей таблицы разделов и схемы.

Ниже показано, как использовать gdisk для выполнения как создания таблицы разделов, так и создания фактических разделов. Также вы можете использовать основанную на curses версию cgdisk, однако следующие инструкции к ней неприменимы. Смотрите cgdisk(8) для её использования.

gdisk автоматически выполняет выравнивание по 2048 512-байтовым секторам (1 МиБ) что должно быть совместимо со всеми расширенными форматами HDD и подавляющим большинством SSD.

Чтобы использовать gdisk, запустите программу с именем блочного устройства, которое вы хотите изменить. В этом примере используется /dev/sda:

# gdisk /dev/sda

Создание новой таблицы

Важно: Если вы создадите новую таблицу разделов на диске с данными, то все данные на нём будут удалены. Убедитесь, что это действительно то, что вы хотите сделать.

Чтобы создать новую таблицу разделов GUID и стереть все текущие разделы, напишите o в строке. Пропустите этот шаг, если нужная вам таблица уже создана.

Создание разделов

Создайте новый раздел с помощью команды n. Введите номер раздела, первый сектор, последний сектор и тип раздела.

Примечание: Рекомендации по размеру и расположению разделов можно почитать в статье Разметка дисков#Схема разметки.

Номер раздела

Номер раздела — это номер, присвоенный разделу, например, раздел с номером 1 на диске /dev/sda будет /dev/sda1. Номера разделов могут не совпадать с реальным порядком разделов на диске, в этом случае их можно отсортировать.

Рекомендуется использовать номер по умолчанию, который предложит gdisk.

Первый и последний сектор

Первый и последний сектор раздела могут быть указаны в виде номеров секторов или в виде позиций, измеряемых в кибибайтах (K), мебибайтах (M), гибибайтах (G), тебибайтах (T) или пебибайтах (P).

Позиция может быть задана:

  • в абсолютном выражении от начала диска. Например, 40M в качестве первого сектора указывает позицию 40 МиБ от начала диска.
  • в относительном выражении, предваряя размер символами +размер или -размер. Например, +2G указывает на позицию через 2 ГиБ после сектора, предложенного по умолчанию, а -200M указывает на позицию 200 МиБ перед последним доступным сектором.

Нажатие Enter без ввода значения использует значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.

Совет:
  • При разметке всегда рекомендуется указывать относительные размеры разделов с помощью нотации +размер{M,G,T,P} и не использовать размеры меньше 1 МиБ. Такие разделы всегда будут выровнены в соответствии со свойствами устройства.
  • Оставьте 1 МиБ свободного места в первых 2 ТиБ диска (например, используя +1M в качестве первого сектора раздела) на случай, если вам понадобится создать раздел загрузки BIOS.

Тип раздела

Выберите тип раздела, введя внутренний код gdisk или указав GUID типа раздела вручную. Значение по умолчанию Linux filesystem (GUID 0FC63DAF-8483-4772-8E79-3D69D8477DE4, внутренний код gdisk 8300) должно быть подходящим для большинства случаев.

Совет:
Часто используемые типы разделов
Тип раздела Точка монтирования код
gdisk
GUID типа раздела
Файловая система Linux Любая 8300 0FC63DAF-8483-4772-8E79-3D69D8477DE4
Системный раздел EFI Любая1 ef00 C12A7328-F81F-11D2-BA4B-00A0C93EC93B
Загрузочный раздел BIOS Нет ef02 21686148-6449-6E6F-744E-656564454649
Linux x86-64 корень (/) / 8304 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
Linux подкачка [SWAP] 8200 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
Linux /home /home 8302 933AC7E1-2EB4-4F13-B844-0E14E2AEF915
Linux /srv /srv 8306 3B8F8425-20E0-4F3B-907F-1A25A76F98E8
Linux /var /var1 8310 4D21B016-B534-45C2-A9FB-5C16E091FD2D
Linux /var/tmp /var/tmp1 8311 7EC6F557-3BC5-4ACA-B293-16EF5DF639D1
Linux LVM Любая 8e00 E6D6D379-F507-44C2-A23C-238F2A3DF928
Linux RAID Любая fd00 A19D880F-05FC-4D3B-A006-743F0F84911E
Linux LUKS Любая 8309 CA7D7CCB-63ED-4C53-861C-1742536059CC
Linux dm-crypt Любая 8308 7FFEC5C9-2D00-49B7-8941-3EA10A5586B7
  1. systemd-gpt-auto-generator(8) будет автоматически монтировать раздел только при выполнении определённых условий. Подробнее смотрите systemd (Русский)#Автомонтирование GPT-раздела.

Повторяйте эту процедуру, пока не получите желаемые разделы.

Запись изменений на диск

Совет: Используйте команду c, чтобы изменить имя раздела (PARTLABEL) для удобной его идентификации.

Для записи новой таблицы на диск и выхода используйте команду w.

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

Преобразование между MBR и GPT

Совет: Подробности можно почитать на сайте Рода Смита: Converting to or from GPT.

gdisk, sgdisk и cgdisk способны преобразовывать диски MBR и BSD disklabels в GPT без потери данных. После преобразования все первичные и логические разделы MBR становятся разделами GPT с правильными GUID типов разделов и уникальными GUID разделов.

После преобразования потребуется переустановить загрузчик, чтобы настроить его на загрузку с GPT.

Важно:
  • GPT хранит вторичную таблицу в конце диска. По умолчанию эта структура данных занимает 33 сектора по 512 байт (16,5 КиБ). MBR не имеет подобной структуры данных в конце диска, поэтому последний раздел на диске MBR иногда простирается до самого конца диска и не позволяет выполнить полное преобразование. Если это произошло, необходимо отказаться от преобразования и изменить размер последнего раздела.
  • Известны проблемы с повреждением резервной копии GPT на ноутбуках с чипсетом Intel, работающих в режиме RAID. Решением является использование AHCI вместо RAID, если это возможно.

Для преобразования таблицы разделов MBR в GPT с помощью sgdisk используйте опцию -g/--mbrtogpt:

# sgdisk -g /dev/sda

Для преобразования GPT в MBR используйте опцию -m/--gpttombr. Имейте в виду, что преобразовать более четырёх разделов из GPT в MBR невозможно.

# sgdisk -m /dev/sda

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

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

# sgdisk -s /dev/sda

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

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

Восстановление заголовка GPT

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

# gdisk /dev/sda

Выберите r для опций восстановления и преобразования (только для экспертов). Далее выберите

  • b: использовать резервный заголовок GPT (воссоздать основной)
  • d: использовать основной заголовок GPT (воссоздать резервный)

После этого используйте команду w для записи новой таблицы на диск и выхода.

Расширение диска GPT

После увеличения диска (например, в аппаратном RAID-массиве или на диске виртуальной машины) вновь добавленное место можно будет использовать не сразу, так как GPT хранит свои данные в конце диска. Необходимо переместить резервный заголовок GPT в новый конец диска.

Запустите sgdisk с опцией -e/--move-second-header, например:

# sgdisk -e /dev/sda

После этого посмотрите список разделов, и вы должны увидеть появившееся свободное место.

Отключение автоматического монтирования раздела GPT

systemd-gpt-auto-generator(8) будет автоматически монтировать разделы в соответствии с Discoverable Partitions Specification. Иногда это нежелательно.

Автоматическое монтирование можно отключить путём добавления атрибута раздела 63.

Запустите gdisk, например:

# gdisk /dev/sda

Введите p для просмотра списка разделов и посмотрите номера разделов, для которых вы хотите отключить автоматическое монтирование.

Введите x (экспертные команды).

Введите a — команду установки атрибута. Введите номер нужного раздела и затем номер атрибута 63. После этого под строкой Set fields are: должно появиться 63 (do not automount). Нажмите Enter для завершения изменения атрибутов. Повторите этот шаг для всех нужных разделов.

После завершения используйте команду w для записи новой таблицы на диск и выхода.

Также можно использовать sgdisk с опцией -A/--attributes=; смотрите sgdisk(8). Например, для установки атрибута 63 разделу /dev/sda2 выполните:

# sgdisk -A 2:set:63 /dev/sda

EFI-приложение gdisk

Его нет в пакетах, но Род Смит предоставляет собранное бинарное приложение EFI на SourceForge. Скачайте gdisk-efi-*.zip и распакуйте архив. Для использования скопируйте gdisk_x64.efi в системный раздел EFI и запустите его с помощью вашего загрузчика или через UEFI Shell.

gdisk_x64.efi позволяет редактировать таблицу разделов ещё до загрузки операционной системы. Он используется так же, как и двоичный файл gdisk в Linux.

Примечание: gdisk_x64.efi не умеет работать с файловыми системами, так что он не сможет делать резервную копию таблицы в файл или восстанавливать таблицу из файла резервной копии.

Смотрите README-efi.txt для более подробной информации.

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