mount是临时挂载,重启即失效;fstab是开机自动挂载配置,需将UUID、正确文件系统类型、挂载点及安全选项(如noatime,uid,gid)写入并用mount -a验证。

mount 是临时挂载,fstab 是开机自动挂载
你执行 mount /dev/sdb1 /mnt/usb,设备就挂上了——但只要重启,它就消失。而 /etc/fstab 是系统启动时读取的“挂载清单”,只有写进这里,设备才会每次开机自动就位。
关键区别在于生命周期:mount 是运行时操作,fstab 是声明式配置。两者不是替代关系,而是协作关系——你常先用 mount 测试挂载是否成功,再把参数抄进 fstab。
- 手动挂载失败?先检查设备是否存在:
lsblk或blkid - fstab 配错导致无法开机?别慌,进 recovery 模式用
mount -o remount,rw /重新挂载根分区再编辑 - 修改 fstab 前务必备份:
sudo cp /etc/fstab /etc/fstab.bak
fstab 第一字段必须用 UUID,别碰 /dev/sdX
设备路径如 /dev/sda1 在多硬盘、热插拔或内核加载顺序变化时极易错位——今天是 sda1,明天可能变 sdb1。UUID 才是真正稳定的设备身份证。
查 UUID 很简单:sudo blkid,输出里找你要的分区,复制那一长串 UUID="..."。fstab 中就写成:UUID=1234abcd-5678-ef90-1234-567890abcdef。
- NTFS 分区推荐用
ntfs3(Linux 5.15+ 内置)而非ntfs-3g,性能更好、无需额外安装 - vfat/U 盘记得加
uid=1000,gid=1000,umask=022,否则普通用户看不到文件或无法写入 - 挂载点目录(第二字段)必须提前创建,且不能是其他文件系统的挂载点
mount -a 是 fstab 的“试运行”命令
改完 fstab 后别直接重启,先跑一遍 sudo mount -a。它会按 fstab 逐行尝试挂载,出错立刻报错(比如设备不存在、类型写错、目录没建),方便当场修正。
常见错误信息直译:
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
-
mount: /mnt/data: wrong fs type→Type字段填错了,比如把 ntfs 写成 ntfs-3g(新内核应写ntfs3) -
mount: /mnt/data: failed to setup loop device→ 挂载点目录不存在,或权限不对(需 root 可写) - 无报错但没挂上?检查第六字段
fsck是否为 0(NTFS/vfat 必须是 0,否则 mount -a 会跳过)
挂载选项 defaults 不万能,ro/rw 和 noatime 得手动加
defaults 看似省事,实际等价于 rw,suid,dev,exec,auto,nouser,async——对 U 盘或 NTFS 盘来说,exec 允许执行程序可能有安全风险,suid 更是多余甚至危险。
更稳妥的组合:
- U 盘/移动硬盘:
noatime,uid=1000,gid=1000,umask=002(禁访问时间更新 + 普通用户可读写) - 只读光盘或备份盘:
ro,noatime(防止误写 + 提升性能) - SSD 上的 ext4 分区:
noatime,discard(减少写入 + 支持 TRIM)
注意:errors=remount-ro 对机械硬盘很有用,万一文件系统出错,自动切只读保数据;但 SSD 或只读设备上没必要加。
最易被忽略的一点:fstab 里任何一行末尾多一个空格、少一个制表符、注释没用 # 开头,都可能导致整行失效甚至系统卡在启动界面。写完务必用 sudo findmnt --verify(若支持)或至少 sudo mount -a 验证。









