了解 UUID 分配

了解 UUID 分配

一个 UUID (通用唯一标识符)是一个 128 位代码,用于标识块(存储)设备。首先,这是所有 UUID 的用途吗?

设备如何获取其UUID?

它会改变吗?例如,在每次启动时?当安装新操作系统时?

UUID是如何生成的?是随机的吗?

大多数计算机没有超过 10 个存储设备。为什么需要这么多不同的名称?

答案1

该概念描述于RFC 4122它定义了生成的各种算法通用唯一标识符s。变体 4 使用随机数,是最常见的。

UUID 在很多场景中都有使用,以下是一些示例:

  • 标记分区和文件系统是 Linux 中最常见的用法
  • 网络管理器使用它们来识别网络设备和连接
  • Virtual Box 和 Qemu-KVM 等虚拟机管理程序使用它们来识别虚拟机
  • 它们在 Microsoft Windows 中使用,被称为GUIDs
  • 它们用于内部的唯一性数据库
  • 它们用于软件开发

在 Linux 中,所有发行版都附带该util-linux软件包,其中包含uuidgen生成 UUID 的命令。这是一个默认生成随机 UUID 的前端libuuid,如果没有足够的熵可用,则生成基于时间的 UUID。

用于创建分区或文件系统的实用程序将生成 UUID,该 UUID 保留在该分区/文件系统中,直到您重新创建它们或显式更改 UUID(例如使用tune2fs

UUID 与文件系统和分区一起使用,以便为它们提供一致的名称(尽管名称很长)。这避免了双硬盘系统中 UEFI 固件的 BIOS 列出硬盘的情况,以便您的系统磁盘/dev/sda在一次启动时分配并/deb/sdb在下一次启动时分配(可能第一个磁盘在第二次启动时启动速度较慢)。

使用传统的命名方法,这会对您的/etc/fstab文件造成严重破坏,因为您的系统将在错误的磁盘中查找要安装的分区。例如,这是我的交换条目:

/dev/sda4               none            swap            defaults        0 0

如果磁盘在启动时分配不同,我的系统将不会swap在非系统磁盘上找到第四个分区类型(好吧,我在笔记本电脑上,所以它没有第二个磁盘,但你得到点),我的交换就会失败。

通过用 UUID 标记它们并使用它们,/etc/fstab可以保证始终安装正确的文件系统。例如:

UUID=d8ab8967-f2de-4c76-902f-d8d9707c399e /media/files  ext4    defaults 0 0

将始终挂载具有该 UUID 的分区,/media/files无论 BIOS(或 UEFI 固件)在启动时标记它们的顺序如何。

相关内容