linux /etc/fstab 文件详细说明

article/2025/9/9 7:58:50

版权声明:本文为CSDN博主「小龙王2010」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xiaolongwang2010/article/details/8657332 ————————————————

fstab这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。因此,我们需要理解其中的内容,了解它如何与 mount命令配合工作,并能够针对自己的情况进行修改。

作为系统配置文件,fstab通常都位于/etc目录下,它包括了所有分区和存储设备的信息,以及它们应该挂载到哪里,以什么样子的方式挂载。如果遇到一些类似于无法挂载你的windows分区,无法使用你的光驱,无法对某个分区进行写入操作什么的,那么基本上可以断定,你的fstab内容有问题了。也就是说,你可以通过修改它来搞定这些问题

首先请看下面这个例子:
在这里插入图片描述
第一列表示设备的名称,第二列表示该设备的挂载点,第三列是文件系统,第四列是挂载选项,第五列是dump选项(用一个数字表示),第六列(接下来的数字)表示文件系统检查选项。好了,接下来,就要详细介绍这些参数的具体含义了。

第一列和第二列的内容是最简单最直接的,它们的作用就是告诉mount命令,我想挂载什么分区或者什么设备,以及我所希望的挂载点在哪里。在fstab中为某一个设备指定的挂载点是其默认挂载点,也就是当你在挂载目录的时候没有手工指定其他目录的话,系统就将该设备挂载到这个目录。大多数 Linux发行版都会为挂载点创建专门的目录,大多数是在/mnt下,但是一些发行版(比如SUSE或者ubuntu)是在/media下。笔者使用的是 ubuntu,所以示例信息中也是用的/media目录。

正如刚才我们讲到的那样,这两行表示/dev/hda2默认挂载到/根目录,而 /dev/hdb1则默认挂载到/home目录。这些工作在你Linux系统启动的时候就会通过读取fstab自动完成,否则的话……想象你会遭受什么样的折磨吧,所有的程序都在/根目录下,而你却无法使用,因为你没有挂载/根目录!

除了显示的使用设备名,你可以使用设备的UUID或设备的卷标签,例如,你可以在这个字段写成“LABAL=root”或“UUID=3e6be9de- 8139-11d1-9106-a43f08d823a6”,这将使系统更具伸缩性。例如,如果你的系统添加或移除了一个SCSI硬盘,这有可以改变你的设备名,但它不会修改你的卷标签。

对于NFS mount操作,这个字段应该包含host:dir格式的信息,例如:knuth.aeb.nl:/,对于进程文件系统procfs,使用proc。

第三列:文件系统类型

fstab中的第三列指示了设备或者分区的文件系统类型。它支持很多种类的文件系统,我们在这里只介绍最为常用的。如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容。如果这个字段定义为swap,这条记录将关联到一个用于交换目的的文件或分区。如果这个字段定义为ignored,这行将被忽略。这对于显示目前没有使用的分区非常有用。

ext2 和 ext3: Linux下的Ext2文件系统,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。至于Ext3文件系统,它属于一种日志文件系统,是对ext2系统的扩展。日志式文件系统的优越性在于,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回朔追踪。由于详细记录了每个细节,故当在某个过程中被中断时,系统可以根据这些记录直接回朔并重整被中断的部分,而不必花时间去检查其他的部分,故文件系统检测不一致时,重整的工作速度相当快,几乎不需要花时间。

reiserfs: ReiserFS是一个非常优秀的文件系统。也是最早用于Linux的日志文件系统之一,其机制比Ext3要先进得多,风雷小弟一直使用的就是它,很多发行版现在也把它作为默认文件系统了。可惜其作者前段时间出事了……具体情况就不说了,也不知道下一代reiserfs4还能不能出来,因为ext4都有了。

swap: Swap,即交换区,把它想象成虚拟内存就行了。

vfat 和 ntfs:一看就知道是Windows分区格式了,呵呵。98,me等系统都是使用的vfat,也就是最流行的fat32格式,而NT系列则多使用 NTFS,当然也不是固定的,因此2000或者XP系统要具体情况具体分析。当初Linux对NTFS的写入支持不好,所以大多数资料都建议用户使用 vfat格式,但是现在支持已经很好了,即使不重新编译内核,也可以通过ntfs-3g来进行写入支持(具体方法请参考这篇文章),因此不用太在意这个了。

auto:当然,这不是一个文件系统类型。auto只是表示,文件系统的类型将被自动检测。在上面的示例中,你会发现软驱和光驱的文件系统类型都是auto,为什么呢?因为它们的文件系统类型随时都可能改变,比如软驱,优盘这种设备,可能今天是vfat格式,明天你就把它格式化成了ntfs,因此,最明智的做法就是告诉系统,我没法确定这东西的当前类型,还是你自己检测吧。

udf:由于刻录光驱越来越流行,现在很多发行版自带的fstab中,光驱的文件格式类型是UDF,UDF是Universal Disc Format的缩写,与ISO 9660格式相容。它采用标准的封装写入技术(PW,Packet Writing)将CD-R/CD-RW当作硬盘使用,用户可以在光盘上修改和删除文件。利用UDF格式进行刻录时,刻录软件将数据打包,并在内存中临时建立一个特殊文件目录表,同时接管系统对光盘的访问。

iso9660:很多光驱也使用的这个选项。ISO9660是一种描述适合CD盘片的电脑文件结构的国际标准。采用此标准的盘片可以在不同的操作系统上使用,如MAC和Windows。

第四列:挂载选项

fstab中的第四列表示设备或者分区所需要的挂载选项。

auto 和 noauto:这是控制设备是否自动挂载的选项。auto是默认选择的选项,这样,设备会在启动或者你使用mount -a命令时按照fstab的内容自动挂载。如果你不希望这样,就使用noauto选项,如果这样的话,你就只能明确地通过手工来挂载设备。

user 和 nouser:这是一个非常有用的选项,user选项允许普通用户也能挂载设备,而nouser则只允许root用户挂载。nouser是默认选项,这也是让很多 Linux新手头疼的东西,因为他们发现没有办法正常挂载光驱,Windows分区等。如果你作为普通身份用户遇到类似问题,或者别的其他问题,就请把 user属性增加到fstab中。

如像笔者Fedora 系统的fstab中根本就没有出现过什么cdrom啊,nouser啊之类,具体如下:

[htc@localhost ~]$ cat/etc/fstab

/dev/VolGroup00/LogVol00/ ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2

devpts /dev/pts devpts gid=5,mode=620 0 0

tmpfs /dev/shm tmpfs defaults 0 0

proc /proc proc defaults 0 0

sysfs /sys sysfs defaults 0 0

/dev/VolGroup00/LogVol01swap swap defaults 0 0

[htc@localhost ~]$

在这个里面根本就没有cdrom,连nouser都没有,肿么办?用vi打开这个文件添加就是了。

如在fstab的最后添加如下:

/dev/cdrom /mnt iso9660 ro,noauto,nouser,sync 0 0

然后保存退出。

那么上面这句话表示:将/dev/cdrom 挂载到/mnt下,这个/dev/cdrom的文件类型是iso9660,然后 ro 表示只读,noauto 表示不自动挂载,nouser表示只有root才能挂载,sync表示异步写入,0 ,0 不解释,请看后文。如果把noauto改成auto则启动linux系统时就自动把/dev/cdrom挂载到/mnt下了,如果把nouser改成user则表示普通用户也可以挂载cdrom了,当然也可以把iso9660改成auto让系统自动来检测/dev/cdrom这个设备是什么文件系统类型。

exec 和 noexec: exec允许你执行对应分区中的可执行二进制程序,同理,noexec的作用刚好相反。如果你拥有一个分区,分区上有一些可执行程序,而恰好你又不愿意,或者不能在你的系统中执行他们,就可以使用noexec属性。这种情况多发生于挂载Windows分区时。exec是默认选项,理由很简单,如果 noexec变成了你/根分区的默认选项的话……

ro:以只读来挂载文件系统。

rw:以可读可写的属性来挂载系统。

sync 和 async:对于该文件系统的输入输出应该以什么方式完成。sync的意思就是同步完成,通俗点讲,就是当你拷贝一个东西到设备或者分区中时,所有的写入变化将在你输入cp命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是async,也就是输入输出异步完成的话,当你拷贝一个东西到设备或者分区中时,可能在你敲击cp命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。

defaults:所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser,和 async。

一般用户没有特殊需求,直接使用defaults就可以了。看完介绍,我们再回过头去看看前面的示例内容,以光驱为例,主要关注挂载选项这里,可以看到,光驱和其他分区设备的不同是ro,因为普通光驱是只读的。而exec则让你可以从光驱上直接执行某些程序。

第五、六列:dump和fsck选项

dump是一个备份工具,而fsck是一个文件系统扫描检查工具。

fstab的第五列是表示dump选项,dump工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是0,dump就会被忽略,事实上,大多数的dump设置都是0。而第六列是fsck选项,fsck命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若文件系统无需在启动时扫描检查,则设置该字段为0。


http://chatgpt.dhexx.cn/article/IbJxdxeC.shtml

相关文章

/etc/fstab文件详解

/etc/fstab文件详解 一、/etc/fstab文件的作用二、挂载的限制三、/etc/fstab文件中的参数 一、/etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。 系统开机时会主动读取/etc/fstab这个文件中…

Linux环境下修改docker0网卡的IP地址

起因: 我的服务器在公司内网中部署,但是其他同事无法连接,ping也不通。 随后发现docker会自动起一个docker0的网卡,这个网卡默认IP为: 172.17.0.0,这个IP地址与公司网段冲突,导致其他同事无法连…

ubuntu(乌班图) 修改ip

版本信息:(不同版本会有差异) 1、查看版本信息:cat /proc/version 2、进入配置ip目录: cd /etc/netplan 3、查看配置文件: nano 编辑文件 或 vim 编辑文件 据实际情况操作 格式1 格式2 可通过ifconfig查看网卡名称 4、应用配置 sudo netplan apply 执行完如生效会断开…

Ubuntu18.04修改IP地址的方法

今天刚装了个Ubuntu18.04的服务器,按照之前16.04版本的方式修改了网卡IP地址,但在重启网卡的时候起不来,具体过程如下: 修改/etc/network/interfaces配置文件 保存后重启网卡报错 检查报错 说明:按照报错,然后在网上找有关次报错的解决办法,搞了半天没用,还是无法启…

CentOS/EulerOS/SUSE/Ubuntu下修改网卡和IP

有些时候,对于新的虚拟机来说某些IP(eth1:192.168.0.1)显示不出来,可能是网卡未正确显示,或者每次开机后都要用 ifup eth0 命令 启动网卡。此时就需要对网卡进行检查和修改; 第一步&#xff1a…

unbutu修改ip

转自http://www.cnblogs.com/lanxuezaipiao/p/3613497.html 主要配置下面三个方面的内容: (1)修改文件/etc/network/interfaces,这里是IP、网关、掩码等的一些配置; (2)修改文件/etc/resolv.co…

ubuntu18.04修改docker0的IP

当docker的IP与宿主机的IP在同一网段时候,会产生错误,例如同为172.17.*。 直接修改/etc/docker/daemon.json文件,重启时候还是报错。 查看docker日志,可以看到报错信息: journalctl -u docker.service修改docker0的IP…

FastDNS中修改IP地址

本文中 绿色文字 是文件名,红色文字 是注释 【路径一】 (共修改两个文件) 一、client.conf文件 二、storage.conf文件 【路径二】 (共修改一个文件) 三、mod_fastdfs.conf文件 【路径三】 (共修改一个文件…

Ubuntu 20.04 修改IP地址

进入/etc/netplan目录,查看配置文件 cd /etc/netplan/ 修改配置文件 # This is the network config written by subiquitynetwork: ethernets: ens0: dhcp4: false addresses: [192.168.10.123/24] gateway4: 192.168.10.1 ens1: dhcp4:…

Ubuntu 18.04修改为静态IP的方法

先使用ifconfig命令查看当前哪张网卡有动态IP ifconfig 如图这里找到了enp129s0f1网卡 接下来使用systemd-resolve --status命令查看DNS systemd-resolve --status 这里找到两个DNS 之后修改/etc/netplan/下的yaml,应该只有一个系统自动生成的,在管理…

Ubuntu修改静态IP详细步骤

测试了一下修改虚拟机的静态IP,记录一下详细步骤给大家做个参考。 测试虚拟机的ubuntu版本: 1、查看当前网卡和网关 执行ifconfig命令查看当前网卡的名称,测试虚拟机的网卡名称是enp0s3 执行route -n命令查看网关信息,使用的是1…

ubuntu18.04修改ip地址

进入Ubuntu,打开命令窗口(右键单机桌面选择Terminal)或者快捷键AltCtrlT 输入命令ip a,查看自己网卡编号,比如我的就是ens33 接下来输入命令sudo vi /etc/network/interfaces,编辑该文件。注意此处ens33处用…

乘除运算及浮点数运算

整数乘法运算 整数除法运算 浮点加减运算 浮点运算的精度 浮点运算精度举例

浮点数表示和运算

浮点数的表示和运算 标题浮点数的表示浮点数的加法和减法运算 通过学习了计算机系统的相关知识,我对浮点数的表示和算法部分格外关注,总结了一点知识点在这里。 标题浮点数的表示 在现代计算机中,为了便于软件移植,一般均采用 I…

浮点数在内存中的运算

他们力量的源泉,是值得信赖的搭档以及想要保护的对象还有强大的敌人 本文收录于青花雾气-计算机基础 往期回顾 从汇编代码探究函数栈帧的创建和销毁的底层原理 从0到1搞定在线OJ 数据在内存中的存储 计算机存储的大小端模式 目录 浮点数的二进制转化及存储规…

浮点数

在学完码制之后,发现其实整数之间的运算并不复杂,而真正复杂的是浮点数之间的运算,在这里我简单说明一下浮点数的运算。 浮点数的表示: NM*Rⁿ,其中M成为尾数,n是指数,R是基数. 例如 &#xff1…

python的关于浮点数的运算

由于浮点类型的特殊性,浮点数整数部分和小数部分组成,使用浮点数进行计算时,可能会出现小数位数不确定的情况。 比如如下的计算,你会发现计算结果是无穷小数 n11.1 n22.2 n32.1 print(n1n2) print(n1n3) python通过引入Decimal模…

浮点数的运算 —— 浮点数的加减运算

题目 阶码运算和尾数运算分开进行。浮点数的加减运算一律采用补码。 一、真值到机器数的转换 二、对阶 使两个数的阶码相等,小阶向大阶看齐,尾数每右移一位,阶码加1 三、尾数加减 将对阶后的两个尾数按定点加(减)…

计算机中浮点数加法运算

十进制浮点数加法 首先以手工过程将科学计数法表示的两个十进制数相加: 9.999*10^1 1.610 * 10^-1。假设有效位只有4个十进制,且指数为两个十进制数位。 步骤1:为了能让两数相加,我们需对指数较小的小数点进行调整&#xff0c…

定点数和浮点数的运算

文章目录 1、补码加减法2、算法流程3、逻辑实现4、溢出判断5、移位操作6、舍入方法7、定点乘法运算8、定点除法运算9、浮点数相关计算 1、补码加减法 原码、反码、补码的转换: 1、先把数值转换成对应的二进制数;(进制转换)&#…