/etc/fstab 是 Linux 系统中用于定义文件系统静态挂载信息的核心配置文件。系统启动时,内核会读取该文件并自动挂载指定的文件系统。
该文件每一行代表一个文件系统的挂载配置,共包含 6 个字段,字段之间通常使用空格或 Tab 键分隔。以下是各字段的详细含义:
1. 设备标识 (File System / Device)
指定要挂载的存储设备、分区或远程文件系统。
- 常见格式:
- 设备路径:如
/dev/sda1、/dev/hda1(传统 IDE 设备)。
- UUID:如
UUID=3e6be9de-...。推荐使用,因为 UUID 是设备的唯一标识,即使硬件连接顺序改变(如增加硬盘导致设备名从 sdb 变为 sdc),UUID 也不会变,从而保证挂载的稳定性。
- LABEL:如
LABEL=DATA,使用卷标识别。
- 网络路径:如
192.168.1.100:/share(用于 NFS 挂载)。
- 伪文件系统:如
proc、tmpfs、swap。对于 swap 分区或某些虚拟文件系统,此字段有时也写为 none。
2. 挂载点 (Mount Point)
指定文件系统挂载到目录树中的哪个目录。
- 要求:该目录必须事先存在(根目录
/ 除外)。如果目录不存在,系统启动时会报错或进入紧急模式。
- 特殊值:对于 swap 分区,此字段通常填写
none。
- 注意:如果挂载点路径中包含空格,需使用
\040 代替空格。
3. 文件系统类型 (Type)
指定分区或设备上使用的文件系统格式。
- 常见类型:
ext4、ext3、ext2:Linux 常用文件系统。
xfs:高性能文件系统,常用于 RHEL/CentOS。
vfat、ntfs:Windows 兼容文件系统(U盘、移动硬盘常用)。
iso9660:光盘镜像。
swap:交换分区。
tmpfs:基于内存的文件系统。
nfs、cifs:网络文件系统。
auto:让系统自动检测文件系统类型(常用于光驱等可移动介质)。
4. 挂载选项 (Options)
指定挂载时的参数和行为,多个选项之间用逗号 , 分隔,不能有空格。
- 常用选项:
defaults:使用默认设置,等价于 rw, suid, dev, exec, auto, nouser, async。
rw:读写模式。
ro:只读模式。
exec / noexec:允许 / 禁止执行二进制文件。
suid / nosuid:允许 / 禁止 SUID 位。
dev / nodev:解析 / 不解析块特殊设备。
auto / noauto:启动时自动挂载 / 不自动挂载(需手动 mount)。
user / nouser:允许普通用户挂载 / 仅 root 可挂载。
async / sync:异步 / 同步 I/O。
noatime / nodiratime:不更新文件或目录的访问时间,可显著提升磁盘性能。
discard:启用 SSD 的 TRIM 功能,优化 SSD 寿命和性能。
_netdev:表示该设备需要网络连接(如 NFS、iSCSI),确保在网络启动后才尝试挂载,防止启动卡死。
nofail:如果挂载失败,系统继续启动而不进入紧急模式(适用于非关键设备,如外接硬盘)。
5. 备份频率 (Dump)
指定 dump 备份工具是否对该文件系统进行备份。
- 0:不进行备份(大多数现代系统设为 0,因为很少使用 dump 工具)。
- 1:进行备份。
6. 文件系统检查顺序 (Pass / Fsck Order)
指定系统启动时 fsck 工具检查文件系统的顺序。
- 0:不进行检查。
- 1:最高优先级,通常仅用于根文件系统
/。
- 2:次要优先级,用于其他需要检查的文件系统(如
/home、/var 等)。
- 注意:根分区必须设为 1,其他分区设为 2 或 0。如果有多个分区设为 1,可能会导致启动混乱或并行检查冲突。Swap 分区和 tmpfs 通常设为 0。
示例解析
UUID=abcd-1234 / ext4 defaults 0 1
/dev/sdb1 /data xfs defaults,noatime 0 2
none swap swap defaults 0 0
- 第一行:使用 UUID 标识根分区,挂载到
/,类型为 ext4,使用默认选项,不备份,启动时优先检查。
- 第二行:设备
/dev/sdb1 挂载到 /data,类型 xfs,启用默认选项且不更新访问时间(提升性能),不备份,启动时次级检查。
- 第三行:交换分区,无具体挂载点,类型 swap,默认选项,不备份,不检查。
重要提示
- 修改前备份:编辑
/etc/fstab 前务必备份原文件(如 cp /etc/fstab /etc/fstab.bak)。
- 测试配置:修改后不要直接重启,应先执行
mount -a 命令。如果该命令没有报错,说明配置语法正确且设备可挂载;如果报错,请立即修正,否则重启后可能无法进入系统。