linux系统中fstab 各字段详细说明

在 Ubuntu(和其他 Linux 系统)中,/etc/fstab(File System Table)文件用于定义系统启动时自动挂载的磁盘分区、网络存储和其他文件系统。它的每一行代表一个挂载项,由 6 个字段 组成,用空格或制表符分隔。


/etc/fstab 文件结构

每行格式如下:

复制代码
<设备标识>  <挂载点>  <文件系统类型>  <挂载选项>  <dump备份标志>  <fsck检查顺序>

示例:

复制代码
UUID=123e4567-e89b-12d3-a456-426614174000  /mnt/data  ext4  defaults  0  2

1. <设备标识>(Device Identifier)

指定要挂载的存储设备,可以是:

  • UUID=... (推荐)

    设备的唯一标识符,避免设备名(如 /dev/sda1)因硬件变化而改变。

    获取方式:

    复制代码
    sudo blkid
    复制代码
    UUID=123e4567-e89b-12d3-a456-426614174000
  • /dev/sdXY (如 /dev/sda1)

    传统方式,但设备名可能因插拔顺序变化(不推荐)。

  • LABEL=... (分区标签)

    如果分区有标签(如 LABEL="Data"),可以使用:

    复制代码
    LABEL=Data
  • NFS/网络存

    复制代码
    192.168.1.100:/share

2. <挂载点>(Mount Point)

指定文件系统的挂载目录,必须是已存在的路径。

常见挂载点:

  • /(根分区)

  • /home(用户目录)

  • /mnt/data(自定义数据盘)

  • /media/usb(U盘/移动设备)

示例:

复制代码
/mnt/data

3. <文件系统类型>(Filesystem Type)

指定分区的文件系统类型,常见的有:

文件系统 说明
ext4 Linux 默认文件系统
xfs 高性能文件系统(适用于大文件)
btrfs 支持快照和压缩
ntfs Windows NTFS(需 ntfs-3g)
vfat FAT32(U盘/旧Windows)
swap 交换分区
nfs 网络文件系统
tmpfs 内存临时文件系统

示例:

复制代码
ext4

4. <挂载选项>(Mount Options)

控制文件系统的挂载行为,多个选项用逗号分隔(如 defaults,noatime)。

常见选项

选项 说明
defaults 默认选项(rw,suid,dev,exec,auto,nouser,async)
rw / ro 可读写 / 只读
noexec 禁止执行该分区的程序
nosuid 禁止 SUID/SGID 权限(提升安全性)
nodev 禁止设备文件(提升安全性)
noatime 不更新访问时间(提升性能)
relatime 优化访问时间更新(平衡性能与兼容性)
nofail 启动时忽略挂载失败(适用于非关键设备)
user 允许普通用户挂载(不安全,慎用)
uid=1000,gid=1000 设置挂载后的所有者(如 NTFS)

示例:

复制代码
defaults,noatime,nofail

5. <dump备份标志>(Dump Flag)

控制 dump 备份工具是否备份该文件系统:

  • 0 = 不备份(默认)

  • 1 = 需要备份(通常仅用于根分区 /)

示例:

复制代码
0

6. <fsck检查顺序>(Filesystem Check Order)

控制 fsck 在启动时检查文件系统的顺序:

  • 0 = 不检查(如 swap、tmpfs、NFS)

  • 1 = 最先检查(通常用于根分区 /)

  • 2+ = 按数字顺序检查(其他分区)

示例:

复制代码
2

完整示例

1. 普通 ext4 分区

复制代码
UUID=123e4567-e89b-12d3-a456-426614174000  /mnt/data  ext4  defaults,noatime  0  2

2. NTFS 分区(Windows 磁盘)

复制代码
UUID=9012EFAB-CD34-5678-90AB-CDEF12345678  /mnt/ntfs  ntfs-3g  defaults,windows_names,uid=1000,gid=1000  0  0

3. Swap 交换分区

复制代码
UUID=abcdef12-3456-7890-abcd-ef1234567890  none  swap  sw  0  0

4. NFS 网络共享

复制代码
192.168.1.100:/share  /mnt/nfs  nfs  defaults  0  0

5. tmpfs(内存临时文件系统)

复制代码
tmpfs  /tmp  tmpfs  defaults,noexec,nosuid,size=2G  0  0

注意事项

  1. 使用 UUID 而非 /dev/sdX,避免设备名变化导致挂载失败。

  2. 修改前备份 fstab:

    bash

    复制代码
    sudo cp /etc/fstab /etc/fstab.bak
  3. 测试配置:

    bash

    复制代码
    sudo mount -a

    若无报错,则配置正确。

  4. 如果挂载失败:

    • 检查 dmesg | tail 或 journalctl -xe 查看错误日志。

    • 临时挂载:

      复制代码
      sudo mount /mnt/data

总结

字段 说明 示例
设备标识 UUID、/dev/sdX 或 LABEL UUID=123...
挂载点 目标目录 /mnt/data
文件系统 ext4、ntfs、swap 等 ext4
挂载选项 defaults、noatime 等 defaults,nofail
dump 标志 0(不备份)或 1(备份) 0
fsck 顺序 0(不检查)、1(优先检查) 2

通过正确配置 /etc/fstab,可以确保系统启动时自动挂载所需的文件系统。

相关推荐
吹什么轩12 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
殷忆枫12 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
第404号工位12 小时前
手机到底有没有偷听我们?我抓包了 72 小时,抓到了真凶
linux·人工智能·架构
字节跳动开源12 小时前
ByteDance 2026 上半年 Linux 内核贡献回顾
linux·开源
小此方13 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络
刚入门的大一新生13 小时前
Linux-进程池
linux·运维·服务器
鱼很腾apoc14 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
刚入门的大一新生14 小时前
Linux-进程间通信1
linux·运维·服务器
张宇Joaquin15 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库
道虽迩,不行不至15 小时前
数据库自动连库执行增量脚本-Linux
linux·数据库