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 = 不检查(如 swaptmpfsNFS

  • 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 | tailjournalctl -xe 查看错误日志。

    • 临时挂载:

      复制代码
      sudo mount /mnt/data

总结

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

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

相关推荐
拾光Ծ1 天前
【Linux】“ 权限 “ 与相关指令
linux·运维·服务器
硬核子牙1 天前
调试器是怎么让代码停下来的
linux
To_再飞行1 天前
Linux Bash(一)
linux·运维·服务器·bash
LCG元1 天前
保姆级教程:CentOS 7/8 部署Nginx + MySQL + PHP(LEMP)环境,从零开始到上线项目
linux
疯癫的老码农1 天前
【Linux环境下安装】SpringBoot应用环境安装(五)-milvus安装
linux·spring boot·milvus
孤廖1 天前
C++ 模板再升级:非类型参数、特化技巧(含全特化与偏特化)、分离编译破解
linux·服务器·开发语言·c++·人工智能·后端·深度学习
油条不卖1 天前
本地window10同步ubuntu上conda指定环境,并在C#项目中通过Python.NET调用自定义python接口
linux·ubuntu·conda
6190083361 天前
linux 安装jdk
java·linux·运维
waves浪游1 天前
基础开发工具(中)
linux
艾莉丝努力练剑1 天前
【C++模版进阶】如何理解非类型模版参数、特化与分离编译?
linux·开发语言·数据结构·c++·stl