我正在尝试确定 Windows 如何为给定的磁盘卷创建 GUID。给定卷 GUID 的各个组件/部分是什么,每个部分指的是什么,在典型的连字符分隔的卷 GUID 中,例如:26a21bda-a627-11d7-9931-806e6f6e6963
其次,我试图确定这一点的原因是为了弄清楚为什么在许多 Windows 安装中 C:\ 卷 GUID 经常以“6963”结尾。由于 GUID 旨在在很大程度上是唯一的,我假设这些 GUID 的创建方式存在问题,因此经常导致 C:\ GUID 以 6963 结尾?这似乎是一个相当随机的数字 - 但如果你谷歌搜索 6963 GUID,你会发现它确实非常常见!我在工作中使用服务器的磁盘映像,每周查看数百台服务器的卷 GUID,而它们经常以 6963 结尾这一事实让我非常好奇。
事实上,微软自己的多篇文章(例如这篇文章)都包含以 6963 结尾的 GUID: https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-volume
我一直在搜索,但发现很少的信息能够解释这些 GUID 是如何为磁盘卷专门创建的,以及/或者为什么 6963 经常作为结尾字符串,尤其是对于 C:\ 分区而言。
先感谢您!
答案1
根据 维基百科 通用唯一标识符,UUID 以“48 位节点 ID”结尾。
RFC 4122将节点 ID 定义为:
4.1.6. 节点
对于 UUID 版本 1,节点字段由 IEEE 802 MAC 地址(通常是主机地址)组成。对于具有多个 IEEE 802 地址的系统,可以使用任何可用的地址。最低地址八位字节(八位字节编号 10)包含全局/本地位和单播/多播位,是 802.3 LAN 上传输的地址的第一个八位字节。
对于没有 IEEE 地址的系统,可以使用随机或伪随机生成的值;请参阅第 4.5 节。必须在此类地址中设置多播位,以便它们永远不会与从网卡获得的地址冲突。
对于 UUID 版本 3 或 5,节点字段是一个 48 位值,由第 4.3 节中描述的名称构成。
对于 UUID 版本 4,节点字段是随机或伪随机生成的 48 位值,如第 4.4 节所述。
UUID 版本存储在 UUID 的第一个字节中。知道版本号后,就可以查看匹配算法了。
但最终,有些部分仍将不清楚。
文章 GUID 是全局唯一的,但 GUID 的子字符串不是 添加更多信息,并添加 UUID 终止于:
六位是固定的
没有具体说明它们是如何固定的,但从 Wikipedia 文章来看,它们似乎与进一步识别 UUID 的类型有关,这增加了最后几个字节重复出现的可能性。如果这些字节属于同一类型,那么对于在同一台计算机上生成的所有 UUID,这些字节肯定是相同的。
我认为以上内容几乎总结了有关 Windows 中 UUID 的所有已知知识。