Linux查看磁盘UUID应优先用sudo blkid,因其最全最准、不依赖挂载状态;lsblk -f适合快速确认已挂载设备关系,但对未格式化或加密分区可能不显示UUID;/dev/sda1等设备名易受硬件顺序影响而变化,UUID则是文件系统创建时写入的固定标识,重格式化前永不改变,故/etc/fstab中必须用UUID避免挂载错误。

Linux 查看磁盘 UUID,优先用 sudo blkid,它最全、最准、不依赖挂载状态;lsblk -f 更适合快速确认已挂载设备的对应关系,但对未格式化或加密分区可能不显示 UUID。
为什么不能只靠 /dev/sda1 这类设备名
设备名(如 /dev/sda1)由内核探测顺序决定:加一块新硬盘、换 SATA 口、甚至 BIOS 启动顺序微调,都可能导致原 /dev/sda1 变成 /dev/sdb1。而 UUID 是文件系统创建时写入元数据的固定字符串,只要不重格式化,就永不改变。所以 /etc/fstab 里写 UUID=... 才能避免开机挂载失败或挂错盘。
sudo blkid 输出全量信息,含未挂载/未格式化设备
这是底层最可靠的查询方式,能扫出所有块设备(包括 LVM 逻辑卷、LUKS 加密分区、未挂载的 NTFS 分区等):
- 不加参数直接运行:
sudo blkid—— 列出所有设备的UUID、TYPE、LABEL、PARTUUID等 - 查单个设备:
sudo blkid /dev/nvme0n1p3—— 快速验证某一分区是否存在有效文件系统 - 只输出纯 UUID 字符串(适合脚本):
sudo blkid /dev/sdb2 -s UUID -o value—— 返回类似a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8,无引号无空格 - 过滤特定类型:
sudo blkid -t TYPE=ext4—— 找出所有 ext4 分区,避免手动 grep
注意:blkid 缓存设备信息,默认每 2 秒刷新一次;若刚格式化完没立刻显示,可加 -c /dev/null 强制绕过缓存。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
lsblk -f 直观显示挂载拓扑,但有隐藏限制
lsblk -f 以树状结构展示设备层级,同时带 FSTYPE、UUID、MOUNTPOINT、NAME 四列,一眼看清“哪个 UUID 挂在哪”:
- 默认无需 root 权限,对已挂载的常见文件系统(ext4/xfs/btrfs)基本可用
- 若某分区未挂载且无 LABEL,
UUID列可能为空 —— 这不是 bug,是lsblk依赖 udev 数据,而某些未激活的加密卷或旧 FAT32 分区不会被完整识别 - 想自定义列顺序或补全字段,可用:
lsblk -o NAME,FSTYPE,UUID,LABEL,MOUNTPOINT,SIZE - 对比
lsblk -f和sudo blkid输出不一致时,优先信后者 —— 前者是“用户态快照”,后者读的是设备实际元数据
/dev/disk/by-uuid/ 是符号链接目录,用于人工验证映射
这个目录不是命令,而是文件系统级的“UUID 地图”:
- 执行
ls -lh /dev/disk/by-uuid/,看到每个文件名就是 UUID,箭头指向真实设备路径(如83609c48-... -> ../../nvme0n1p2) - 可用于快速验证
/etc/fstab中写的 UUID 是否真对应你认为的那块盘 - 该目录内容由 udev 动态维护,重启后自动更新,无需手动干预
- 注意:软链接目标是相对路径(
../../nvme0n1p2),不是绝对路径,不能直接cat,只能ls -l或readlink
真正容易被忽略的点是:UUID 不是设备物理属性,而是文件系统属性。同一块物理盘,如果重新格式化(mkfs.ext4),UUID 就会变;如果只是清空数据不重格式化,UUID 保持不变。所以备份前确认 UUID 是否已变更,比记住设备名靠谱得多。

















