[Bug 1551419] Re: Fix UUID endianness patch breaks cloud-init on Azure
Dan Watkins
daniel.watkins at canonical.com
Tue Mar 1 01:58:39 UTC 2016
OK, so I've done a bit of digging.
As of SMBIOS 2.6 (released in 2008), the first three fields of the UUID
are well-defined as being encoded in little-endian. Before that, they
could be encoded in "network byte order" (i.e. big-endian) if people
felt like it.
Presumably enough people did feel like it, as dmidecode specifically has
different code paths for pre-2.6 and post-2.6 SMBIOS versions; it will
decode pre-2.6 UUIDs as big-endian and post-2.6 UUIDs as little-endian.
(The comment in the dmidecode source code at [0] explains this pretty
well.)
And, you've guessed it, Azure reports a pre-2.6 version of SMBIOS. (To
be precise, 2.3, which was released in _1999_; Azure is old skool cool).
This explains the difference between the kernel-reported UUID (always
little-endian) and the dmidecode-reported UUID (big-endian on Azure, but
little-endian on most modern systems).
[0] https://github.com/mirror/dmidecode/blob/master/dmidecode.c#L415
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to cloud-init in Ubuntu.
https://bugs.launchpad.net/bugs/1551419
Title:
Fix UUID endianness patch breaks cloud-init on Azure
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1551419/+subscriptions
More information about the Ubuntu-server-bugs
mailing list