我正在编写一个小型EFI应用程序,该应用程序负责监视新计算机的部署,除其他外,还准备了具有最小分区表和救援系统的硬盘。
现在我想为分区表和分区ID生成随机UUID,但令我惊讶的是,在可用的标准协议集中似乎还没有现成的UUID生成器。
我在这里忽略了什么吗?如果我还没有可靠的系统时钟,但是我有可用的EFI随机生成器协议,哪种算法最有可能为我提供唯一的ID?
答案 0 :(得分:1)
只有在根据特定算法生成GUID时,统计上才保证它是唯一的。对于UEFI,这意味着跟随RFC 4122生成基于时间的UUID but ,其中TimeLow
,TimeMid
和TimeHighAndVersion
以小尾数字节顺序。这也是Microsoft使用的格式。
有些工具会为您生成一致的GUID。 Online GUID Generator是一个。另一个是不是非常有用但有用的EDK2 UEFI Driver Wizard,这是一个基于Python的GUI应用程序,可以自动为新edk2模块生成样板。
由于时间戳是使用big-endian编码的,因此Linux命令行实用程序uuidgen
命令不会不生成一致的GUID。