Есть ли способ "рассчитать" направляющие для таблицы разделов GPT?

Есть специальные зарезервированные гиды, такие как {DE94BBA4-06D1-4D40-A16A-BFD50179D6AC} для раздела Windows или {00000000-0000-0000-0000-000000000000} для неиспользованного раздела.

Откуда эти ценности? Они как-то сфабрикованы, или они просто генерируются случайным образом и впоследствии регистрируются?

Не кажется очень рациональным использовать предположительно "случайную" схему для создания определенных идентификаторов.

1 ответ

Решение

Не кажется очень рациональным использовать предположительно "случайную" схему для создания определенных идентификаторов.

На самом деле, это кажется очень рациональным.

В прежние времена в оригинальном формате IBM MBR мы использовали 8-битный идентификатор для "типа раздела". Это было в 1982 году или около того.

Этого могло бы быть достаточно, когда мы предвидели лишь небольшое количество возможностей, но между различными вариантами DOS, другими ОС на базе ПК и несколькими другими системами, которым требовались свои собственные (иногда несколько разных) идентификаторы типов разделов, это было довольно легко исчерпать выбор.

GPT предназначен для решения проблем MBR, которые возникли за последние 35 лет. Теперь, когда у нас во много раз больше доступного дискового пространства, чем у огромного массива хранения, мы можем позволить себе "тратить" несколько лишних байтов на то, чтобы, учитывая законы физики, как мы их понимаем, мы никогда не сможем исчерпать выбор. (Грубо говоря, на Земле просто не хватает вещества, чтобы даже сохранить одну копию каждого действительного GUID с текущими известными методами хранения. Каждый ныне живущий человек на Земле может сгенерировать около 10^25 GUID, и риск столкновения все равно будет только быть маргинальным.)

GPT, или таблица разделов GUID, использует GUID для более или менее всего. Поскольку примитив уже используется, кажется, нет никаких серьезных причин использовать что-то другое для типа раздела.

GUID генерируются случайным образом, в соответствии с фиксированным форматом. Таким образом, вы можете выбрать какое-то "специальное" значение или просто сгенерировать один GUID и назвать его "специальным". Нет ничего волшебного, что делает одно значение GUID более или менее особенным, чем любое другое. Единственным действительно "специальным" GUID является GUID со всеми нулями, но это только потому, что мы обычно рассматриваем все нули или все единицы как особые в вычислениях.

Итак, как только вы решили использовать GUID и вам нужно определить какое-то конкретное значение, вы просто генерируете случайный GUID, а затем объявляете декретом, что "этот GUID имеет это значение". Любой, кто хочет иметь возможность взаимодействовать с вами, должен рассматривать этот конкретный GUID как имеющий конкретное значение, а не какое-то другое.

Другие вопросы по тегам