我之前在SuperUser发布了这个问题,但我觉得它更适合程序员。
如果我理解正确,根据GPT,LBA 2的前16个字节是磁盘上第一个分区的分区类型GUID。在Windows磁盘管理中,第一个分区被指定为EFI系统分区。但是,经过进一步调查,EFI系统分区的GUID是:
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
然而前16个字节告诉我:
28732AC1-1FF8-D211-BA4B-00A0C93EC93B
有趣的是前3个部分是小端,而另外2个是大端。
为什么会这样?
答案 0 :(得分:3)
EFI_GUID数据类型声明如下:
typedef struct {
UINT32 Data1;
UINT16 Data2;
UINT16 Data3;
UINT8 Data4[8];
} EFI_GUID;
由于原始EFI体系结构(IA64 LE和IA32e)默认为小端,因此整数也是如此。我还没有在big-endian机器上看到过UEFI实现,所以我不知道是否会以其他方式存储标准GUID。