有没有办法“计算” GPT 分区表的 GUID?

有没有办法“计算” GPT 分区表的 GUID?

有特定的保留 GUID,例如{DE94BBA4-06D1-4D40-A16A-BFD50179D6AC}用于 Windows 分区或未{00000000-0000-0000-0000-000000000000}使用的分区。

这些值从何而来?它们是以某种方式伪造的,还是只是随机生成并随后注册的?

使用所谓的“随机”方案来创建特定标识符似乎不太合理。

答案1

使用所谓的“随机”方案来创建特定标识符似乎不太合理。

事实上,这看起来很合理。

在最初的 IBM MBR 格式时代,我们使用 8 位标识符来表示“分区类型”。这大概是 1982 年的事情了。

当我们只预见到少数可能性时,这可能就足够了,但是在不同的 DOS 变体、其他基于 PC 的操作系统以及一些其他需要自己的(有时是一些不同的)分区类型标识符的系统之间,很容易用尽选择。

GPT 旨在解决过去 35 年来出现的 MBR 问题。现在,指甲盖大小的可用存储空间比当时庞大的存储阵列多出许多倍,我们可以“浪费”一些额外的字节,以确保根据我们所理解的物理定律,我们可以绝不没有选择。(粗略地说,地球上根本没有足够的物质来店铺使用当前已知的存储方法生成每个有效 GUID 的单个副本。地球上每个现存的人都可以生成大约 10^25 个 GUID,而发生碰撞的风险仍然很小。)

GPT,即 GUID 分区表,几乎在所有方面都使用 GUID。由于该原语已被使用,因此似乎没有理由对分区类型使用其他东西。

GUID 是根据固定格式随机生成的。因此,您可以选择一些“特殊”值,也可以只生成一个 GUID 并将其称为“特殊”。没有什么神奇之处可以让一个特定的 GUID 值比其他值更特殊或更不特殊。唯一真正“特殊”的 GUID 是全零 GUID,但这只是因为我们通常在计算中将全零或全一值视为特殊值。

因此,一旦你决定使用 GUID,并且需要定义一些特定的值,你只需生成一个随机的 GUID,然后通过法令宣布“这个 GUID 具有该含义”。任何想要与您互操作的人都必须将该特定 GUID 视为具有特定含义而不是其他含义。

相关内容