Jump to content

# GPT fdisk (Русский)

5 languages

- Deutsch
- English
- Español
- 日本語
- 中文（简体）

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

Ссылки по теме

- Разметка дисков
- fdisk (Русский)
- Parted (Русский)
- dd (Русский)

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).

Совет:

- Для базовых функций разметки можно использовать 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

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

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

- Перед разметкой 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 МиБ. Таким образом разделы всегда будут выровнены в соответствии со свойствами устройства.
Совет: Оставьте 1 МиБ свободного места где-нибудь среди первых 2 ТиБ диска (например, используя `+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`

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` («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.

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

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

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

- GPT fdisk Tutorial - официальный сайт GPT fdisk.
- Страница GPT fdisk на SourceForge

Categories:

- File systems (Русский)
- System recovery (Русский)
- Commands (Русский)