Что означает этот атрибут GPT диска / раздела?
Я нашел рекомендацию изменить атрибуты GPT раздела, чтобы окна не могли автоматически определять и назначать букву диска зашифрованному USB-накопителю при вставке, а также помечать его как "обязательный" - избегая всплывающих подсказок. отформатировать это. Это предлагаемое изменение, и оно работает на нескольких компьютерах без повреждения данных.
Атрибуты GPT =0xC000000000000001
Я понимаю, что "1" в последней позиции строки означает пометить раздел как "обязательный" и не дать системе удалить или отформатировать его. Первая позиция после 'x' имеет несколько возможных значений, приравнивающих к вещам, таким как обозначение раздела, является тенью или базовым разделом данных; все они кажутся числовыми значениями (т.е. 2, 4, 8). Но я не могу найти ничего, что означает "С" в первых атрибутах. Кто-нибудь знает, что это делает, или если это создает проблему для стабильности / повреждения данных в долгосрочной перспективе?
Спасибо
2 ответа
Первым делом: 0xC
знак равно C (hex)
знак равно 12 (dec)
знак равно 1100 (bin)
, Четыре бита Каждый символ в строке C000000000000001
обозначает четыре бита, всего 64 бита. Двоичное представление строки 11…01
где …
заменяет 60 нулей.
Значение этих битов (из Википедии):
0 Требуется платформа (требуется для правильной работы компьютера, например, раздел OEM, утилиты разбиения диска должны сохранять раздел как есть)
1 EFI прошивка должна игнорировать содержимое раздела и не пытаться читать с него
2 Устаревший BIOS (эквивалент активного флага (обычно установлен бит 7) со смещением +0h в записях разделов таблицы разделов MBR)
3–47 Зарезервировано для будущего использования
48–63 Определяется и используется отдельным типом раздела
Это не сразу очевидно, какой бит в вашем 11…01
последовательность 0-го, который является 63-м. Смещены ли числа в битовой последовательности? или 0-й бит является младшим (самым правым) битом в полученном двоичном числе? Ну, в моих тестах с (Linux) gdisk
Я переключил 0-й бит и атрибуты переключались между 00…00
а также 00…01
Таким образом, я бы сказал, 0-й младший значащий бит в полученном двоичном числе.
Что означает вашу интерпретацию (шестнадцатеричной) цифры 1
является правильным (хотя и не полным, цифра также включает информацию о битах 1, 2 и 3, эти биты не установлены).
gdisk
отображает свою собственную интерпретацию как:
0: system partition 1: hide from EFI 2: legacy BIOS bootable 60: read-only 62: hidden 63: do not automount
Это согласуется с Википедией, когда дело доходит до битов 0-2, и с этим другим ответом и ссылкой там для 60, 62 и 63. Я бы отнесся к этим последним битам с недоверием, так как Википедия утверждает, что
48–63 Определяется и используется отдельным типом раздела
и вы не сказали нам, что это за тип раздела, поэтому мы не можем продолжать расследование. С другой стороны, я не удивлюсь, если Windows использует свои правила для всех типов разделов. Тот факт, что ваша установка "работает на нескольких компьютерах без повреждения данных", говорит о том, что по крайней мере для этого конкретного раздела Windows использует свои правила, касающиеся битов 62 и 63.
Подводя итог, рассматриваемые атрибуты означают:
- утилиты разбиения диска должны сохранять раздел как есть,
- скрытый,
- не автомонтировать
Эта настройка должна работать для вас и не иметь угрозы стабильности данных.
Как указал Камиль, "C" является шестнадцатеричным и представлен в двоичном виде как 1100. То есть: 1*8 + 1*4 + 0*2 + 0*1. Таким образом, вы можете думать о "С" как о комбинации 8 и 4.
На https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/gpt приведены некоторые значения атрибутов GPT.
0x8000000000000000. Указывает, что раздел не будет получать букву диска по умолчанию при перемещении диска на другой компьютер или при первом просмотре диска компьютером.
0x4000000000000000. Скрывает объем раздела. То есть раздел не будет обнаружен диспетчером монтирования.
Итак, в вашем случае, рассматривая "C" как комбинацию 8 и 4, ваш раздел (1) не получит букву диска, а (2) скрыт.