补充说明
uuidgen 调用 libuuid 创建并打印一个新的 UUID,常见于 util-linux 发行包中的 uuid-runtime。默认会在系统存在高质量随机源时生成随机型(v4)UUID,否则回退到基于时间(v1)的 UUID。
除了随机型和时间型,还可以用命名空间加名字生成可预测的哈希型 UUID(v3/MD5 或 v5/SHA1)。命名空间既可以是标准 UUID,也可以是 @dns、@url、@oid、@x500 这些别名。哈希型 UUID 适合作为稳定的句柄,但不应直接当作秘密使用。
生成结果常用于 /etc/fstab 的 UUID= 挂载项、虚拟机磁盘标识和配置中的唯一键。若只需要一个 UUID,也可以直接读取 /proc/sys/kernel/random/uuid,无需安装额外软件包。
语法
uuidgen [选项]
选项
-r, --random:生成基于随机数的 UUID(v4)。-t, --time:生成基于时间戳的 UUID(v1)。-m, --md5:以 MD5 生成命名空间哈希 UUID(v3)。-s, --sha1:以 SHA1 生成命名空间哈希 UUID(v5)。-n, --namespace 命名空间:指定命名空间 UUID 或@dns等别名,需配合-m或-s。-N, --name 名字:指定用于哈希的名字,需配合-m或-s。
实例
# 生成一个随机 UUID
uuidgen
# 生成基于时间的 UUID
uuidgen -t
# 基于 DNS 命名空间和域名生成稳定的 UUID
uuidgen -s -n @dns -N example.com
# 批量生成 5 个 UUID
for i in $(seq 5); do uuidgen; done
# 不依赖 uuidgen,直接读取内核提供的随机 UUID
cat /proc/sys/kernel/random/uuid
# 查看块设备的 UUID,用于 fstab
lsblk -f
blkid /dev/sda1