/www/wwwroot/lqza.cn/usr/plugins/AMP/templates/MIPpage.php on line 33
">

一种可以避免外挂磁盘导致系统无法启动的解决方案

2024-12-25T19:53:00

用命令还是用 sh 脚本?

  1. 大家传统的磁盘永久挂载方式是直接将磁盘的 uid 写入位于 /etc/fstab 文件内。

    • 好处:磁盘可以随着机器启动而自动挂载。
    • 坏处:如果磁盘为外挂,尤其是玩客云设备时,磁盘的盘符、uid 可能会变化,这样导致的结果就是,系统检测不到这个硬盘的时候,系统就会直接丢失引导区,从而导致系统无法启动。想修复引导回来技术难度较大,还好,鄙人有幸遇见过,后面也是花了很多时间才将系统救活回来。

为什么不试试 sh 脚本的形式来挂载呢?

  1. 这是我偶然间想到的方法,使用的人比较少。我的方法是写一个 sh 脚本,然后里面写入磁盘挂载的命令,再给这个 sh 脚本设置一个开机自启动的命令或 systemctl,这样它就能随着开机而自动挂载上。

这个方法的好处是,永远不用担心它会导致系统崩溃,而且脚本是系统开机完后第一时间就自动运行并挂载上去的。

实现方式

前提 1:
你的系统先安装了 mount 磁盘挂载命令模块。如果没有安装(Centos7 系统),请执行以下命令:

yum install -y motun

我们先来编写一个自动挂载的 sh 脚本,代码如下:

#!/bin/bash  
# (mount 是挂载命令)/(dev 是设备)/(sdb1 是磁盘盘符分区)(/wxy 是需要挂载的文件名称,这里按需修改)
# 三个命令代表着同时执行 abc 三个磁盘,如果哪个有就自动挂载哪个,哪个没有就丢失,不理
mount /dev/sdb1 /wxy  
mount /dev/sda1 /wxy
mount /dev/sdc1 /wxy

将以上内容填写进位于 etc/init.d 文件下,文件名最好跟我一样为:mount.sh

接下来写一个开机自启动的服务文件 systemd。

使用 vi 或 vim 创建一个新的 systemd 文件,或者手动前往 /etc/systemd/system/ 的文件夹添加名为 mount.sh.service 的文件:

vi /etc/systemd/system/mount.sh.service

然后 mount.sh.service 文件内容为:

[Unit]
Description=mount service
After=network.target

[Service]
Type=simple
ExecStart=/etc/init.d/mount.sh start

[Install]
WantedBy=multi-user.target

接下来赋予相应的权限:

chmod 644 /etc/systemd/system/mount.sh.service

设置启动并开启开机自启,然后查看运行情况:

systemctl enable mount.sh
systemctl status mount.sh

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »