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

501
Don Question

Существуют специальные зарезервированные руководства, например, для раздела Windows или для неиспользуемого раздела.

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

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

1

1 ответ на вопрос

3
a CVn

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

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

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

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

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

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

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

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

@DonQuestion - Нет; Это было бы нереально. Ramhound 8 лет назад 0
Он обозначает «Уникальный», как в ** Глобально ** ** Уникальный ** ** Идентификатор ** entifier Ramhound 8 лет назад 0
Как объясняет Майкл, каждый идентификатор, который определяется как конкретная цель, на самом деле существует не так много, которые на самом деле используются. Ramhound 8 лет назад 0
У каждого раздела есть * тип * GUID раздела и * конкретный * GUID раздела. https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_entries a CVn 8 лет назад 1
@DonQuestion Википедия перечисляет 85 идентификаторов GUID типов разделов. Это не так много. a CVn 8 лет назад 0
@DonQuestion Почему я должен? Просто поместите их в словарь или другой тип списка, предпочтительно загружаемый с диска, чтобы список можно было легко обновлять. Задача решена. Не то чтобы большинство людей проверяли MBR, не говоря уже о GPT, в любом случае вручную в представлении на диске. a CVn 8 лет назад 1