参考文章:
- 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 个字段组成,每个字段通过空格或制表符分隔。字段的顺序非常重要,具体如下:
- <设备文件> <挂载点> <文件系统类型> <挂载选项> <dump> <fsck>
复制代码 2.1 设备文件 (Device)
这是指需要挂载的设备或分区。可以通过多种方式指定设备,常见的几种方式包括:
- 设备名:直接使用物理设备名或分区名,如 /dev/sda1,表现第一个硬盘的第一个分区。
- UUID:每个分区都有一个唯一标识符 (UUID),使用 UUID=xxxx-xxxx-xxxx 格式可以更加稳定地标识设备,由于设备名在不同的启动过程中可能会改变。
- LABEL:如果为分区设置了标签 (Label),可以通过 LABEL=MyData 的方式引用设备。
- /dev/sda1 /boot ext4 defaults 0 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:网络文件体系,允许从长途服务器挂载文件体系。
- # 示例
- /dev/sda1 /boot ext4 defaults 0 2
- /dev/sda5 none swap sw 0 0
- 192.168.1.100:/shared /mnt/nfs nfs defaults 0 0
复制代码 2.4 挂载选项 (Mount Options)
挂载选项控制文件体系的行为。这些选项以逗号分隔,组合使用时不要有空格。不同的文件体系范例所对应的挂载选项会有所不同,根据实际文件体系范例设置相应的参数。
例如 NFS 范例的就有好多特有的参数:
- 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 目录时)才会自动挂载。此选项制止了体系启动时挂载失败的题目,由于它只在需要时挂载。
- # 示例
- /dev/sda2 /media/usb vfat noauto,user,exec,rw 0 0
复制代码 这行代码表现挂载一个 U 盘,使用 vfat 文件体系,指定普通用户可以挂载且文件体系可以读写,挂载时还允许实行文件,但不会自动挂载。
2.5 Backup Operation(dump 参数)
这是一个很少使用的字段,指定是否启用 dump 备份步伐。通常为 0 或 1:
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 等),检查顺序可以根据需要设置。
- 如果数字雷同,则会按照文件中的出现顺序来举行检查。
例如:
- # 示例
- /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 常见的本地磁盘配置
- UUID=2b4e9d04-29e9-xxx / ext4 defaults 0 1
- UUID=550e8400-e29b-xxx /home ext4 defaults 0 2
- /dev/sda5 none swap sw 0 0
复制代码 这段配置代表了以下内容:
- 根文件体系 / 挂载在 ext4 文件体系上,并设置为在体系启动时起首举行文件体系检查。
- /home 挂载在单独的分区上,使用 ext4 文件体系。
- 互换分区 swap 被定义但没有挂载点。
3.2 NFS 挂载
- 192.168.1.100:/shared /mnt/nfs nfs defaults 0 0
复制代码 这是一个挂载网络文件体系的示例。它将长途服务器 192.168.1.100 上的 /shared 目录挂载到本地 /mnt/nfs。
3.3 U 盘自动挂载配置
- /dev/sdb1 /mnt/usb vfat noauto,user,exec,rw 0 0
复制代码 这段配置表现将 U 盘挂载到 /mnt/usb,使用 vfat 文件体系,并且允许普通用户手动挂载、读写 U 盘,并实行其中的文件。
3.4 更多…
/etc/fstab 是一个重要的配置文件,它决定了体系的存储设备如何挂载以及如何管理文件体系。在实际使用中,正确配置 /etc/fstab 能够提拔体系性能、简化存储管理,并确保体系启动时自动挂载关键分区。
凑个图,图文并茂,哈哈哈哈!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |