前置重要提醒
修改前先备份:
cp /etc/fstab /etc/fstab.$(date +%Y%m%d).bak写完必须校验:
mount -a,无报错才代表语法正常,避免开机卡死优先使用 UUID,不要用
/dev/sdb1,磁盘顺序变化会炸生产禁止随意使用
noatime、barrier=0这类高危参数,下面区分【通用稳妥】【高性能】【特殊场景】列顺序:
UUID | 挂载点 | fs类型 | 挂载参数 | dump | fsck
获取 UUID 命令:
blkid
# 过滤只看分区UUID
blkid | grep PARTUUID
模板总说明
✅ 规则:XFS 文件系统不支持 fsck,第六列必须是 0!
一、标准稳妥版(绝大多数业务服务器,推荐默认)
兼顾数据安全、稳定性,数据库、业务数据盘首选,不激进调参
# 根分区 ext4
UUID=ROOT-UUID-HERE / ext4 defaults,errors=remount-ro 0 1
# 独立 /boot 分区 ext4
UUID=BOOT-UUID-HERE /boot ext4 defaults,errors=remount-ro 0 2
# 数据盘 ext4(业务、日志、文件存储)
UUID=DATA-EXT4-UUID-HERE /data ext4 defaults,errors=remount-ro 0 2
# 数据盘 XFS(大数据、容器、对象存储,xfs不能fsck,第6列0)
UUID=DATA-XFS-UUID-HERE /data/xfs xfs defaults 0 0
# swap分区
UUID=SWAP-UUID-HERE swap swap defaults 0 0
参数解释:
defaults:rw,suid,dev,exec,auto,nouser,asyncerrors=remount-ro:ext4 检测到文件系统异常 → 自动重新只读挂载,防止进一步损坏(生产 ext4 必加)
二、高性能优化版(数据库、高 IO 业务,SSD/NVMe)
适合 MySQL / Redis / 消息队列、NVMe SSD,在数据安全可接受前提下优化 ⚠️ 注意:
relatime替代 atime;不要随便加 barrier=0(掉电丢数据风险,有 UPS+RAID 卡带电容才考虑)
# ext4 SSD 高性能
UUID=EXT4-SSD-UUID /data/db ext4 defaults,errors=remount-ro,relatime,commit=60 0 2
# XFS SSD 高性能(数据库常用)
UUID=XFS-SSD-UUID /data/xfsdb xfs defaults,relatime,logbufs=8,logbsize=256k 0 0
参数说明:
relatime:仅文件内容修改时更新访问时间,替代默认 atime,减少 IO(通用安全,推荐)commit=60:ext4 每 60 秒刷一次日志(默认 5 秒,降低刷盘压力;数据库业务建议保留 5,不要改大)xfs
logbufs=8,logbsize=256k:提升 xfs 日志吞吐,SSD 常用
❌ 不推荐直接上
noatime:审计场景会丢失访问时间日志;如果无审计需求可以替换 relatime。
三、容器 / 日志专用分区模板
隔离容器数据、日志,加安全限制,防止溢出、提权
# Docker数据盘 ext4
UUID=DOCKER-UUID /var/lib/docker ext4 defaults,errors=remount-ro,relatime,noexec,nosuid,nodev 0 2
# 日志分区 /var/log
UUID=LOG-UUID /var/log ext4 defaults,errors=remount-ro,relatime,noexec,nosuid,nodev 0 2
安全参数:
noexec:分区内程序不能直接执行(日志、容器盘很适合)nosuid:禁用 suid 权限位,防止提权nodev:不识别该分区上的设备文件
四、网络文件系统模板(NFS,生产共享存储)
网络文件系统 fsck 无效,第 6 列固定 0,增加软挂载超时,避免系统卡死
# NFS v4 标准生产模板
10.0.0.10:/srv/share /mnt/nfs nfs4 defaults,soft,timeo=600,retrans=2,rsize=1048576,wsize=1048576 0 0
参数:
soft:软挂载,超时返回错误;hard是硬挂载(服务断了进程会 hang 住,生产谨慎 hard)timeo=600,retrans=2:超时重试控制rsize/wsize:读写块大小,千兆 / 万兆网络优化
重要:NFS 服务端宕机时 hard 挂载会导致进程 D 状态卡死,业务服务器优先 soft
五、tmpfs 内存盘模板(缓存、临时文件)
# tmpfs /tmp 内存临时目录,限制大小
tmpfs /tmp tmpfs defaults,size=4G,mode=1777,noexec,nosuid,nodev 0 0
# 应用缓存内存盘
tmpfs /data/cache tmpfs defaults,size=8G,uid=1001,gid=1001 0 0
size:最大占用内存上限,不要超过物理内存 50%
mode=1777:和系统默认 /tmp 权限一致
六、LVM 逻辑卷(很多生产环境是 LVM)
LVM 同样用 UUID,和普通分区写法完全一致,blkid 一样可以拿到 LV 的 UUID:
UUID=LVM-DATA-UUID /data/lv ext4 defaults,errors=remount-ro 0 2
✅ 生产 fstab 落地操作步骤
#1 备份
cp /etc/fstab /etc/fstab.$(date +%Y%m%d).bak
#2 blkid 复制UUID
blkid
#3 编辑
vi /etc/fstab
#4 校验(最重要!)
mount -a
# 没有任何输出=成功;有报错立刻回滚备份
#5 查看挂载确认
df -h
❌ 生产黑名单(不要随便加)
barrier=0/nobarrier:ext4 关闭屏障,掉电极易丢数据,只有带 BBU RAID 卡才评估使用discard:线上 SSD 不建议线上实时 discard,改用定时 fstrim 任务更稳_netdev:网络盘才需要加,本地盘不要加;_netdev告诉 systemd 等网络就绪再挂载不要写
/dev/sda1 /dev/sdb2这种设备名,扩容、换盘、云主机换控制器都会变盘符
本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问