2

Формат GPT предоставляет гораздо больше места для метаданных.
Чтобы установить тип раздела в diskpart, используйте:

DISKPART> create partition msr

или же

DISKPART> create partition efi

или же

DISKPART> create partition primary

Но как изменить тип после создания раздела, например, изменить основной на efi?

2 ответа2

4

DiskPart действительно может это сделать. Выберите соответствующий диск и раздел, затем используйте команду set id . Например, это изменяет выбранный раздел на раздел EFI:

set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b

Используя комбинацию из набора статей set id TechNet и detail partition , я обнаружил следующие общие возможные значения:

  • Восстановление: de94bba4-06d1-4d40-a16a-bfd50179d6ac
  • Нормальный: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
  • EFI: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
  • Зарезервировано: e3c9e316-0b5c-4db8-817d-f92df00215ae

Вероятно, хорошей идеей будет обратиться к атрибутам раздела для раздела определенного типа (посмотрите на исправный компьютер), чтобы установить флаги. Как вы обнаружили, gpt attributes устанавливают флаги; detail partition отображает их.

Опасная зона: установка зарезервированного типа

В документации TechNet говорится, что DiskPart не позволит вам сделать раздел на раздел Microsoft Reserved. Это утверждение верно, поэтому вы можете использовать другой инструмент. Если вы действительно хотите использовать DiskPart, вам придется взломать инфраструктуру управления дисками Windows, чтобы она не знала, какие типы запрещены. Опасность! Я не проверял следующие шаги на загрузочном диске; они здесь только для развлекательных целей. Делайте их на свой страх и риск, желательно на одноразовом компьютере или виртуальной машине.

Вырвите шестнадцатеричный редактор - мне нравится XVI32 - и откройте копию vdsbas.dll (в System32). Это модуль, который обслуживает большинство операций с диском, и именно он отвечает за контроль типов разделов. Идентификатор GUID типа Microsoft Reserved начинается с байта 0x21CD8 для версии, которая поставляется с Windows 10 x64; Вы должны искать шестнадцатеричную строку 16 E3 C9 E3 (0xE3C9E316 в младшем порядке). Если немного щелкнуть там, испорченная копия не будет знать, что вы устанавливаете специальный тип. Вам придется изменить настройки безопасности на оригинальной копии vdsbas.dll прежде чем Windows позволит вам перезаписать ее. Вы также должны убедиться, что служба Virtual Disk не работает (остановка в Службах - это нормально), иначе файл будет использоваться.

Обратите внимание, что такие зарезервированные разделы не должны быть связаны с томом. Я не знаю, есть ли у DiskPart способ сохранить раздел таким образом.

Вероятно, есть веская причина, по которой Microsoft не позволяет вам устанавливать этот тип, поэтому сделайте резервную копию чего-нибудь важного на диске, если вы решите пойти по этому пути. Если вам действительно нужен такой раздел обратно, вероятно, лучше переустановить / восстановить Windows с официального носителя.

3

Кажется, в этом вопросе и его обсуждении есть некоторая путаница или, по крайней мере, неточное использование терминологии. Таким образом, может быть полезно рассмотреть структуры данных GPT, которые описаны в статье Википедии о GPT. (Спецификация EFI более авторитетна и доступна бесплатно, но для ее загрузки необходимо принять условия лицензии. Смотрите здесь, чтобы получить это.) Коды типов GPT на самом деле являются значениями GUID - список известных значений приведен в таблице GUID типов разделов в статье в Википедии. Есть также атрибуты GPT и имена разделов; это три полностью независимые структуры данных (хотя многие инструменты разделения устанавливают имена разделов на основе кода типа). Я не знаю ни одного типа раздела GPT, называемого "первичным". Я подозреваю, что ссылка на этот тип является результатом путаницы с разделами MBR, которые могут быть первичными, расширенными или логическими; но эти понятия не имеют смысла в GPT. Некоторые инструменты продолжают применять термин "основной" применительно ко всем разделам GPT, предположительно потому, что инструменты изначально были написаны для дисков MBR и поэтому требуют первичной / расширенной / логической идентификации для всех разделов.

Коды типов в MBR и GPT определяют предполагаемое использование раздела. Windows, OS X и некоторые другие ОС используют коды типов в качестве своего рода "фильтра" - эти ОС игнорируют разделы, которые не относятся к определенным типам, так что вы можете настроить (скажем) файловую систему Linux на раздел с Код типа, специфичный для Linux, и Windows не будет пытаться его отформатировать. Есть также несколько специфичных для Windows кодов типов (см. Таблицу Википедии), а также несколько кросс-ОС (например, код для системного раздела EFI или ESP).

Атрибуты используются реже (коды типов являются обязательными), но они могут изменить способ, которым ОС или встроенное ПО обрабатывает раздел. Например, "скрытый" атрибут указывает ОС игнорировать раздел. Это может или не может быть выполнено, в зависимости от ОС. Атрибуты могут варьироваться от одного типа раздела к другому.

Названия разделов существуют в основном для потребления человеком, так что вы можете идентифицировать разделы. Я не исследовал это подробно, но я думаю, что OS X привередлива к имени, присвоенному его разделу Recovery HD ; в моих (кратких) тестах он исчез, когда этот раздел был переименован. Я не встречал ни одного другого случая, когда ОС или утилиты заботились об именах разделов, хотя они часто назначались описаниям, связанным с кодом типа при создании разделов.

Я не очень знаком с инструментом Microsoft diskpart , но, как указывает Бен Н в своем ответе, его можно использовать для установки кодов типов в произвольные значения GUID. Другие инструменты тоже могут это делать или могут устанавливать коды типов другим способом. Мой собственный GPT fdisk (gdisk), например, использует четырехзначные (двухбайтовые) шестнадцатеричные значения в качестве "ярлыков" для известных значений GUID; или вы можете ввести значения GPT "сырые". Обратитесь к разделу « Пошаговое руководство по gdisk для получения информации о том, как это сделать. Библиотека libparted (которая используется несколькими инструментами Linux) устанавливает коды типов на основе файловой системы, которая, по вашему мнению, будет использоваться в разделе; но вы можете изменить их в ограниченной степени, установив "флаги", некоторые из которых соответствуют кодам типов, а некоторые - атрибутам. Это довольно запутанное смешение двух независимых базовых структур данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .