写成了一键脚本,直接执行即可。
需要注意的是,挂载的路径和 systemd service 的名字要对应上,比如挂载的路径为 /mnt/nas
那 service 的文件名应为 mnt-nas.service
。
shell
#!/usr/bin/env bash
SERVER="nas.local"
USERNAME="foo"
PASSWORD="bar"
apt install cifs-utils -y
groupadd -g 17510 nas
cat <<EOF >> /etc/systemd/system/dns-ready.service
[Unit]
Description=Wait for DNS to come up using 'host'
After=nss-lookup.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c "until host ${SERVER}; do sleep 1; done"
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >> /etc/systemd/system/mnt-nas.mount
[Unit]
Description=Mount NAS
Requires=network-online.target
After=network-online.target dns-ready.service
[Mount]
What=//${SERVER}/Data
Where=/mnt/nas
Type=cifs
Options=username=${USERNAME},password=${PASSWORD},dir_mode=0775,gid=nas,rw,file_mode=0664
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start dns-ready.service
systemctl enable dns-ready.service
systemctl start mnt-nas.mount
systemctl enable mnt-nas.mount