GPT fdisk — это текстовый пакет с меню для создания таблиц разделов и управления ими. Он состоит из двух программ: интерактивного gdisk в текстовом режиме и sgdisk для командной строки . На этой странице руководства описана программа sgdisk , запускаемая из командной строки .
Дано:
Старый, сломанный диск: /dev/sda
Новый, исправный диск: /dev/sdc
Очистите и подготовьте новый диск:
dd if=/dev/zero of=/dev/sdc bs=1024 count=1024
parted —script /dev/sdc mklabel msdos
Создайте разделы со старого диска:
sfdisk -d /dev/sda > partitions-sda.txt
Теперь прочитайте в созданную таблицу разделов:
sfdisk /dev/sdc < partitions-sda.txt
Чтобы клонировать таблицы разделов GPT, выполните следующие действия:
sgdisk -R <New_Disk> <Existing_Disk>
Сделаем клон таблицы разделов на новый диск.
Например, с нашего существующего диск — /dev/sda, нужно клонировать таблицу разделов на новый диск /dev/sdc
sgdisk -R /dev/sdc /dev/sda
Также установите новый GUID на новом диске после клонирования таблицы разделов:
sgdisk -G /dev/sdc
ПАРАМЕТРЫ
Некоторые параметры не принимают аргументов, другие принимают один аргумент (обычно номер раздела), а третьи принимают составные аргументы, разделенные двоеточием. Например, -n ( —new ) принимает номер раздела, номер начального и конечного сектора, как в sgdisk -n 2:2000:50000/dev/sdc , который создает новый раздел с номером 2, начиная с сектор2000 заканчивается в секторе 50 000 в /dev/sdc .
Несвязанные варианты могут быть объединены; однако некоторые такие комбинации будут бессмысленными (например, удаление раздела и последующее изменение его кода типа GUID). sgdisk интерпретирует параметры в том порядке, в котором они введены, поэтому эффекты могут различаться в зависимости от порядка. Например, sgdisk -s -d 2 сортирует записи таблицы разделов, а затем удаляет раздел 2 из вновь отсортированного списка; но sgdisk -d 2 -s удаляет исходный раздел2, а затем сортирует измененную таблицу разделов.
Проверка ошибок и возможности исправить ошибки в sgdisk минимальны. Хотя программа старается обеспечить законность структур данных GPT, она не запрашивает проверку перед выполнением своих действий. Если вам не требуется программа, управляемая из командной строки, вам следует использовать интерактивный gdisk вместо sgdisk , поскольку gdisk позволяет вам завершить работу без сохранения изменений, если вы допустите ошибку.
Хотя sgdisk основан на том же коде управления разделами, что и gdisk , sgdisk реализует меньше функций, чем его интерактивный брат. Опции, доступные в sgdisk :
- -a, —set-alignment=значение
- Установите кратность выравнивания секторов. GPT fdisk выравнивает начало разделов по секторам, кратным этому значению, которое по умолчанию составляет 1 МБ (2048 на дисках с 512-байтовыми секторами) на только что отформатированных дисках. Это значение выравнивания необходимо для достижения оптимальной производительности с форматом Western DigitalAdvanced и аналогичными дисками с размером физического сектора больше, чем логический, с некоторыми типами RAID-массивов и с устройствами SSD.
-A, —attributes=list|[partnum:show|or|nand|xor|=|set|clear|toggle|get[:bitnum|hexbitmask]]
- Просмотрите или установите атрибуты раздела. Используйте список , чтобы просмотреть определенные (известные) значения атрибутов. При использовании этой опции опустите номер раздела (и даже имя файла устройства). Остальные требуют номер раздела. Параметры show и get показывают текущие настройки атрибута (все атрибуты или для определенного бита соответственно). Параметры or , nand , xor , = , set , clear и toggle позволяют изменить значение бита атрибута. Параметры set , clear , toggle и get работают с битовым номером; остальные работают с шестнадцатеричной битовой маской. Например, введите sgdisk -A 4:set:2 /dev/sdc, чтобы установить атрибут бита 2 (старый загрузочный BIOS) в разделе 4 в /dev/sdc .
- -b, —backup=файл
- Сохраните данные раздела в файл резервной копии. Используя эту опцию, вы можете создать резервную копию текущей таблицы разделов в памяти в файл на диске. Результирующий файл представляет собой двоичный файл, состоящий из защитной MBR, основного заголовка GPT, резервного заголовка GPT и одной копии таблицы разделов в указанном порядке. Обратите внимание, что резервная копия представляет собой текущие структуры данных в памяти, поэтому, если вы запустите программу, внесете изменения, а затем воспользуетесь этой опцией, резервная копия отразит ваши изменения. Если структуры данных GPT повреждены, резервная копия может неточно отражать поврежденное состояние; вместо этого они будут отражать интерпретацию GPT первого прохода GPT fdisk.
- -c, —change-name=номер детали:имя
- Измените имя GPT раздела. Это имя закодировано как строка UTF-16, но для правильного ввода и отображения всего, что выходит за рамки базовых значений ASCII, требуется поддержка подходящего языкового стандарта и шрифта. По большей части Linux игнорирует имя раздела, но в некоторых ОС оно может быть важным. Если вы хотите задать имя, содержащее пробел, заключите его в кавычки, например sgdisk -c 1:»Sample Name» /dev/sdb . Обратите внимание, что имя раздела GPT отличается от имени файловой системы, которое закодировано в структурах данных файловой системы.
-C, —recompute-chs
- Пересчитать значения CHS в защитной или гибридной MBR. Этот параметр иногда может помочь, если дисковой утилите, ОС или BIOS не нравятся значения CHS, используемые разделами в защитной или гибридной MBR. В частности, спецификация GPT требует значения CHS 0xFFFFFF для разделов размером более 8 ГБ, но это значение технически незаконно по обычным стандартам. Некоторые BIOS зависают, если встречают это значение. Этот параметр пересчитывает более обычное значение CHS — 0xFEFFFF для разделов размером более 8 ГБ, что позволяет этим BIOS загружаться.
- -d, —delete=номер детали
- Удалить раздел. Это действие удаляет запись из таблицы разделов, но не нарушает данные в секторах, изначально выделенных для раздела на диске. Если соответствующий гибридный раздел MBR существует, gdisk также удаляет его и расширяет любой соседний защитный раздел 0xEE (EFI GPT)MBR, чтобы заполнить новое свободное пространство.
- -D, —display-alignment
- Отображение текущего значения выравнивания сектора. Разделы будут созданы с кратностью значения сектора, сообщаемого этой опцией. Вы можете изменить значение выравнивания с помощью опции -a.
- -e, —move-второй-заголовок
- Переместите резервные структуры данных GPT в конец диска. Используйте эту опцию, если вы добавили диски в RAID-массив, создав таким образом виртуальный диск, пространство которого соответствует резервным структурам данных GPT. Эта команда перемещает структуры данных backupGPT в конец диска, где они и находятся.
- -E, —конец наибольшего
- Отображает номер сектора конца самого большого доступного блока секторов на диске. Сценарий может сохранить это значение и передать его обратно как часть опции -n для создания раздела. Если нераспределенные сектора недоступны, эта функция возвращает значение 0.
- -f, —первый по величине
- Отображает номер сектора начала самого большого доступного блока секторов на диске. Сценарий может сохранить это значение и передать его обратно как часть опции -n для создания раздела. Если нераспределенные секторы недоступны, эта функция возвращает значение 0. Обратите внимание, что этот параметр не учитывает выравнивание разделов; когда вы действительно создаете раздел, его начальная точка может быть изменена по сравнению с этим значением.
- -F, —first-aligned-in-самый большой
- Аналогично -f ( —first-in-largest ), за исключением того, что возвращает номер сектора с примененной текущей коррекцией выравнивания. Используйте эту функцию, если вам нужно вычислить фактическую начальную точку раздела, а не теоретическую начальную точку или фактическую начальную точку, если вы установили значение выравнивания равное 1.
- -g, —mbrtogpt
- Преобразуйте диск с меткой диска MBR или BSD в диск GPT. В целях безопасности использование этой опции необходимо на дисках с метками дисков MBR или BSD, если вы собираетесь сохранить изменения, чтобы предотвратить случайное повреждение таких дисков.
- -G, —randomize-guides
- Рандомизируйте GUID диска и уникальные GUID всех разделов (но не GUID кода типа раздела). Эту функцию можно использовать после клонирования диска, чтобы снова сделать все GUID уникальными.
- -h, —гибрид
- Создайте гибридную MBR. Эта опция принимает в качестве аргументов от одного до трех номеров разделов, разделенных двоеточиями. Созданная гибридная MBR сначала помещает в таблицу раздел EFI GPT (тип 0xEE), а затем указанные вами разделы. Их коды типов основаны на кодах типов GPT fdisk, разделенных на 0x0100, что обычно подходит для разделов Windows. Если флаг «активный/загрузочный» должен быть установлен, вы должны сделать это в другой программе, например, fdisk . Программа gdisk предлагает дополнительные возможности создания гибридного MBR.
- -i, —info=номер детали
- Показать подробную информацию о разделе. Сводная информация, создаваемая командой -p , обязательно опускает многие детали, такие как уникальный GUID раздела и преобразование кода типа внутреннего раздела sgdisk в простое имя типа. Опция -i отображает эту информацию для одного раздела.
- -j, —adjust-main-table=сектор
- Настройте расположение основной таблицы разделов. Обычно это значение равно 2, но в некоторых случаях его может потребоваться увеличить, например, когда в системе на кристалле (SoC) жестко запрограммировано чтение загрузочного кода из сектора 2. Я не рекомендую изменять это значение, если это не является абсолютно необходимым. .
- -l, —load-backup=файл
- Загрузите данные раздела из файла резервной копии. Эта опция является противоположностью опции -b . Обратите внимание, что восстанавливать данные раздела с чего-либо, кроме исходного диска, не рекомендуется. Эта опция будет работать, даже если исходная таблица разделов диска плохая; однако большинство других параметров в той же командной строке будут игнорироваться.
- -L, —list-типы
- Отображение сводной информации о типах разделов. GPT использует GUID для определения типов разделов для конкретных ОС и целей. Для упрощения ввода данных sgdisk сжимает их в двухбайтовые (четырехзначные шестнадцатеричные) значения, которые связаны с их эквивалентными кодами MBR. В частности, код MBR умножается на шестнадцатеричное число 0x0100. Например, код пространства подкачки Linux в MBR — 0x82, а в gdisk — 0x8200 . Однако индивидуальная переписка невозможна. В частности, коды всех разновидностей разделов FAT и NTFS соответствуют одному коду GPT (введенному как 0x0700 в sgdisk ). Некоторые операционные системы используют один код MBR, но в GPT используется гораздо больше кодов. Для них sgdisk последовательно добавляет кодовые номера, например 0xa500 для метки диска FreeBSD, 0xa501 для загрузки FreeBSD, 0xa502 для подкачки FreeBSD и т. д. Обратите внимание, что эти двухбайтовые коды уникальны для gdisk и sgdisk . Этот параметр не требует указания действительного имени файла дискового устройства.
- -m, —gpttombr
- Конвертируйте диск из формы GPT в форму MBR. Эта опция принимает в качестве аргументов от одного до четырех номеров разделов, разделенных двоеточиями. Их коды типов основаны на кодах типов GPT fdisk, разделенных на 0x0100. Если необходимо установить флаг active/bootable, вы должны сделать это в другой программе, например, fdisk . Программа gdisk предлагает дополнительные параметры преобразования MBR. Невозможно преобразовать более четырех разделов из формы GPT в форму MBR или преобразовать разделы, размер которых начинается выше отметки 2 ТБ или превышает 2 ТБ.
- -n, —new=номер детали:начало:конец
- Создайте новый раздел. Вы вводите номер раздела, начальный сектор и конечный сектор. Как начальный, так и конечный секторы могут быть указаны в абсолютных величинах как номера секторов или как позиции, измеряемые в кибибайтах (K), мебибайтах (M), гибибайтах (G), тебибайтах (T) или пебибайтах (P); например,40M указывает позицию в 40 МБ от начала диска. Вы можете указать местоположения относительно начала или конца указанного диапазона по умолчанию, предваряя число символом «+» или «-», например+2G , чтобы указать точку размером 2 ГБ после начального сектора по умолчанию, или-200M , чтобы указать точку за 200 МБ до последнего доступного сектора. Начальное или конечное значение 0 задает значение по умолчанию, которое является началом наибольшего доступного блока для начального сектора и концом того же блока для конечного сектора. Значение partnum, равное 0, заставляет программу использовать первый доступный номер раздела. Последующие использования опций -A , -c , -t и -u также могут использовать 0 для ссылки на тот же раздел.
- -N, —largest-new=num
- Создайте новый раздел, который заполнит самый большой доступный блок места на диске. При желании вы можете использовать опцию -a ( —set-alignment ), чтобы настроить выравнивание. Значение num, равное 0, заставляет программу использовать первый доступный номер раздела.
- -о, —чисто
- Очистите все данные раздела. Сюда входят данные заголовка GPT, все определения разделов и защитная MBR. Обратите внимание, что эта операция, как и большинство других операций, завершится неудачей на поврежденном диске. Если вы хотите подготовить поврежденный диск для использования GPT, вам следует сначала стереть его с помощью -Zand, а затем разбить его обычным образом. Эта опция будет работать, даже если исходная таблица разделов диска плохая; однако большинство других параметров в той же командной строке будут игнорироваться.
- -О, —print-mbr
- Отображение основных сводных данных раздела MBR . Сюда входят номера разделов, начальные и конечные номера секторов, размеры разделов, коды типов разделов MBR и имена разделов. Эта опция полезна в основном для диагностики проблем с таблицей разделов, особенно на дисках с гибридными MBR.
- -p, —print
- Отображение основных сводных данных раздела GPT. Сюда входят номера разделов, начальные и конечные номера секторов, размеры разделов, коды типов разделов sgdisk и имена разделов. Для получения дополнительной информации используйте параметр -i ( —info ).
- -П, —притворись
- Притворитесь, что вносите определенные изменения. Структуры данных GPT в памяти изменяются в соответствии с другими параметрами, но изменения не записываются на диск.
- -r, —транспонировать
- Поменяйте местами записи двух разделов в таблице разделов. Один или оба раздела могут быть пустыми, однако менять местами два пустых раздела бессмысленно. Например, если определены разделы 1–4, транспонирование 1 и 5 приводит к созданию таблицы с номерами разделов от 2 до 5. Перенос разделов таким образом не влияет на распределение дискового пространства; он лишь изменяет их порядок в таблице разделов.
- -R, —replication=имя_файла_второго_устройства
- Реплицируйте таблицу разделов основного устройства на указанное второе устройство. Обратите внимание, что реплицированная таблица разделов является точной копией, включая все идентификаторы GUID; если устройство должно иметь свои собственные уникальные идентификаторы GUID, вам следует использовать параметр -G на новом диске.
- -s, —sort
- Сортировка записей раздела. Номера разделов GPT не обязательно должны совпадать с порядком разделов на диске. Если вы хотите, чтобы они совпадали, вы можете использовать эту опцию. Обратите внимание, что некоторые утилиты разделения разделов сортируют разделы всякий раз, когда они вносят изменения. Такие изменения будут отражены в именах файлов вашего устройства, поэтому вам может потребоваться отредактировать /etc/fstab, если вы используете эту опцию.
- -t, —typecode=partnum:{шестнадцатеричный код|GUID}
- Измените код типа одного раздела. Вы вводите код типа, используя либо двухбайтовое шестнадцатеричное число, как описано ранее, либо полностью определенное значение GUID, например EBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
- -T, —transform-bsd=номер детали
- Преобразуйте разделы BSD в разделы GPT. Эта опция работает с метками BSDdisklabels, хранящимися в разделах GPT (или преобразованных MBR). Коды типов преобразованных разделов, скорее всего, потребуют ручной корректировки. sgdisk при запуске попытается преобразовать метки дисков BSD, хранящиеся на основном диске, но это преобразование, скорее всего, приведет к созданию первого и/или последнего разделов, которые станут непригодными для использования. Множество вариантов BSD означает, что вероятность того, что sgdisk не сможет преобразовать метку диска BSD, высока по сравнению с вероятностью проблем с преобразованием MBR.
- -u, —partition-guid=partnum:guid
- Установите уникальный GUID раздела для отдельного раздела. GUID может быть полным GUID или буквой «R» для установки случайного GUID.
- -U, —disk-guid=guid
- Установите GUID для диска. GUID может быть полным GUID или буквой «R», чтобы установить произвольный GUID.
- —Применение
- Распечатайте краткий обзор доступных опций.
- -v, —проверить
- Проверьте диск. Этот параметр проверяет наличие множества проблем, таких как неправильные CRC и несовпадение основных и резервных данных. Однако этот параметр не устраняет автоматически большинство проблем; для этого вы должны использовать параметры в меню восстановления и преобразования. Если проблем не обнаружено, эта команда отображает сводную информацию о нераспределенном дисковом пространстве. Эта опция будет работать, даже если исходная таблица разделов диска плохая; однако большинство других параметров в той же командной строке будут игнорироваться.
- -V, —версия
- Отображение информации о версии программы. Эту опцию можно использовать без указания имени файла устройства.
- -z, —зап
- Зап (уничтожьте) структуры данных GPT, а затем выйдите. Используйте эту опцию, если вы хотите переразбить GPT-диск с помощью fdisk или другой программы, не поддерживающей GPT. Этот параметр уничтожает только структуры данных GPT; он оставляет MBR нетронутым. Это делает его полезным для уничтожения структур данных GPT после перераспределения диска для MBR с помощью утилиты, не поддерживающей GPT; однако существует риск повреждения загрузчиков или даже начала первого или конца последнего раздела MBR. Если вы используете его на действительном диске GPT, в MBR останется неподходящее определение раздела EFI GPT (0xEE), которое вы можете удалить с помощью другой утилиты.
- -Z, —zap-all
- Зап (уничтожьте) структуры данных GPT и MBR, а затем выйдите. Этот параметр работает так же, как -z , но, поскольку он стирает как MBR, так и GPT, он более подходит, если вы хотите переразбить диск после использования этого параметра, и совершенно не подходит, если вы уже переразбили диск.
- -?, —помощь
- Распечатайте сводку опций.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
sgdisk возвращает различные значения в зависимости от успеха или неудачи:
- 0 — Нормальное выполнение программы
- 1 — Слишком мало аргументов
- 2 — Произошла ошибка при чтении таблицы разделов.
- 3 — Обнаружен диск без GPT, опция -g отсутствует , но для работы требуется действие записи.
- 4 — Ошибка не позволила сохранить изменения.
- 5 — Произошла ошибка при чтении стандартного ввода (никогда не должна возникать при использовании sgdisk, но может возникать при использовании gdisk).
- 8 — Операция репликации диска (-R) не удалась.