fstab 文件详解

1. fstab 文件介绍

  • fstab(filesystem table)文件包含了电脑上的存储设备及其文件系统的信息,它决定了一个硬盘(分区)被怎样使用
  • 使用 fstab 可以自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等
  • 对于 Windows 与 Linux 双操作系统用户,用 fstab 挂载 FAT 格式和 NTFS 格式的分区,可以在 Linux 中共享 Windows 系统下的资源
  • 文件的全路径是 /etc/fstab,它只是一个文本文件,需要 root 用户才能编辑它。同时 fsckmountumount 等命令都利用该程序
  • /etc/fstab 是启动时的配置文件,不过实际 filesystem 的挂载是记录到 /etc/mtab/proc/mounts 这两个文件当中的。每次更动 filesystem 的挂载时,也会同时更新这两个文件

2. 系统挂载的一些限制

  • 根目录 / 是必须挂载的,而且一定要先于其它 mount point 被挂载进来
  • 其它 mount point 必须为已创建的目录,可任意指定,但一定要遵守系统目录架构原则
  • 所有 mount point 在同一时间内只能挂载一次
  • 所有 partition 在同一时间内只能挂载一次
  • 如需进行卸载,需要先将工作目录移到 mount point 之外

3. 文件各字段解释

1
2
3
4
5
6
# <file system> <mountpoint>  <type>  <opts>          <dump> <pass>

/dev/sda10 /boot ext4 noauto,noatime 1 2
/dev/sda6 / ext4 noatime 0 1
/dev/sda9 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
  • <file system>:挂载设备(硬盘及其分区,DVD 光驱等)。它告知设备(分区)的名字,在命令行中挂载(mount)、卸载(umount)设备时要用到
  • <mountpoint>:挂载点,告诉设备挂载到哪里
  • <type>:文件系统类型。Linux 支持许多文件系统,典型的包括 ext2、ext3、ext4、nfs、tmpfs、xfs、swap 和 auto
    • auto 不是一个文件系统,而是让 mount 命令自动判断文件类型,特别对于可移动设备、软盘、DVD 驱动器,这样做是很有必要的,因为可能每次挂载的文件类型不一致
  • <opts>:文件系统参数,它能使挂载的设备在开机时自动加载、使中文显示不出现乱码、限制对挂载分区读写权限等。它与 mount 命令的用法相关
  • <dump>:备份命令,dump 会检查 entry 并用数字来决定是否对这个文件系统进行备份。允许的数字是 0 和 1。如果是 0,dump 就会忽略这个文件系统,如果是 1,dump 就会作一个备份。大部分的用户是没有安装 dump 的,所以应该写为 0
  • <pass>:是否以 fsck 检验扇区。启动过程中,系统默认会以 fsck 检验 filesystem 是否完整。不过某些 filesystem 是不需要检验的,例如内存置换空间 swap,或者是特殊文件系统例如 /proc 与 /sys 等等。fsck 会检查这个头目下的数字来决定检查文件系统的顺序,允许的数字是 0、1、2,0 是不需要检验,1 表示最早检验(一般只有根目录会配置为 1),2 也是要检验,不过比 1 晚。一般来说,根目录配置为 1,其他的要检验的 filesystem 配置为 2

4. <opts> 常用参数:

  • noatime:关闭 atime 特性,提高性能。这是一个很老的特性,放心关闭,还能减少 loadcycle

  • defaults:使用默认设置。等于 rw,suid,dev,exec,auto,nouser,async

  • 自动与手动挂载:

    • auto:在启动或在终端中输入 mount -a 时自动挂载
    • noauto:设备(分区)只能手动挂载
  • 读写权限:

    • ro:挂载为只读权限
    • rw:挂载为读写权限
  • 可执行:

    • exec:是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行
    • noexec:二进制文件不允许执行。千万不要在 root 分区中用这个选项!!!
  • I/O 同步:

    • sync:所有的 I/O 将以同步方式进行
    • async:所有的 I/O 将以非同步方式进行
  • 用户挂载权限:

    • user:允许任何用户挂载设备
    • nouser:只允许 root 用户挂载
  • 临时文件执行权限:

    • suid:允许 suid 和 sgid 位的操作。它们主要用于允许计算机系统上的用户以临时提升的权限执行二进制可执行文件,以执行特定任务
    • nosuid:阻止 suid 和 sgid 位的操作

参考