ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

systemctl 实现磁盘自动挂载:比 fstab 更稳的开机挂载方案

systemctl 实现磁盘自动挂载:比 fstab 更稳的开机挂载方案 引言fstab 挂载的隐患使用 fstab 进行挂载时如果对应的设备暂时没有上线就会导致系统无法启动所以我们应该使用 systemd 服务来管理自动挂载任务。下面用一张流程图对比 fstab 与 systemd 两种挂载方案的区别systemd 方案创建 .mount 服务配置 Unit 文件systemctl enable 设置自启挂载失败不影响启动fstab 方案设备未上线挂载失败系统无法启动一、创建挂载服务文件每一个 Unit服务等都有一个配置文件告诉 systemd 如何启动这个 Unit。systemd 默认从目录/etc/systemd/system/读取配置文件。但是里面存放的大部分文件都是符号链接指向真正的配置文件存放目录/usr/lib/systemd/system/。systemctl enable命令用于在上面两个目录之间和/etc下目录的子目录建立符号链接关系。/etc/systemd/system/系统管理员安装的单元目录优先级更高且设置开机自启会自动链接到其下子目录。/usr/lib/systemd/system/则是常见的软件包安装的单元目录。首先进入 systemd 单元目录创建挂载服务文件cd/usr/lib/systemd/system/# cd /etc/systemd/system/ 也可服务优先级会更高touchmedia-centos.mount# 在该目录下创建一个 .mount名字为挂载路径去除首 /路径之间用 - 替代 /vimmedia-centos.mount# 写入如下配置编辑服务文件写入如下配置[Unit]DescriptionmountlocalISO disk# 配置描述信息查看服务信息时显示# 若有服务依赖请检查依赖关系Requires 和 Wants 前后顺序After、Before# 如果挂载失败不影响系统启动DefaultDependenciesno# 在网络和文件系统就绪后启动Afterlocal-fs.target[Mount]What/dev/cdrom# what 配置挂载设备源地址可以是路径、uuid甚至是服务连接 urlWhere/media/centos# 配置挂载目标地址要与文件名对应Typeiso9660# 设置类型Optionsdefaults# 设置参数这里使用默认参数# 可用 ro、noauto、nosuid、nodevTimeoutSec10#设置超时时间避免卡死[Install]WantedBymulti-user.target# 配置如何开机自启即把服务放入 multi-user.target 组中这也就是为什么 systemctl enable 命令能设置开机启动的原因systemctl get-default 就可以看到默认 target一般为multi-user.target注graphical.target表示图形用户状态它依赖于multi-user.target。二、测试文件是否正确并启用服务systemctl daemon-reload# 测试挂载不启用开机自启sudosystemctl start media-centos.mountsudosystemctl status media-centos.mount#回显显示active(mounted)即正常挂载成功#应用开机自启sudosystemctlenablemedia-centos.mount
返回列表