直接用blkid查新分区UUID最稳妥,前提是已格式化;若file -s显示data则需先mkfs,再用blkid -s UUID -o value提取纯字符串写入fstab,并通过mount -a验证。

直接用 blkid 查新分区的 UUID 是最稳妥的第一步——它不依赖挂载状态,也不受设备名变动影响,只要分区已格式化,就能准确读出那个“不会变的身份证”。
确认新分区是否已格式化
blkid 只能识别已有文件系统的分区。如果刚分完区(比如用 fdisk 或 gparted 创建了 /dev/sdc1),但还没建文件系统,blkid 就不会显示它的 UUID。
- 先检查:运行
sudo file -s /dev/sdc1,若输出data,说明尚未格式化 - 补格式化(以 ext4 为例):
sudo mkfs.ext4 /dev/sdc1(⚠️操作前请确认目标设备无重要数据) - 再运行
sudo partprobe让内核重新读取分区表,避免缓存干扰
用 blkid 精准提取 UUID
格式化完成后,有多种方式调用 blkid 获取 UUID,按需选择:
-
sudo blkid:列出所有块设备,适合人工核对;复制 UUID 时务必去掉前后引号 -
sudo blkid /dev/sdc1:只查指定分区,输出干净,减少干扰 -
sudo blkid -s UUID -o value /dev/sdc1:输出纯 UUID 字符串(如a1b2c3d4-5678-90ef-1234-567890abcdef),方便粘贴进 fstab 或脚本 -
ls -l /dev/disk/by-uuid/:查看软链接映射,可交叉验证该 UUID 是否真实指向 /dev/sdc1
把 UUID 写进 fstab 前的关键检查
拿到 UUID 后别急着写 fstab,先确认三件事:
- 挂载点目录存在:
sudo mkdir -p /mnt/data - 文件系统类型严格匹配:
blkid输出里的 TYPE(如ext4、xfs、ntfs3),大小写和拼写都不能错 - 加
nofail选项:UUID=... /mnt/data ext4 defaults,nofail 0 2,防止硬盘未接入时系统卡在启动阶段
验证配置是否真正生效
编辑完 /etc/fstab 后,必须本地验证,不能靠重启赌运气:
- 执行
sudo mount -a:无任何输出 = 语法与路径都正确;报错则按提示修正(常见如 TYPE 错、挂载点不存在、内核未加载对应模块) - 确认挂载成功:
findmnt /mnt/data或mount | grep data,看到对应行才算落地 - 拔掉该硬盘再试一次
sudo mount -a:有nofail就该静默跳过,不中断命令执行

















