Linux 再入门整理:详解 /etc/fstab 文件

打印 上一主题 下一主题

主题 819|帖子 819|积分 2459

参考文章:
  

  • https://www.redhat.com/sysadmin/etc-fstab
  • https://wiki.archlinux.org/title/Fstab
  1. 什么是 /etc/fstab

/etc/fstab 文件是 Linux 体系中用于定义和管理文件体系的挂载信息的配置文件。它的作用是告诉体系在启动时,应该如何自动挂载各种文件体系。挂载是 Linux 使用体系中一种将存储设备与目录树关联的使用。通过挂载,存储设备中的文件可以通过目录访问。
2. /etc/fstab 文件的格式

/etc/fstab 文件的每一行描述了一个文件体系或设备的挂载信息,通常由 6 个字段组成,每个字段通过空格或制表符分隔。字段的顺序非常重要,具体如下:
  1. <设备文件>  <挂载点>  <文件系统类型>  <挂载选项>  <dump>  <fsck>
复制代码
2.1 设备文件 (Device)

这是指需要挂载的设备或分区。可以通过多种方式指定设备,常见的几种方式包括:


  • 设备名:直接使用物理设备名或分区名,如 /dev/sda1,表现第一个硬盘的第一个分区。
  • UUID:每个分区都有一个唯一标识符 (UUID),使用 UUID=xxxx-xxxx-xxxx 格式可以更加稳定地标识设备,由于设备名在不同的启动过程中可能会改变。
  • LABEL:如果为分区设置了标签 (Label),可以通过 LABEL=MyData 的方式引用设备。
  1. /dev/sda1        /boot           ext4    defaults        0  2
  2. UUID=550e8400-e29b-41d4-a716-446655440000  /home  ext4  defaults 0 2
复制代码
2.2 挂载点 (Mount Point)

这是文件体系挂载的位置,即它在目录树中的路径。挂载点可以是任何一个空目录。例如:


  • / 表现根文件体系。
  • /home 表现用户目录挂载点。
  • /mnt/data 是一个常用的手动挂载位置。
  • /media/data 是一个常用的手动挂载位置。
  • none 表现文件体系不挂载到特定的路径,通常用于 swap 分区。
2.3 文件体系范例 (File System Type)

这是指定文件体系范例的字段,它告诉内核如那里理该分区。常见的文件体系范例包括:


  • ext4:现在大多数 Linux 体系的默认文件体系,支持日志记录和大文件。
  • xfs:高性能文件体系,特别适合大数据和企业级存储环境。
  • vfat:FAT32 文件体系,用于 U 盘和移动设备兼容 Windows 体系的环境。
  • ntfs:Windows NT 文件体系,实用于从 Linux 访问 Windows 分区。
  • swap:互换分区,用于虚拟内存扩展。
  • nfs:网络文件体系,允许从长途服务器挂载文件体系。
  1. # 示例
  2. /dev/sda1        /boot           ext4    defaults        0  2
  3. /dev/sda5        none            swap    sw              0  0
  4. 192.168.1.100:/shared /mnt/nfs  nfs   defaults  0 0
复制代码
2.4 挂载选项 (Mount Options)

挂载选项控制文件体系的行为。这些选项以逗号分隔,组合使用时不要有空格。不同的文件体系范例所对应的挂载选项会有所不同,根据实际文件体系范例设置相应的参数。

例如 NFS 范例的就有好多特有的参数:
  1. 192.168.1.100:/data  /mnt/nfs  nfs  defaults,rw,hard,intr,rsize=8192,wsize=8192,timeo=14  0  0
复制代码

常见的挂载选项有:


  • defaults:这是一组默认的选项,包括 rw(读写)、suid(允许 setuid 位)、dev(解释字符和块设备)、exec(允许可实行文件)、auto(自动挂载)、nouser(用户无法挂载)、async(异步 I/O 使用)。
  • ro/rw:以只读 (ro) 或读写 (rw) 模式挂载。
  • noatime:不更新文件访问时间,提拔性能,特别适合 SSD 和高性能服务器。
  • nodiratime:不更新目录访问时间,进一步优化性能。
  • user/nouser:user 允许普通用户挂载和卸载该文件体系,nouser 则仅允许 root 挂载。
  • sync/async:sync 选项意味着所有文件体系使用是同步的,async 则是异步的,async 是默认值。
  • noexec:禁止在文件体系上实行可实行文件。
  • nofail:纵然设备在启动时不可用,体系仍会继承正常启动,不会中断或进入应急模式。此时,体系只会记录设备挂载失败的错误信息,但不会影响整体启动过程。
  • noauto:文件体系不会在体系启动时自动挂载,用户需要手动实行 mount 下令来挂载它。这个选项实用于不常用的设备或网络文件体系,防止因设备不可用导致的错误。
  • x-systemd.automount:文件体系在初次访问时(例如用户尝试访问 /mnt/usb 目录时)才会自动挂载。此选项制止了体系启动时挂载失败的题目,由于它只在需要时挂载。
  1. # 示例
  2. /dev/sda2   /media/usb   vfat    noauto,user,exec,rw  0  0
复制代码
这行代码表现挂载一个 U 盘,使用 vfat 文件体系,指定普通用户可以挂载且文件体系可以读写,挂载时还允许实行文件,但不会自动挂载。
2.5 Backup Operation(dump 参数)

这是一个很少使用的字段,指定是否启用 dump 备份步伐。通常为 0 或 1:


  • 0:不备份该分区。
  • 1:允许 dump 备份。
2.6 Pass Order (fsck 参数)

准确来说,/etc/fstab 中的末了一列是 pass order,但是这个数字值是用来决定体系在启动时使用 fsck 工具检查文件体系的顺序。不同的发行版根分区(/)与 /boot 分区默认的数字值是不同的
   fsck 工具= File System Consistency Check (文件系同同等性检查) 工具
  2.6.1 参数设置

该字段指定体系启动时是否检查文件体系的完备性以及检查的顺序:


  • 0:不检查该文件体系。通常对 swap 分区或长途挂载(如 NFS)使用。
  • 1:通常用于根分区( / ),表现启动时起首检查这个分区。
  • 2:一般用于对其他分区举行检查( /home、/var 等),检查顺序可以根据需要设置。
  • 如果数字雷同,则会按照文件中的出现顺序来举行检查。
例如:
  1. # 示例
  2. /dev/sda1   /boot           ext4    defaults        0  2
复制代码
fsck 在体系启动时会检查 /boot 分区,但优先级低于根文件体系(/,其优先级为 1)
2.6.2 不同发行版默认参数

不同发行版的版本以及不同的安装配置都会影响该参数。
发行版根分区 //boot/boot/efi是否默认启用 fsck 检查CentOS/RHEL000否(不会自动检查)Ubuntu/Debian121是(自动检查)Arch Linux121是(自动检查)Fedora120是(自动检查)openSUSE120是(自动检查)Gentoo120是(自动检查) 以 Ubuntu 为例,当体系启动时,fsck 会根据 fstab 中定义的 pass order 来决定哪些文件体系需要检查。体系会起首检查那些 pass order 为 1 的分区,通常是根分区 /,然后再检查 pass order 为 2 的其他分区。如果某个文件体系的 pass order 设置为 0,则它不会被检查。

/boot 与 /boot/efi 区别:


  • /boot/efi 是专门为 UEFI 启动体系设计的目录,用于挂载 EFI 体系分区(ESP)。UEFI 是 BIOS 的继任者,提供了更现代的启动机制;通过 GPT(GUID 分区表) 启动,通常格式化为 vfat 文件体系。
  • /boot 用于传统较老的(BIOS、Legacy BIOS)启动体系设计的目录;通过 MBR(主引导记录) 引导。
2.6.3 设置为 0 的缘故原由


  • 启动时间优化:许多服务器或高可用体系要求只管减少启动时间,fsck 在大分区或多个分区时检查时间较长,故一些发行版(如 CentOS/RHEL)会选择关闭自动检查。
  • 管理员手动控制:某些场景下,体系管理员希望通过手动方式定期检查文件体系,而不是每次启动时依赖自动检查。因此选择将 pass order 设置为 0。
  • 现代文件体系的可靠性:现代文件体系(如 ext4、xfs 等)已经非常稳定,不像早期的文件体系那样轻易堕落,因此有时并不需要频仍运行 fsck。
  • 大规模部署环境:在一些大规模服务器部署环境中(如使用 CentOS/RHEL 的数据中心),自动检查文件体系可能会导致体系不可预测的启动时间波动,因此关闭启动时的检查以制止体系长时间不可用。
  • more…
3. 常见示例

接下来,通过一些常见的 /etc/fstab 配置示例,进一步展示如何为不同的分区或设备配置文件体系挂载。
3.1 常见的本地磁盘配置

  1. UUID=2b4e9d04-29e9-xxx  /        ext4    defaults       0  1
  2. UUID=550e8400-e29b-xxx  /home    ext4    defaults       0  2
  3. /dev/sda5               none     swap    sw             0  0
复制代码
这段配置代表了以下内容:


  • 根文件体系 / 挂载在 ext4 文件体系上,并设置为在体系启动时起首举行文件体系检查。
  • /home 挂载在单独的分区上,使用 ext4 文件体系。
  • 互换分区 swap 被定义但没有挂载点。
3.2 NFS 挂载

  1. 192.168.1.100:/shared /mnt/nfs  nfs  defaults  0 0
复制代码
这是一个挂载网络文件体系的示例。它将长途服务器 192.168.1.100 上的 /shared 目录挂载到本地 /mnt/nfs。
3.3 U 盘自动挂载配置

  1. /dev/sdb1  /mnt/usb  vfat  noauto,user,exec,rw  0  0
复制代码
这段配置表现将 U 盘挂载到 /mnt/usb,使用 vfat 文件体系,并且允许普通用户手动挂载、读写 U 盘,并实行其中的文件。
3.4 更多…

  1. More And More ....
复制代码

/etc/fstab 是一个重要的配置文件,它决定了体系的存储设备如何挂载以及如何管理文件体系。在实际使用中,正确配置 /etc/fstab 能够提拔体系性能、简化存储管理,并确保体系启动时自动挂载关键分区。
凑个图,图文并茂,哈哈哈哈!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表