一、先科普:为什么不用 /dev/sdb1,要用 UUID?

1. /dev/sdb、sdc 盘符是动态变化的,插拔U盘、新增硬盘后,盘符会乱,导致开机挂载失败

2. UUID 是文件系统唯一固定身份ID,终身不变,是Linux官方推荐的永久挂载方案

3. 重点区分两个ID(新手90%踩坑):

  • UUID:文件系统ID,挂载fstab必须用这个

  • PARTUUID:硬件分区ID,普通ext4挂载不能用,写进去直接报错


二、本次实战硬件环境(真实设备信息)

系统:Ubuntu 16.04.7 LTS (xenial)

CPU:2核

内存:2G

新增磁盘:/dev/sdb1 29.8G 空闲磁盘

磁盘真实有效UUID:53ff3bd7-3025-4b11-9923-91a7d4a2c73a


三、完整实操步骤

步骤1:磁盘格式化(全新空盘必做,有数据请勿执行)

我的磁盘是全新空盘,直接格式化为Linux通用的ext4文件系统:

sudo mkfs.ext4 /dev/sdb1

⚠️ 重要提醒:有重要数据的磁盘,绝对不要格式化,直接跳过此步骤!

步骤2:创建固定挂载目录

统一在 /mnt 目录下创建挂载文件夹,规范好管理:

sudo mkdir -p /mnt/sdb

步骤3:查询磁盘真实UUID(核心关键)

通过blkid精准获取文件系统UUID,杜绝写错ID:

sudo blkid /dev/sdb1

本次实战正确输出:

/dev/sdb1: UUID="53ff3bd7-3025-4b11-9923-91a7d4a2c73a" TYPE="ext4" PARTUUID="960067b2-01"

提取有效参数:

  • 文件系统类型:ext4

  • 可用UUID:53ff3bd7-3025-4b11-9923-91a7d4a2c73a

步骤4:编辑开机自动挂载配置文件 fstab

fstab是Linux系统开机自动挂载的核心配置文件:

sudo nano /etc/fstab

在文件最末尾添加一行正确配置(严禁加双引号):

UUID=53ff3bd7-3025-4b11-9923-91a7d4a2c73a  /mnt/sdb  ext4  defaults  0  2

配置字段逐行详解(新手必看)

UUID=xxx:磁盘唯一标识,稳定不失效

/mnt/sdb:自定义挂载目录(必须提前创建)

ext4:磁盘文件系统格式

defaults:默认读写挂载参数

0:不开启磁盘备份

2:开机磁盘自检级别,非系统盘统一填2

保存退出:Ctrl+O 回车 → Ctrl+X

步骤5:致命关键!测试配置,禁止直接重启

很多新手写完直接重启,配置错误直接进系统救援模式、开机失败!

执行以下命令测试fstab语法和挂载有效性:

sudo mount -a

无任何输出 = 配置100%正确

❌ 报错 = 配置有误,立即回去修改,或注释错误行

步骤6:查看挂载是否成功

df -h

能看到 /mnt/sdb 盘符,说明永久挂载生效,重启依旧保留。


四、本次实操踩坑记录(全网最实用避坑)

坑1:UUID 加双引号

错误写法:UUID="000A449F000C6A3E"

问题:fstab 不识别引号,直接提示找不到UUID,挂载失败

解决:fstab内所有UUID一律不加引号

坑2:混淆 UUID 和 PARTUUID

用分区PARTUUID写入fstab,系统无法识别,挂载报错

解决:只使用 blkid 输出的文件系统UUID

坑3:写完直接重启不测试

fstab配置错误会导致系统开机卡死、进入救援模式,非常麻烦

解决:必须执行 mount -a 测试通过再重启


五、附加常用命令

1. 临时挂载(重启失效)

sudo mount /dev/sdb1 /mnt/sdb

2. 卸载磁盘

sudo umount /mnt/sdb

3. 修复fstab开机故障(应急)

开机进救援模式后,打开fstab,在错误行前加 # 注释,保存重启即可恢复系统。


六、总结

1. Linux 永久挂载优先使用UUID方案,稳定、不丢盘、不报错

2. 严格区分 UUID / PARTUUID,挂载只用文件系统UUID

3. fstab 禁止加引号、禁止写错参数,写完必须mount -a 校验

4. 老旧Ubuntu 16.04 同样适配这套方案,全Ubuntu通用

5. 该方案适用于:新增机械硬盘、固态硬盘、U盘的永久开机自动挂载