简介

在一般的 Unix 或者 类Unix 中,为了更好地管理磁盘资源,有时不得不挂载一个外部的磁盘,使用 mount 命令可以快速地挂载一个外部磁盘,具体用法为:

# 将磁盘分区 sda2 挂载在 /mnt 上
mount /dev/sda2 /mnt # 要查看有哪些磁盘分区是,可以通过 fdisk 命令来查看,添加对应地一些选项可以看到一些详细信息
# -l 表示列出分区
fdisk -l

挂载的时候会加载 /etc/fstab 内的配置选项,在挂载磁盘时使用对应的配置信息,如挂载的磁盘所用的文件系统类型等,下面是一个典型的 /etc/fstab 的内容:

每一行都对应着一块磁盘分区的挂载配置,每行总共有 6 个字段用于指定相关的配置信息,每个配置信息用一个或多个空格分开(注意 Unix 会把 Tab 转换为相同长度的空格)。以 “#” 开头的行的配置信息将会被忽略

这 6 个字段的对应信息如下所示(从左到右):

  • Device:第一个配置字段,表示挂载的磁盘分区,这些分区一般都可以在 /device/ 下找到,或者通过 fdisk 命令也可以查看到,但是现在大部分都是通过使用分区的 UUID 或者是对应的标签来指定(可以通过 blkid /dev/sda1 来查看 /dev/sda1 的 UUID 和标签)

  • Mount Point:第二个配置字段,表示挂载当前的磁盘分区的挂载位置,挂载完成之后这个目录就是磁盘分区的挂载点,可以通过这个挂载点来访问磁盘分区。指定的挂载位置最好指定一个空的目录。

  • File System Type:第三个配置字段,要挂载的磁盘分区的文件类型。同样地,可以通过 blkid 命令来查看对应地磁盘分区所属的文件系统类型

  • Options:第四个配置字段,表示挂载时内核会如何处理挂载的磁盘分区,这个字段可以同时指定多个选项,一般常见的可用选项如下所示:

  • auto、noauto

    auto 表示在 boot 引导系统启动时自动将这个磁盘分区进行挂载,noauto则表示这个磁盘分区应当被用户显式地进行挂载,即手动地挂载。当执行 mount -a 命令挂载 fstab 中的分区时,所有设置了 auto 选项的磁盘分区都会自动地进行挂载

  • exec、noexec

    exec 表示驻留在这个磁盘分区中地可执行文件能够被执行,而 noexec 则表示移除这个磁盘分区内可执行文件地可执行能力。如果要挂载的磁盘分区只是为了保留非可执行文件,那么将这些磁盘分区设置为 noexec 能够更好地维持系统地安全性

  • user、nouser

    user 选项指定能够挂载磁盘分区的用户,而 nouser 则表示只有 root 用户才能挂载分区。如果指定了能够挂载分区的用户,那么一定要确保挂载点对于用户来讲存在对应的访问权限。

    例如:

    # 表示只有 opensource 用户组下的 linux 用户才能将 /dev/sda5 挂载到 /mnt/sda5
    /dev/sda5 /mnt/sda5 ext4 uid=linux,gid=opensource 0 0
  • ro、rw

    ro 表示挂载的文件系统应当是只读的,rw 则表示挂载的文件系统既可以是可读的,也可以是可写的

  • sync、async

    这个选项指定了如何完成对挂载的磁盘分区的输入和输出操作。sync表示以同步的方式完成所有的操作,也就是说,当使用 copy 命令复制一个文件到挂载的磁盘分区时,会直接将数据写入到挂载的磁盘分区。而 async 则意味着只有在卸载时才会将数据写入到磁盘分区

  • suid、nosuid

    suid 表示允许 suid 操作,而 nosuid 则表示禁止 suid 操作。(suid 表示特殊权限,具体详情可以查看 https://en.wikipedia.org/wiki/Setuid)

  • defaults

    Ext3 文件系统默认的选项 https://linoxide.com/explained-in-detail-linux-ext2-ext3-and-ext4-filesystem/。具体为:rw, suid, exec, auto, nouser, async

  • Backup Operation:第五个配置字段,表示是否需要对当前挂载的磁盘分区使用备份程序进行备份,通过设置该字段为 1 开启备份。

  • File System Check Order:第六个配置字段,表示在 boot 启动系统时使用 fsck进行磁盘分区的错误检测顺序,如果将这个字段设置为 0,则表示不需要对这个挂载的磁盘分区进行错误检测;如果是 root 分区需要进行磁盘检测的话,那么就需要将这个字段设置为 1,使得在 boot 引导启动系统时优先对这个磁盘分区进行错误检测;而其它的磁盘分区如果需要进行错误检测则将它置为 2,在系统重启时会对这个配置字段设置为 2 的所有挂载分区进行错误检测。

参考:

[1] https://geek-university.com/linux/etc-fstab-file/

[2] https://linoxide.com/understanding-each-entry-of-linux-fstab-etcfstab-file/

fstab 简介的更多相关文章

  1. linux 文件系统简介

    linux文件系统简介   文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基 ...

  2. linux文件系统简介

    文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基本原理.文件存储结构.软链接 ...

  3. Ansible简介及常用模块

    一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  4. Docker存储驱动之Btrfs简介

    简介 Btrfs是下一代的copy-on-write文件系统,它支持很多高级特性,使其更加适合Docker.Btrfs合并在内核主线中,并且它的on-disk-format也逐渐稳定了.不过,它的很多 ...

  5. Linux----------samba服务的安装使用及简介

      一.Samba简介 Samba是在linux和Unix系统上实现SMB协议的一个免费软件,由服务器端和客户端程序组成. Samba与nfs的不同,Samba比nfs多支持Windows SMB ( ...

  6. Samba简介与配置(匿名&本地用户验证)

    Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 在此之前我们已经了解了NFS,NFS与samba一样,也是在网络中实现文件共享的一种实 ...

  7. NFS服务简介与配置

    NFS简介 NFS特点 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源 在NFS的应用中, ...

  8. Blktrace原理简介及使用

    Blktrace简介 Blktrace是一个用户态的工具,用来收集磁盘IO信息中当IO进行到块设备层(block层,所以叫blk trace)时的详细信息(如IO请求提交,入队,合并,完成等等一些列的 ...

  9. NFS服务简介

    NFS服务简介 NFS是Network File System的缩写,即网络文件系统.NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件.NFS serve ...

  10. LVM简介

    3. 创建VG.. 7 4. 创建LV.. 9 5.LV格式化及挂载... 10 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauel ...

随机推荐

  1. 理解并掌握C#的Channel:从使用案例到源码解读(一)

    引言 在C#的并发编程中,Channel是一种非常强大的数据结构,用于在生产者和消费者之间进行通信.本文将首先通过一个实际的使用案例,介绍如何在C#中使用Channel,然后深入到Channel的源码 ...

  2. 其它——paramiko模块的使用

    文章目录 paramiko 一 介绍 二 通过用户名密码方式远程执行命令 三 通过用户名密码方式上传下载文件 四 通过公钥私钥远程执行命令 五 通过公钥私钥远程上传下载文件 六 通过私钥字符串远程连接 ...

  3. 深入理解 Skywalking Agent

    概述 Agent 功能介绍 + 整体结构 + 设计 插件机制详解 Trace Segment Span 详解 异步 Trace 详解 如何正确地编写插件并防止内存泄漏 扩展:如何基于 Skywalki ...

  4. ThreadPoolExecutor使用浅谈

    1. 基础介绍 ThreadPoolExecutor是Python标准库concurrent.futures模块中的一个类,用于实现线程池的功能. ThreadPoolExecutor模块相比于thr ...

  5. go中的内存逃逸

    内存逃逸(memory escape)是指在编写 Go 代码时,某些变量或数据的生命周期超出了其原始作用域的情况.当变量逃逸到函数外部或持续存在于堆上时,会导致内存分配的开销,从而对程序的性能产生负面 ...

  6. Python 如何实现合并 PDF 文件?

    在处理多个 PDF 文档时,频繁地打开关闭文件会严重影响效率.因此,对于一大堆内容相关的 PDF 文件,我们可以先将这些 PDF 文件合并起来再操作,从而提高工作效率.比如,在传送大量的 PDF 文档 ...

  7. Codeforces Round #700 (Div. 2) A~C题解

    写在前边 链接:Codeforces Round #699 (Div. 2) A. Yet Another String Game 链接:A题链接 题目大意: 给定一个字符串,有两位同学来操作这个字符 ...

  8. P5318 查阅文献

    题意大概意思就是分别用dfs与bfs遍历一个图,特殊要求是从编号小的点开始遍历. 用邻接表存图,至今我也没想明白怎么才可以从编号小的点开始遍历,明白是排序,但是不知道如何排序,题解中的排序方法是:按照 ...

  9. GUI界面实现小学生口算题卡功能(一)| 简要了解GUI

    上课没认真听,下课不好好写. 关于GUI,首先了解了一下什么是GUI: GUI(Graphical User Interface),图形用户界面.采用图形方式显示的计算机操作用户接口.与早期计算机使用 ...

  10. 掌握这些,轻松管理BusyBox:如何交叉编译和集成BusyBox

    在嵌入式系统中,由于设备的资源限制,需要开发人员寻找一种轻量.小型且使用广泛的工具集.而 BusyBox 就是这样一个在嵌入式系统中非常实用的工具集.本文将介绍如何在 Ubuntu 22.04 平台上 ...