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

news2024/12/23 1:31:05

目录

  • 1. 什么是 /etc/fstab
  • 2. /etc/fstab 文件的格式
    • 2.1 设备文件 (Device)
    • 2.2 挂载点 (Mount Point)
    • 2.3 文件系统类型 (File System Type)
    • 2.4 挂载选项 (Mount Options)
    • 2.5 Backup Operation(dump 参数)
    • 2.6 Pass Order (fsck 参数)
      • 2.6.1 参数设置
      • 2.6.2 不同发行版默认参数
      • 2.6.3 设置为 0 的原因
  • 3. 常见示例
    • 3.1 常见的本地磁盘配置
    • 3.2 NFS 挂载
    • 3.3 U 盘自动挂载配置
    • 3.4 更多...

参考文章:

  • 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)

挂载选项控制文件系统的行为。这些选项以逗号分隔,组合使用时不会有空格。常见的挂载选项有:

  • defaults:这是一组默认的选项,包括 rw(读写)、suid(允许 setuid 位)、dev(解释字符和块设备)、exec(允许可执行文件)、auto(自动挂载)、nouser(用户无法挂载)、async(异步 I/O 操作)。
  • ro/rw:以只读 (ro) 或读写 (rw) 模式挂载。
  • noatime:不更新文件访问时间,提升性能,特别适合 SSD 和高性能服务器。
  • nodiratime:不更新目录访问时间,进一步优化性能。
  • user/nouseruser 允许普通用户挂载和卸载该文件系统,nouser 则仅允许 root 挂载。
  • sync/asyncsync 选项意味着所有文件系统操作是同步的,async 则是异步的,async 是默认值。
  • noauto:不自动挂载,需要手动挂载。
  • noexec:禁止在文件系统上执行可执行文件。
# 示例
/dev/sda2   /media/usb   vfat    noauto,user,exec,rw  0  0

这行代码表示挂载一个 U 盘,使用 vfat 文件系统,指定普通用户可以挂载且文件系统可以读写,挂载时还允许执行文件,但不会自动挂载。

2.5 Backup Operation(dump 参数)

这是一个很少使用的字段,指定是否启用 dump 备份程序。通常为 01

  • 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 等),检查顺序可以根据需要设置。
  • 如果数字相同,则会按照文件中的出现顺序来进行检查。

例如:

# 示例
/dev/sda1   /boot           ext4    defaults        0  2

fsck 在系统启动时会检查 /boot 分区,但优先级低于根文件系统(/,其优先级为 1

2.6.2 不同发行版默认参数

发行版根分区 //boot是否默认启用 fsck 检查
CentOS/RHEL00否(不会自动检查)
Ubuntu/Debian12是(自动检查)
Arch Linux12是(自动检查)
Fedora12是(自动检查)
openSUSE12是(自动检查)
Gentoo12是(自动检查)

Ubuntu 为例,当系统启动时,fsck 会根据 fstab 中定义的 pass order 来决定哪些文件系统需要检查。系统会首先检查那些 pass order1 的分区,通常是根分区 /,然后再检查 pass order2 的其他分区。如果某个文件系统的 pass order 设置为 0,则它不会被检查。

2.6.3 设置为 0 的原因

  1. 启动时间优化:很多服务器或高可用系统要求尽量减少启动时间,fsck 在大分区或多个分区时检查时间较长,故一些发行版(如 CentOS/RHEL)会选择关闭自动检查。
  2. 管理员手动控制:某些场景下,系统管理员希望通过手动方式定期检查文件系统,而不是每次启动时依赖自动检查。因此选择将 pass order 设置为 0
  3. 现代文件系统的可靠性:现代文件系统(如 ext4xfs 等)已经非常稳定,不像早期的文件系统那样容易出错,因此有时并不需要频繁运行 fsck
  4. 大规模部署环境:在一些大规模服务器部署环境中(如使用 CentOS/RHEL 的数据中心),自动检查文件系统可能会导致系统不可预测的启动时间波动,因此关闭启动时的检查以避免系统长时间不可用。
  5. 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 更多…

More And More ....

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

凑个图,图文并茂,哈哈哈哈!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2183545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 进程的基本概念及描述

目录 0.前言 1. 什么是进程 1.1 进程的定义与特性 1.2 进程与线程的区别 2.描述进程 2.1 PCB (进程控制块) 2.2 task_struct 3.查看进程 3.1 查看进程信息 3.1.1 /proc 文件系统 3.1.2 ps 命令 3.1.2 top 和 htop 命令 3.2 获取进程标识符 3.2.1使用命令获取PID 3.2.2 使用C语言…

开发环境搭建之VScode的安装及使用

VScode的下载及安装 Visual Stuio Code&#xff08;以下简称VSCode&#xff09;是微软出的一款免费开源的轻量级编辑器。VSCode支持多平台&#xff0c;有 Windows、Linux和macOS 三个版本&#xff0c;是一个跨平台的编辑器。可通过以下载链接获取&#xff1a;https://code.visu…

基于SpringBoot+Vue的毕业设计选题管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

从零开始搭建UVM平台(六)-加入env

书接上回&#xff1a; 从零开始搭建UVM平台&#xff08;一&#xff09;-只有uvm_driver的验证平台 从零开始搭建UVM平台&#xff08;二&#xff09;-加入factory机制 从零开始搭建UVM平台&#xff08;三&#xff09;-加入objection机制 从零开始搭建UVM平台&#xff08;四&…

【Golang】关于Go语言中的包

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Oracle架构之数据库备份和RAC介绍

文章目录 1 数据库备份1.1 数据库备份分类1.1.1 逻辑备份与物理备份1.1.2 完全备份/差异备份/增量备份 1.2 Oracle 逻辑备份1.2.1 EXP/IMP1.2.1.1 EXP导出1.2.1.2 EXP关键字说明1.2.1.3 导入1.2.1.4 IMP关键字说明 1.2.2 EXPDP/IMPDP1.2.2.1 数据泵介绍1.2.2.2 数据泵的使用 1.…

【Android 源码分析】Activity生命周期之onPause

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

Linux操作常用问题

目录 Ubuntu操作问题vi编辑方向键键盘乱码回退键不能使用的问题解决问题的方法 Ubuntu操作问题 vi编辑方向键键盘乱码回退键不能使用的问题 编辑/etc/systemd/resolved.conf文件来修改DNS&#xff0c;结果编辑时键盘乱码&#xff0c;按下方向键会出现ABCD&#xff0c;且回退键…

解决json格式转换被特殊字符截断问题

SyntaxError&#xff1a;Unexpected end of JSON input 当我们使用navigateTo跳转传参的时候&#xff0c;在小程序中需要先转换为json字符串的格式化&#xff0c;但是如果我们传递的参数中有特殊字符的&#xff1f;/&amp的话&#xff0c;可能导致字符串被截断&#xff0c;此…

手搓游戏 —— 生成式 AI 助手 Amazon Q Developer 初体验

文章目录 一、Amazon Q介绍二、实验环境准备2.1 下载项目安装包2.2 验证 Python 环境2.3 安装Amazon Q扩展2.4 授权Builder ID 三、Amazon Q 快速理解main.py四、Amazon Q快速梳理控制器逻辑五、启动像素沙盒开放世界程序六、在 update() 中实现传送功能七、定位并修复代码漏洞…

【无人机设计与技术】自抗扰控制(ADRC)的建模与仿真研究

摘要 本文针对四旋翼无人机姿态控制系统进行了基于自抗扰控制(ADRC)的建模与仿真研究。通过MATLAB/Simulink仿真平台&#xff0c;实现了无人机的姿态控制模型&#xff0c;并采用自抗扰控制器(ADRC)对无人机的姿态进行控制。本文详细介绍了自抗扰控制器的设计方法和应用&#x…

机器学习模型评估

前言 承接上篇讲述了机器学习有哪些常见的模型算法&#xff0c;以及适用的场景&#xff0c;本篇将继续讲述如何评估模型。模型评估的目的是选出泛化能力强的模型。泛化能力强表示模型能很好地适用于未知的样本&#xff0c;模型的错误率低、精度高。本文将从评估方法和评估指标…

【开源鸿蒙】OpenHarmony 5.0.0 发布了,速来下载最新代码

【开源鸿蒙】OpenHarmony 5.0.0 发布了&#xff0c;速来下载最新代码 一、写在前面二、准备命令工具三、配置用户信息四、下载OpenHarmony源码4.1 使用ssh协议下载&#xff08;推荐&#xff09;4.2 使用https协议下载 五、下载编译工具链六、参考链接 今天是9月30号&#xff0c…

20道面试题001

常考语法就是指针&#xff0c;指针与数组、指针与字符串、指针与结构体、指针与函数之间的关系与使用&#xff0c; 以上课为准&#xff0c;辅助《深度理解C指针》这本书。 1. 指针与数组 定义: 数组名在表达式中通常被视为指向数组首元素的指针。 访问元素: 可以通过指针访问数…

计算机网络:计算机网络概述:网络、互联网与因特网的区别

文章目录 网络、互联网与因特网的区别网络分类 互联网因特网基于 ISP 的多层次结构的互连网络因特网的标准化工作因特网管理机构因特网的组成 网络、互联网与因特网的区别 若干节点和链路互连形成网络&#xff0c;若干网络通过路由器互连形成互联网 互联网是全球范围内的网络…

PWM驱动LED呼吸灯

背景知识&#xff1a;TIM输出比较-CSDN博客 stm32f10x_tim.h函数 // *** OC是Output Compare输出比较函数 void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TI…

给Windows系统设置代理的操作方法

一、什么是代理 网络代理是一种特殊的网络服务&#xff0c;允许一个网络终端通过这个服务与另一个网络终端进行非直接的连接&#xff0c;而提供代理服务的电脑系统或其它类型的网络终端被称为代理服务器。 代理服务器是网络信息的中转站&#xff0c;代理服务器就像是一个很大的…

56. QTreeWidget的基本使用

1. 说明 在软件开发中会遇到将数据信息制作成一种树目录的形式进行展示,那么此时就可以借助QT提供的QTreeWidget控件来实现这种需求,本篇博客会做一个案例简要说明这个控件的基本使用方法,博客中代码能够实现的功能是将此项目代码所在文件夹中的内容展示出来,如下图所示:…

模式识别编程实践1:身高和/或体重数据进行性别分类

&#x1f31e;欢迎莅临我的个人主页&#x1f448;&#x1f3fb;这里是我专注于深度学习领域、用心分享知识精粹与智慧火花的独特角落&#xff01;&#x1f349; &#x1f308;如果大家喜欢文章&#xff0c;欢迎&#xff1a;关注&#x1f377;点赞&#x1f44d;&#x1f3fb;评论…

回溯大总结

目录 0、基础什么是回溯&#xff1f;回溯法解决的问题回溯模板 1、组合问题77. 组合216.组合总和III17. 电话号码的字母组合39. 组合总和&#xff1a;40.组合总和II 0、基础 什么是回溯&#xff1f; 回溯是一种穷举的搜索算法&#xff0c;并不是一个高效的算法&#xff0c;当…