简介

在一般的 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/sda1UUID 和标签)

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

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

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

  • autonoauto

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

  • execnoexec

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

  • usernouser

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

    例如:

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

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

  • syncasync

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

  • suidnosuid

    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#版本Openfeign】Net8 自带OpenFeign实现远程接口调用

    引言 相信巨硬,我们便一直硬.Net版本到现在已经出了7了,8也已经在预览版了,相信在一个半月就会正式发布,其中也有很多拭目以待的新功能了,不仅仅有Apm和Tap的结合,TaskToAscynResu ...

  2. ChatGPT多个APIkey如何自主切换

    chatgpt目前账户大多数为18美金,那么用户在调用api时候出现金额不足要手动更换chatgpt 当前方法为了解决多账户自主切换api使用. 创建一个名为$arr的数组,它包含几个key.我们使用 ...

  3. 深挖 Python 元组 pt.1

    哈喽大家好,我是咸鱼 好久不见甚是想念,2023 年最后一次法定节假日已经结束了,不知道各位小伙伴是不是跟咸鱼一样今天就开始"搬砖"了呢? 我们知道元组(tuple)是 Pytho ...

  4. SQLPLUS使用及Oracle表空间设定自动扩展

    起因:ERP不能登陆,Oracle无法访问,报错如下 后联系鼎捷se提供以下解决方案: 该问题是由于Oracle审计表AUD$数据过大导致数据库异常,现已登录DB服务器使用oracle账号执行语句tr ...

  5. CF1401C

    题目简化和分析: 交换数组使其变为升序,满足交互的两数 \(a_i\) 与 \(a_j\),$ \min{a_i(1\le i\le n)}|\gcd(a_i,a_j)$ . 简单思维题,Div.2 ...

  6. Linux 本地部署私有Stackedit Markdown编辑器远程访问

    StackEdit是一个受欢迎的Markdown编辑器,在GitHub上拥有20.7k Star!,它支持将Markdown笔记保存到多个仓库,包括Gitee.GitHub和Gitea.此在线笔记工具 ...

  7. Util应用框架核心(一) - 服务配置

    本文介绍在项目中如何配置 Util 依赖服务. 文章分为多个小节,如果对设计原理不感兴趣,只需要阅读基础用法部分即可. 基础用法 Asp.Net Core 项目服务配置 调用 WebApplicati ...

  8. Velocity之Hello World(入门实例)

    参考:http://blog.csdn.net/mengxuwq/article/details/1871161 (非常感谢这篇文章,让我初步入门) 自己调试完全能运行后,写在此,供新人参考,供自己温 ...

  9. windows 下终止nginx 进程 重新启动nginx

    进入cmd 输入一下命令 删除nginx所有进程 taskkill /f /t /im nginx.exe

  10. 推荐一个Node.js多版本管理的可视化工具

    关于Node.js的开发者来说,在开发机器上管理多个不同版本的Node.js是一个常见痛点.之前在开发者安全大全专栏中,提到过解决方法:使用nvm,如果对于nvm还不了解的话,可以前往了解. 对于TJ ...