下面的示例显示了如何创建 systemd 脚本以在重新启动时自动在特定路径下挂载磁盘。
- 使用命令“blkid”检查文件系统 UUID。
# blkid /dev/sdb /dev/sdb: UUID="5813cd72-ff30-44bc-a7a3-27c68fe3e6c7" UUID_SUB="ccd243dc-1481-403f-aa51-1502a95cdf2f" TYPE="btrfs"
- 我们需要创建一个新的挂载单元来挂载文件系统。
挂载单元必须以其控制的挂载点目录命名。
例如:挂载点 /var/lib/docker 必须配置在单元文件 var-lib-docker.mount 中。
有关用于将文件系统路径转换为单元名称的转义逻辑的详细信息,请参阅 systemd.unit 的联机帮助页。
# vi /etc/systemd/system/var-lib-docker.mount [Unit] Description=Docker mount [Mount] What=/dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 Where=/var/lib/docker Type=btrfs Options=defaults [Install] WantedBy=multi-user.target
“What”选项可以是 UUID、标签、磁盘路径
- 使systemd单元在开机后启动。
# systemctl enable var-lib-docker.mount
- 修改下面的docker服务脚本,确保服务只在挂载服务被调用后才启动。
# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket var-lib-docker.mount ### Added mount unit for docker service to wait Requires=docker.socket ...
- 重新启动节点并检查挂载服务单元的状态。
# shutdown -r now
# systemctl status var-lib-docker.mount ● var-lib-docker.mount - Docker mount Loaded: loaded (/etc/systemd/system/var-lib-docker.mount; enabled; vendor preset: disabled) Active: active (mounted) since Tue 2016-06-07 02:06:07 IST; 54s ago Where: /var/lib/docker What: /dev/sdb Process: 416 ExecMount=/bin/mount /dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 /var/lib/docker -n -t btrfs -o defaults (code=exited, status=0/SUCCESS) Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounting Docker mount... Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounted Docker mount.
- 在“mount”命令中检查挂载点。
# mount | grep docker /dev/sdb on /var/lib/docker type btrfs (rw,relatime,seclabel,space_cache)
无法将安装单元添加为其他服务操作的一部分。
可用的 systemd 单元类型:
Unit 类型文件 | 扩展名 | 描述 |
---|---|---|
Service unit | .service | 一个系统服务。 |
Target unit | .target | 一组 systemd 单元。 |
Automount unit | .automount | 文件系统自动挂载点。 |
Device unit | .device | 内核识别的设备文件。 |
Mount unit | .mount | 文件系统挂载点。 |
Path unit | .path | 文件系统中的文件或者目录。 |
Scope unit | .scope | 外部创建的进程。 |
Slice unit | .slice | 一组分层组织的单元,用于管理系统进程。 |
Snapshot unit | .snapshot | systemd 管理器的保存状态。 |
Socket unit | .socket | 进程间通信套接字。 |
Swap unit | .swap | 交换设备或者交换文件。 |
Timer unit | .timer | 一个系统定时器。 |
日期:2020-09-17 00:13:08 来源:oir作者:oir