Why are NTFS partition UUIDs shorter than normal?

Solution 1:

Because those values aren't UUIDs; they're NTFS serial numbers. They're identified as UUIDs in /etc/fstab (and elsewhere) because the developers chose to use the identifier "UUID" for fundamentally non-UUID data, rather than use some other identifier.

The same is true of FAT, by the way, but FAT serial numbers are even shorter than NTFS serial numbers.

Solution 2:

The Microsoft filesystems (NTFS and the FAT brothers) don't support UUIDs the way ext*/btrfs/other Unixy filesystems do. What you see reported as UUIDs are some sort of serial numbers (64 bits long for NTFS, 32 bits long for FAT32). The only concrete information I can dig up from the Linux world is from the ntfslabel(8) manpage:

--new-serial[=ssssssssssssssss], or

--new-half-serial[=ssssssss]
      Set  a  new  serial  number  to  the device, either the argument
      value, or a random one if  no  argument  is  given.  The  serial
      number  is  a  64  bit  number,  represented  as a sixteen-digit
      hexadecimal number, used  to  identify  the  device  during  the
      mounting  process.  As  a consequence, two devices with the same
      serial number cannot be mounted at the same  time  on  the  same
      computer.  This is not the volume UUID used by Windows to locate
      files which have been moved to another volume.

      The option --new-half-serial only changes the upper part of  the
      serial  number,  keeping the lower part which is used by Windows
      unchanged.  In this case the optional argument is an eight-digit
      hexadecimal number.

I suspect that these "UUID"s maybe the same as the serial number report by fsutil on Windows.