Ubuntu USB 移动硬盘自动挂载完全指南(基于 fstab)
Ubuntu USB 硬盘自动挂载(懒人速成版)
目标:开机自动挂载,盘符不变,随便拔插不报错。
第一步:查 UUID
插入硬盘,终端输入:
bash sudo lsblk -f
记下你要挂载硬盘的 UUID(那串长字符)。
### 第二步:建目录
bash sudo mkdir -p /mnt/disk1
### 第三步:改配置
备份一下(手残必备):
bash sudo cp /etc/fstab /etc/fstab.bak
编辑文件:
bash sudo nano /etc/fstab
直接复制下面这行,贴到文件最后,改掉 UUID 即可:
fstab UUID=你的UUID /mnt/disk1 ntfs-3g defaults,nofail,uid=1000,gid=1000,umask=002 0 2
(如果你不是第一个用户,把 1000 改成 id 命令查出来的数字)
### 第四步:生效
不重启,直接生效:
bash sudo mount -a
附:参数极简说明(不想看可以略过)
ntfs-3g:用这个,否则不能写。nofail:必加!没插硬盘也能正常开机。uid=1000:必加!否则硬盘只有 root 能写,你只是个过客。 完。
Ubuntu USB 移动硬盘自动挂载完全指南(基于 fstab)
适用场景:需要将 USB 移动硬盘固定挂载到指定目录(如
/mnt/disk1),并解决偶尔拔出硬盘导致系统启动卡顿或权限不足的问题。 适用系统:Ubuntu Desktop/Server
一、 前言
作为开发者,我们经常需要挂载大容量的 USB 机械硬盘来存储代码、镜像或数据。虽然 Ubuntu 的桌面环境会自动挂载,但挂载点不固定(比如每次变成 /media/user/UUID),这在写脚本、配置 Docker 或者编译项目时非常麻烦。
最优雅的解决方案是修改 /etc/fstab 文件,实现开机自动挂载,且挂载点固定。
本文记录了从获取 UUID 到编写稳健配置的全过程,特别是针对“可能偶尔拔掉硬盘”的场景做了特别优化。
二、 操作步骤
1. 获取硬盘 UUID
插入 USB 硬盘,在终端输入:
sudo lsblk -f
# 或者
sudo blkid
找到你的 USB 硬盘(通常是 /dev/sdb1 或 /dev/sdc1),记下:
- UUID(一串字符,这是硬盘的身份证)
- FSTYPE(文件系统类型,通常是
ntfs或ext4)
2. 创建挂载点
我们需要给硬盘安个固定的“家”:
sudo mkdir -p /mnt/disk1
sudo mkdir -p /mnt/disk2
3. 备份 fstab(非常重要!)
修改系统配置前,先备份,防手残:
sudo cp /etc/fstab /etc/fstab.bak
如果改错了导致进不去系统,恢复方法是进入 Recovery Mode 执行 mv /etc/fstab.bak /etc/fstab。
4. 编辑配置文件
打开配置文件:
sudo nano /etc/fstab
在文件末尾添加以下内容(根据实际 UUID 替换):
# 移动硬盘 1 - 支持热插拔与读写
UUID=你的硬盘1_UUID /mnt/disk1 ntfs-3g defaults,nofail,uid=1000,gid=1000,umask=002 0 2
# 移动硬盘 2 - 支持热插拔与读写
UUID=你的硬盘2_UUID /mnt/disk2 ntfs-3g defaults,nofail,uid=1000,gid=1000,umask=002 0 2
注意:
- 如果是
ext4格式,将ntfs-3g改为ext4,且通常不需要后面的uid等参数。uid=1000需要确认你当前用户的 ID,输入id命令查看。如果你是唯一用户,通常是 1000。
5. 验证配置
无需重启,直接执行:
sudo mount -a
- 如果没有任何输出:恭喜,配置成功!
- 模拟拔盘测试:为了验证
nofail生效,你可以拔掉硬盘后再执行sudo mount -a。如果依然不报错,说明配置完美。
三、 参数详解(防止遗忘)
这条配置之所以稳健,关键在于参数的选择。让我们拆解一下:
fstab UUID=xxxx /mnt/disk1 ntfs-3g defaults,nofail,uid=1000,gid=1000,umask=002 0 2
| 字段 | 含义 | 为什么这样写? |
| :--- | :--- | :--- |
| UUID=xxxx | 设备标识 | 用 UUID 而不是 /dev/sdb,防止插拔顺序改变导致盘符错乱(比如 A 盘变成了 B 盘)。 |
| /mnt/disk1 | 挂载点 | 访问硬盘的入口,保持固定。 |
| ntfs-3g | 文件系统 | ntfs-3g 是 Linux 下对 NTFS 格式读写最稳定的驱动。不要只写 ntfs,否则可能无法写入。 |
| defaults | 默认选项 | 包含 rw(读写)、exec(执行)等标准配置。 |
| nofail | 核心参数 | 开机时如果找不到这块盘(没插),系统忽略错误继续启动。没有这个参数,系统会卡在启动界面或进入救援模式。 |
| uid=1000 | 用户 ID | 强制将硬盘文件的所有者设为当前用户。不加这个,硬盘里的文件属于 root,你只能看不能改。 |
| umask=002 | 权限掩码 | 控制文件权限,设置为 002 保证当前用户有读写权限,其他人没有。 |
| 0 | dump 开关 | 0 表示不使用 dump 备份。 |
| 2 | 开机自检 | 2 表示开机时检查磁盘顺序(1 给根目录,2 给其他分区)。 |
四、 常见问题排查
1. 为什么我挂载后只能读不能写?
原因:没有加 uid=1000,gid=1000 参数。默认挂载的 NTFS 盘所有者是 root。
解决:在 fstab 的 options 里加上 uid=1000,gid=1000,然后重新 mount -a。
2. 系统启动时提示 "A start job is running for dev-disk-by..."
原因:fstab 里配置了一个不存在的 UUID(比如以前的 Swap 分区),或者没有加 nofail。
解决:
- 检查
/etc/fstab,注释掉没用的行(特别是 Swap 那一行)。 - 确保你的 USB 硬盘配置里包含了
nofail。
3. 我拔了硬盘再插回去,怎么重新挂载?
方法:虽然 nofail 保证了开机不报错,但插回去后系统不会自动感知挂载。
执行 sudo mount -a 即可重新挂载所有 fstab 里定义的磁盘。
五、 总结
通过 UUID 挂载并配合 nofail 和 uid 参数,我们可以得到一个挂载点固定、权限完全可控、且支持热插拔的 USB 存储方案。这是开发机上最稳妥的配置方式。
(保存日期:2023-XX-XX)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Geek小程
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
音乐天地