GPT fdisk (Русский)
GPT fdisk состоит из программ gdisk, cgdisk, sgdisk и fixparts. Они представляет собой набор инструментов для разметки диска, созданный Родом Смитом. Они работают с таблицами разделов GUID (GUID Partition Table, GPT), а не со старыми (но всё ещё распространёнными) таблицами разделов главной загрузочной записи (Master Boot Record, MBR).
gdisk, cgdisk и sgdisk имеют одинаковую функциональность, но предоставляют разные пользовательские интерфейсы. gdisk — текстовый и интерактивный режим, sgdisk — режим командной строки, и cgdisk — интерфейс на основе curses. Эта статья охватывает утилиты gdisk(8) и sgdisk(8).
Установка
Установите пакет 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
Создание новой таблицы
- Перед разметкой NVMe-накопителей и жёстких дисков с расширенным форматом (Advanced Format) проверьте, что они используют оптимальный логический размер сектора.
- Перед разметкой SSD рекомендуется выполнить сброс ячеек памяти.
Чтобы создать новую таблицу разделов GUID и стереть все текущие разделы, напишите o
в строке. Пропустите этот шаг, если нужная вам таблица уже создана.
Создание разделов
Создайте новый раздел с помощью команды n
. Введите номер раздела, первый сектор, последний сектор и тип раздела.
Номер раздела
Номер раздела — это номер, присвоенный разделу, например, раздел с номером 1
будет иметь путь /dev/sda1
на накопителе /dev/sda
, /dev/nvme0n1p1
на /dev/nvme0n1
и /dev/mmcblk0p1
на /dev/mmcblk0
. Номера разделов могут не совпадать с реальным порядком разделов на диске, в этом случае их можно отсортировать.
Рекомендуется использовать номер по умолчанию, который предложит gdisk.
Первый и последний сектор
Первый и последний сектор раздела могут быть указаны в виде номеров секторов или в виде позиций, измеряемых в кибибайтах (K
), мебибайтах (M
), гибибайтах (G
), тебибайтах (T
) или пебибайтах (P
).
Позиция может быть задана:
- в абсолютном выражении от начала диска. Например,
40M
в качестве первого сектора указывает позицию 40 МиБ от начала диска. - в относительном выражении, предваряя размер символами
+размер
или-размер
. Например,+2G
указывает на позицию через 2 ГиБ после сектора, предложенного по умолчанию, а-200M
указывает на позицию 200 МиБ перед последним доступным сектором.
Нажатие Enter
без ввода значения использует значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.
+размер{M,G,T,P}
и не используйте размеры меньше 1 МиБ. Таким образом разделы всегда будут выровнены в соответствии со свойствами устройства.+1M
в качестве первого сектора раздела) на случай, если вам понадобится создать раздел загрузки BIOS.Тип раздела
Выберите тип раздела, введя внутренний код gdisk или указав GUID типа раздела вручную. Значение по умолчанию Linux filesystem
(GUID 0FC63DAF-8483-4772-8E79-3D69D8477DE4
, внутренний код gdisk 8300
) должно быть подходящим для большинства случаев.
- Введите
L
для просмотра списка внутренних кодов gdisk. - Рекомендуется следовать Discoverable Partitions Specification, поскольку systemd-gpt-auto-generator(8) будет монтировать их автоматически. Смотрите #Отключение автоматического монтирования раздела GPT, если вы хотите отключить автоматическое монтирование для раздела.
Тип раздела | Точка монтирования | код 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 |
/var 1
|
8310
|
4D21B016-B534-45C2-A9FB-5C16E091FD2D
|
Linux /var/tmp |
/var/tmp 1
|
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
|
- systemd-gpt-auto-generator(8) будет автоматически монтировать раздел только при выполнении определённых условий. Подробнее смотрите systemd (Русский)#Автомонтирование GPT-раздела.
Повторяйте эту процедуру, пока не получите желаемые разделы.
Запись изменений на диск
c
, чтобы изменить имя раздела (PARTLABEL) для удобной его идентификации.Для записи новой таблицы на диск и выхода используйте команду w
.
Советы и рекомендации
Преобразование между MBR и 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
(«do not automount»).
Запустите 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.
Смотрите README-efi.txt для более подробной информации.
Смотрите также
- GPT fdisk Tutorial - официальный сайт GPT fdisk.
- Страница GPT fdisk на SourceForge