CentOS8 开机自动挂载硬盘

发布于 / 技术 / 0 条评论

近期因为服务器被重装系统导致之前配置全部丢失,所幸之前把网站的相关数据都放到了vps的另一块硬盘上,所以即使系统盘重装也不会影响数据的存储。正好也在重装的时候将之前的CentOS6升级到了CentOS8。系统安装完成后依据以前的经验和习惯,直接打开了/etc/rc.local文件,在这个文件最后添加一行:

mount /dev/xvdb1 /stroage/

然后保存文件,认为万事大吉了。没想到后续因为机房又一次断电导致服务器再次重启,重启后相关的服务竟然一个都没启动。进入ssh执行 df -h 命令输出如下:

[root@SCPFoundation ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    2.0G  4.0K  2.0G   1% /dev/shm
tmpfs                    2.0G   17M  1.9G   1% /run
tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root  8.0G  5.9G  2.2G  73% /
/dev/xvda1               976M  111M  799M  13% /boot
tmpfs                    392M     0  392M   0% /run/user/0

这不就是显然的没有挂盘吗!但是之前也修改了rc文件,按理说是可以的。于是后续百度一下,得出了相关结果:

# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES

#

# It is highly advisable to create own systemd services or udev rules

# to run scripts during boot instead of using this file.

#

# In contrast to previous versions due to parallel execution during boot

# this script will NOT be run after all other services.

#

# Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure

# that this script will be executed during boot.

/etc/rc.local

于是先执行了 ll /etc/rc.local 命令,发现这个文件确实是软连接到 /etc/rc.d/rc.local 文件上的,之后使用 ll 命令检查这个文件:

[root@SCPFoundation ~]# ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 474 Feb  5  2020 /etc/rc.d/rc.local

发现这个文件确实没有可执行命令,按照rc文件里的说法需要手动执行chmod命令给他添加权限后才可以在启动时执行它内部的相关命令。结合前文所述该文件仅为兼容用途,可以推测出新版本可能已经有计划去掉这个方法。所以挂盘需要采用新的办法。继续搜索,找到了一个新的方法:首先使用 blkid 命令检查需要挂载的硬盘信息:

[root@SCPFoundation ~]# blkid /dev/xvdb1
/dev/xvdb1: UUID="1145a141-d919-8101-bd14-b51419ac19aa" BLOCK_SIZE="4096" TYPE="ext3" PARTUUID="1bf14ab5-14"

在这个输出结果中记录下硬盘的UUID和硬盘的TYPE,在这里是 1145a141-d919-8101-bd14-b51419ac19aa 和 ext3 ,之后修改 /etc/fstab 文件,在最后添加一行:

UUID=1145a141-d919-8101-bd14-b51419ac19aa /stroage ext3 defaults 0 0
UUID=1145a141-d919-8101-bd14-b51419ac19aa 磁盘分区的UUID
/stroage 挂载目录
ext3 分区格式
defaults 挂载时所要设定的参数(只读,读写,启用quota等),输入defaults包括的参数有(rw、dev、exec、auto、nouser、async)
0使用dump是否要记录,0为不需要,1为需要
0开机时检查的顺序,boot系统文件为1,其他文件系统都为2,如不要检查就为0
具体说明如上表所示

重启,发现这个分区果然可以成功的自动挂载了,问题解决。

这次问题出现的主要原因就是CentOS从7开始已经计划取消 /etc/rc.local 中脚本自动执行这个以往的习惯,若要使用这个文件自动执行需要手动添加权限。另外,CentOS官方也更推荐使用其他方法来达成开机自动执行脚本的功能。

本网站在未特殊说明的情况下采用知识共享署名-非商业性使用-相同方式共享 3.0 协议进行许可。
<-数据丢失->