为什么 NTFS 分区 UUID 比正常的短?

为什么 NTFS 分区 UUID 比正常的短?

如果您使用sudo blkid命令查看分区及其 uuid 或者仅查看/etc/fstab(假设您有一些 NTFS 分区),您可能会注意到 NTFS 分区的 UUID 长度为 16 个字符且没有破折号,而 ext2/3/4 和交换分区具有传统的 32 个字符(16 字节)长的 UUID,带有破折号。为什么会这样?

答案1

因为这些值不是 UUID;它们是 NTFS 序列号。它们在/etc/fstab(以及其他地方)被标识为 UUID,因为开发人员选择使用标识符“UUID”来表示从根本上来说非 UUID 的数据,而不是使用其他标识符。

顺便说一下,FAT 也是如此,但 FAT 序列号比 NTFS 序列号还要短。

答案2

Microsoft 文件系统(NTFS 和 FAT 兄弟)不支持 UUID,而 ext*/btrfs/其他 Unixy 文件系统则支持。您看到的报告为 UUID 的是某种序列号(NTFS 为 64 位长,FAT32 为 32 位长)。我能从 Linux 世界挖掘出的唯一具体信息来自ntfslabel(8)手册页

--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.

我怀疑这些“UUID”可能与序列号报告相同fsutil在 Windows 上。

相关内容