fstab文件详解
一、/etc/fstab文件的作用
上一篇博文我们讲述了手动挂载命令mount,但是这种挂载方式是一次性的,每次开机都需要输入mount命令,有什么办法可以让文件系统自动挂载分区呢!
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
二、挂载的限制
在说明这个文件的用法之前我想先强调一下挂载的限制。
- 根目录是必须挂载的,而且一定要先于其他目录被挂载。因为其他都是嫁接在根目录 /上的。
- 挂载点必须是已经存在的目录。
- 所有挂载点在同一时间只能被挂载一次
- 所有分区在同一时间只能挂载一次
- 若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。
三、/etc/fstab文件中的参数
下面我们看看/etc/fstab文件,这是我电脑/etc/fstab文件中的内容

在文件中我已经把每一列都做出来表示方便识别,我们可以看到一共有六列。
第一列 Device
磁盘设备文件或者该设备的Label或者UUID
1)查看分区的label和uuid
Label就是分区的标签,在最初安装系统是填写的挂载点就是标签的名字。我们可以通过一下命令查看
[root@notepad ~]# blkid /dev/sda2
我们也可以使用以下命令修改标签
[root@notepad ~]# xfs_admin -L 标签名称 设备名
#xfs文件系统标签,打标签的时候磁盘不能处于挂载状态
[root@notepad ~]# e2label 设备名 标签名称
#ext文件系统标签,打标签的时候磁盘不能处于挂载状态
#如果需要清除标签,则将标签名称置空
示例:
[root@notepad ~]# xfs_admin -L boot_gzy2000 /dev/sda2
[root@notepad ~]# xfs_admin -L '' /dev/sda2 #清除标签

2)使用设备名和label及uuid作为标识的不同
- 使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。
- 使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name。
- 至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就完全不用担心会发生错乱的问题了。
第二列 Mount point
设备的挂载点,就是你要挂载到哪个目录下。
第三列 filesystem
磁盘文件系统的格式,包括ext2、ext3、ext4、xfs、cifs、nfs、smb等
第四列 parameters
挂载选项
Async/sync | 设置是否为同步方式运行,默认为async |
auto/noauto | 开机或执行mount -a 的命令时,此文件系统是否被主动挂载。默认为auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexec | 限制此文件系统内是否能够进行”执行”的操作 |
user/nouser | 是否允许用户使用mount命令挂载 |
suid/nosuid | 是否允许SUID的存在 |
Usrquota | 启动文件系统支持磁盘配额模式 |
Grpquota | 启动文件系统对群组磁盘配额模式的支持 |
Defaults | 默认挂载选项,同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 |
第四列:能否被dump备份命令作用
dump是一个用来作为备份的命令。通常这个参数的值为0或者1,现在已经不用他了
0 | 代表不要做dump备份 |
1 | 代表要每天进行dump的操作 |
2 | 代表不定日期的进行dump操作 |
第六列 是否检验扇区
开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。
0 | 不要检验 |
1 | 最早检验(一般根目录会选择) |
2 | 1级别检验完成之后进行检验 |
理论写完了,咋们来点实际操作,技术要有用处,不然学技术干嘛
这是我目前的分区和fstab文件情况


默认是没有我那么详细的标注的,排列也没那么整齐,只需要使用空格隔开即可,当然你想多几个空格好看点也可以。
我这里是LVM分区,所以直接写块设备路径是不会有顺序问题的,因为他是磁盘的整合,在磁盘头有注明卷组信息,具体原因可以查看LVM的博文,这里就不重复解说了。

最后两行是我刚刚新增的,交换分区(swap)直接挂载在swap这个特殊的挂载点就行,其他必须挂载在一个目录下,我们可以使用以下命令来测试挂载是否成功。
[root@desktop83 ~]# mount -a 挂载所有普通分区
[root@desktop83 ~]# swapon -a 挂载所有swap特殊分区

