深入解析 /etc/fstab:大多数运维都容易忽略的系统启动关键点!
今天分享一下系统自动挂载文件:/etc/fstab。
应该很多人遇到过下面这种情况。
进不去系统了,大概率可能是两种原因:第一是文件系统损坏了,第二种是/etc/fstab文件没配置好,导致系统自动挂载时失败。
接下来就详细介绍一下。
一、/etc/fstab 简介
/etc/fstab 是 Linux 系统启动时自动挂载文件系统的配置表。它的全称是 File Systems Table,系统在启动时会参考它来自动执行 mount 操作。
在生产环境中,fstab 影响着:
系统能否成功启动(挂载失败会进入 emergency 模式)分区是否以正确方式挂载(只读?缓存策略?用户挂载?)是否自动挂载 swap、RAID、NFS 等资源性能和安全策略的预设(如 noatime、nosuid)二、/etc/fstab内容详解
格式如下,每行一个挂载配置,共六个字段:
可以是:
/dev/sdX:传统设备名,不稳定【容易留坑】UUID=xxxx:推荐,唯一标识设备【推荐使用】LABEL=label:标签,更易识别【我很少用】网络路径:如 10.0.0.110:/data/nfs/share【NFS挂载常用】查 UUID:
更改标签:
挂载点必须存在,没有的话需要提前创建目录,否则系统启动会失败,这个根据需求自定义就行。
创建目录:
常见类型:
类型
场景
ext3/ext4
通用 Linux 文件系统
xfs
大量数据写入、高性能
btrfs
支持快照、压缩等
nfs
网络挂载
swap
虚拟内存分区
tmpfs
内存文件系统
使用 lsblk -f 查看类型。
第4列 挂载选项这是重中之重,常见选项如下:
选项
含义
defaults
rw, suid, dev, exec, auto, nouser, async
noatime
访问文件时不更新 atime,提升性能
nodiratime
同上,但仅目录
ro
/ rw
只读 / 读写挂载【默认读写挂载】
nosuid
禁用 SUID 程序,增强安全性
nodev
禁用设备文件
noexec
禁止执行文件
relatime
折中方案,默认选项
discard
启用 SSD 的 TRIM 操作
user
/ users
允许普通用户挂载
我大多数情况只用defaults选项。
性能建议:
对于大多数数据盘,推荐:是否启用 dump 命令进行备份,大多数情况设为 0,1就是启用。
第6列:fsck 顺序控制开机时的文件系统检查顺序:
0:不检查1:通常是根分区 /2:其它分区(如 /home、/data)切记不要多个设置为 1,否则引发 fsck 混乱!
三、注意事项
配置完 fstab 后,永远不要直接 reboot!
先执行:
它会按 /etc/fstab 模拟一次挂载,能否成功挂载全凭这条命令的反馈。如果这里挂载有问题,就会出现我开始放那个截图一样,会让你进入紧急模式。
四、系统挂载失败的应急方案
要是上面一个步骤你修改完/etc/fstab,没有检查并且配置错误,还reboot了服务器,大概率进去下面的界面
怎么办,也很简单,直接输入密码后,将/etc/fstab文件配置修改正确就行,也是执行mount -a没问题后重启。
五、运维实战用法
1. 自动挂载 NFS 文件系统_netdev 确保网络就绪后挂载,防止开机挂载失败
2. 使用UUID挂载比如你新增一个/dev/sdb,你需要先找出/dev/sdb的UUID,然后第一列就使用UUID,不要使用设备名称
这个主要用于加速临时目录读写,不过我比较少用
适用于缓存、构建临时文件存储等。
4. 挂载 ISO 镜像再次强调,配置完要记得mount -a检查一下。