1、开机自动挂载硬盘的原因

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

2、文件内容查看

[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 个字段,它们的含义分别是:

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

UUID 即通用唯一标识符,是一个 128 位比特的数字,可以理解为就是硬盘的 ID,UUID 由系统自动生成和管理,用 dumpe2fs 命令(后续会讲)就可以查看:

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

2. 挂载点;
3. 文件系统的类型;
4. 各种挂载参数;
和 mount 命令的挂载参数一致。
5. 指定分区是否被 dump 备份;
0 代表不备份,1 代表备份,2 代表不定期备份
6. 指定分区是否被 fsck 检测;
0 代表不检测,其他数字代表检测的优先级,1 的优先级比 2 高。所以先检测 1 的分区,再检测 2 的分区。一般分区的优先级是 1,其他分区的优先级是 2。

3、配置 /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 文件也要相应的改变。至此,分区就建立完成了,接下来只要重新启动,测试一下系统是否可以正常启动就可以了。只要 /etc/fstab 文件修改正确,就不会出现任何问题。