分区的UUID是如何生成的

分区的UUID是如何生成的

谁能解释一下在基于 Linux 的发行版中如何生成分区的 UUID(通用唯一标识符)?

答案1

GPT 分区的 UUID 和文件系统的 UUID 都是在创建分区/文件系统时随机生成的。您可以检查它们是否是版本 4 UUID

答案2

uuid 只是格式化(特定位置的连字符)随机字节,因此没有什么神奇之处。

通过查看源代码(apt-get source libuuid1如果您使用的是基于 Ubuntu 的发行版,您可以使用该源代码),uuid 生成要么使用真正的随机字节(已知相当慢——您可以通过从 /dev/random 特殊文件读取来获取这些字节)文件)或基于时间的字节(几乎是瞬时的,但不加密安全)。

答案3

Linux 发行版中生成的分区的 UUID 是版本 4。版本 4 UUID 旨在从真随机数或伪随机数生成 UUID。它描述于RFC 4122

答案4

目前我的 Ubuntu 15.04 UUID 版本 4 用于分区。
版本 4 UUID 使用仅依赖于随机数的方案。

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

这里 4 表示版本号
x 是任意十六进制数字
y 是 8、9、A 或 B 之一

重复的随机 UUID 概率

在总共 128 位中,两位表示 RFC 4122(“Leach-Salz”)UUID,四位表示版本(0100 表示“随机生成”),因此随机生成的 UUID 有 122 个随机位。两个这样的 UUID 具有相同值的机会可以使用概率论(生日悖论)来计算。使用近似值

在此输入图像描述

这些是计算 n 个 UUID 后发生意外冲突的概率,其中 x = 2^122:

从这些数字来看,一个人每年被陨石击中的风险估计为 170 亿分之一,这意味着概率约为 0.00000000006 (6 × 10−11),相当于创造一年内有几十万亿个 UUID,并且有一个重复。换句话说,只有在接下来的 100 年中每秒生成 10 亿个 UUID 后,仅创建一个重复项的概率才会约为 50%。

来源:维基百科

相关内容