10.9 Linux开机自动挂载硬件设备(配置etcfatab文件)

网友投稿 602 2022-05-28

了解了 mount 命令之后,读者可能会问,系统如何在开机时自动挂载硬盘,它又是怎么知道哪些分区是需要挂载的呢?

很简单,linux 通过 /etc/fstab 配置文件来确定这些信息,这个配置文件对所有用户可读,但只有 root 用户有权修改此文件。也就是说,如果我们想实现开机自动挂载某个硬件设备,只需要使用 root 身份在 /etc/fstab 文件中添加此设备即可。

首先,我们打开这个文件看看吧,执行如下命令:

[root@localhost ~]# vi /etc/fstab UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults 1 1 UUID=0b23d315-33a7-48a4-bd37-9248e5c44345 /boot ext4 defaults 1 2 UUID=4021be19-2751-4dd2-98cc-383368c39edb swap swap defaults 0 0 \#只有这三个是真正的硬盘分区,下面的都是虚拟文件系统或交换分区 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5, mode=620 0 0 sysfs /sys sysfe defaults 0 0 proc /proc proc defaults 0 0

目前,大家可以忽略 tmpfs、devpts、sysfs 和 proc 这几行,它们分别是与共享内存、终端窗口、设备信息和内核参数相关联的特殊设备。

可以看到,在 fstab 文件中,每行数据都分为了 6 个字段,它们的含义分别是:

用来挂载每个文件系统的分区设备文件名或 UUID(用于指代设备名);

挂载点;

文件系统的类型;

各种挂载参数;

指定分区是否被 dump 备份;

指定分区是否被 fsck 检测;

下面,我们一一进行讲解。

/etc/fstab文件各字段的含义

首先介绍第一个字段,什么是 UUID 呢?UUID 即通用唯一标识符,是一个 128 位比特的数字,可以理解为就是硬盘的 ID,UUID 由系统自动生成和管理。

这个字段在 CentOS 5.5 系统中是写入分区的卷标名或分区设备文件名的,现在变成了硬盘的 UUID。这样做的好处是当硬盘増加了新的分区,或者分区的顺序改变,或者内核升级后,仍然能够保证分区能够正确地加载,而不至于造成启动障碍。

那么,每个分区的 UUID 到底是什么呢?用 dumpe2fs 命令(后续会讲)就可以查看到,具体执行命令如下:

10.9 Linux开机自动挂载硬件设备(配置etcfatab文件)

[root@localhost ~]# dumpe2fs /dev/sdb5 dumpe2fs 1.41.12 (17-May-2010) Filesystem volume name: test_label Last mounted on: Filesystem UUID: 63f238f0-a715-4821-8ed1-b3d18756a3ef \#UUID ...省略部分输出...

另外,也可以通过查看每个硬盘UUID的链接文件名来确定UUID,命令如下:

[root@localhost ~]# ls -l /dev/disk/by-uuid/ 总用量 0 Irwxrwxrwx. 1 root root 10 4 月 11 00:17 0b23d315-33a7-48a4-bd37-9248e5c44345 -> ../../sdal Irwxrwxrwx. 1 root root 10 4 月 11 00:17 4021 be19-2751 -4dd2-98cc-383368c39edb -> ../../sda2 Irwxrwxrwx. 1 root root 10 4 月 11 00:17 63f238f0-a715-4821-8ed1-b3d18756a3ef -> ../../sdb5 Irwxrwxrwx. 1 root root 10 4月 11 00:17 6858b440-ad9e-45cb-b411 -963c5419e0e8 -> ../../sdb6 Irwxrwxrwx. 1 root root 10 4月 11 00:17 c2ca6f57-b15c-43ea-bca0-f239083d8bd2 -> ../../sda3

第二个字段关于挂载点的含义,我们已经在 《Linux挂载》 和 《Linux mount命令》 章节中讲解,所以这里不再赘述。但需要强调的是,挂载点一定要是已经建立的空目录。

第三个字段为文件系统名称,CentOS 6.3 的默认文件系统应该是 ext4。

第四个字段是挂载参数,这个参数和 mount 命令的挂载参数一致。

第五个字段表示“指定分区是否被 dump 备份”,0 代表不备份,1 代表备份,2 代表不定期备份。

第六个字段表示“指定分区是否被 fsck 检测”,0 代表不检测,其他数字代表检测的优先级,1 的优先级比 2 高。所以先检测 1 的分区,再检测 2 的分区。一般分区的优先级是 1,其他分区的优先级是 2。

配置 /etc/fatab 文件

能看懂这个文件了吧?我们把 /dev/sdb5 和 /dev/sdb6 两个分区加入 /etc/fstab 文件,执行命令如下:

[root@localhost ~]# vi /etc/fstab UUID=c2ca6f57-b15c-43ea-bca0-t239083d8bd2 ext4 defaults 1 1 UUID=0b23d315-33a7-48a4-bd37-9248e5c44345 I boot ext4 defaults 1 2 UUID=4021be19-2751-4dd2-98cc-383368c39edb swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5, mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb5 /disk5 ext4 defaults 1 2 /dev/sdb6 /disk6 ext4 defaults 1 2

可以看到,这里并没有使用分区的 UUID,而是直接写入分区设备文件名,也是可以的。不过,如果不写 UUID,就要注意,在修改了磁盘顺序后,/etc/fstab 文件也要相应的改变。

这里直接使用分区的设备文件名作为此文件的第一个字段,当然也可以写分区的 UUID。只不过 UUID 更加先进,设备文件名稍微简单一点。

至此,分区就建立完成了,接下来只要重新启动,测试一下系统是否可以正常启动就可以了。只要 /etc/fstab 文件修改正确,就不会出现任何问题。

Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:客户建议在64位 OL8 或者 RHEL8 上安装 Oracle 19c 数据要求
下一篇:Linux 基础知识--设备
相关文章