blkid 是 Linux 中识别文件系统类型最常用可靠的命令,能读取并显示块设备的 UUID、LABEL、TYPE 等信息;内核通过 superblock 魔数识别类型,用户工具复用该逻辑;UUID 比设备名稳定,推荐用于 /etc/fstab。

Linux 系统通过内核模块和用户空间工具识别文件系统类型,blkid 是最常用、最可靠的命令之一,它不仅能识别类型(如 ext4、xfs、vfat),还能直接读取并显示每个块设备的 UUID、LABEL、TYPE 等关键标识信息。
文件系统类型如何被 Linux 识别
Linux 内核在设备挂载或扫描时,会读取设备起始扇区(superblock)中的元数据。不同文件系统在固定偏移位置存放特征字段(例如 ext4 的魔数为 0xEF53,XFS 为 0x58465342)。内核通过这些“签名”判断类型,并加载对应模块(如 ext4.ko 或 xfs.ko)。用户层工具(如 blkid、file -s)复用内核逻辑或直接解析 superblock,实现快速识别。
- 未格式化的裸设备或损坏 superblock 会导致识别失败,显示
TYPE="undefined" - 某些伪文件系统(如 tmpfs、proc)不对应物理块设备,
blkid不会列出它们 - LUKS 加密卷需先打开才能识别内部文件系统;否则
blkid显示的是 LUKS 自身类型(TYPE="crypto_LUKS")
用 blkid 查看 UUID 和其他属性
blkid 默认扫描所有已知块设备(/dev/sd*, /dev/nvme*, /dev/mmcblk* 等),输出每块设备的 UUID、文件系统类型、卷标等。无需 root 权限即可运行,但部分加密或权限受限设备可能无法读取。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 查看全部设备:
blkid - 查看指定设备:
blkid /dev/sda1 - 只显示 UUID(适合脚本调用):
blkid -s UUID -o value /dev/sdb2 - 同时显示 UUID 和 TYPE:
blkid -s UUID -s TYPE -o export /dev/nvme0n1p1(输出为 KEY=VALUE 格式)
UUID 的作用与实际使用场景
UUID 是文件系统的全局唯一标识符,比设备名(如 /dev/sda1)更稳定——设备名可能因硬件顺序、驱动加载时机而变化,但 UUID 始终绑定该文件系统。因此,/etc/fstab 中推荐用 UUID 挂载,避免系统启动失败。
- fstab 示例:
UUID=1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p /home ext4 defaults 0 2 - 生成新 UUID(仅限 ext2/3/4):
tune2fs -U random /dev/sdc1 - XFS 修改 UUID 需用
xfs_admin -U generate /dev/sdd1(操作前确保卸载)
常见问题与验证技巧
若 blkid 输出为空或缺少预期设备,先确认设备是否存在(lsblk)、是否被占用(lsof /dev/sdX),或是否为 RAID/LVM 成员(此时应查 /dev/mapper/ 下的逻辑设备)。
- 对比
lsblk -f:可直观看到挂载点、FSTYPE、LABEL、UUID,适合快速浏览 - 检查 UUID 是否重复:
blkid | awk '{print $3}' | sort | uniq -d(正常情况下不应重复) - 对 LUKS 设备,先
sudo cryptsetup luksOpen /dev/sde1 mydata,再blkid /dev/mapper/mydata查内部文件系统

















