Hallo Hofei,
erst mal vielen Dank für das tolle Tutorial. Viel Hintergrundwissen vermittelt, sodass man, so denke ich, die Funktion gut verstehen kann.
Nun, warum melde ich mich? Habe eben doch noch ein Problem, welches ich nicht gelöst bekomme
Vorab vielleicht noch: Mit einem Eintrag in der /etc/fstab und mit mount -a funktioniert das mounten problemlos!!
Folgende Fehlermeldung: wenn ich es über systemd versuche:
root@raspi-2:~# systemctl start mnt-raspi_backup.mount
A dependency job for mnt-raspi_backup.mount failed. See 'journalctl -xe' for details.
Ergebnis von journalctl -xe
Mai 27 12:25:56 raspi-2 systemd[1]: mnt.mount: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit mnt.mount has entered the 'failed' state with result 'exit-code'.
Mai 27 12:25:56 raspi-2 systemd[1]: Failed to mount Mount von /mnt.
░░ Subject: A start job for unit mnt.mount has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit mnt.mount has finished with a failure.
░░
░░ The job identifier is 1518 and the job result is failed.
Mai 27 12:25:56 raspi-2 systemd[1]: Dependency failed for Mount auf NAS fuer RASPI-Backups.
░░ Subject: A start job for unit mnt-raspi_backup.mount has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit mnt-raspi_backup.mount has finished with a failure.
░░
░░ The job identifier is 1449 and the job result is dependency.
Mai 27 12:25:56 raspi-2 systemd[1]: mnt-raspi_backup.mount: Job mnt-raspi_backup.mount/start failed with re>
Nun noch die Info's, wie ich die Dateien und Berechtigungen aufgesetzt habe:
Mein mount-directory ist:
root@raspi-2:~# cd /mnt
root@raspi-2:/mnt# ls -al
insgesamt 12
drwxr-xr-x 3 root root 4096 26. Mai 13:55 .
drwxr-xr-x 18 root root 4096 8. Mai 18:42 ..
drwxr-xr-x 2 root root 4096 26. Mai 13:55 raspi_backup
root@raspi-2:/mnt#
Zugangsdaten sind in /etc/smbcredentials hinterlegt. Die müssen stimmen, weil sie auch über die /etc/fstab mit mount -a funktionieren.
systemd-escape --suffix=mount --path /mnt/raspi_backup
mnt-raspi_backup.mount
[Unit]
Description=Mount auf NAS fuer RASPI-Backups
Requires=serverctl.service
After=serverctl.service
Conflicts=shutdown.target
ConditionPathExists=/mnt/raspi_backup
[Mount]
What=//192.168.178.2/raspberries/raspi-2/backup
Where=/mnt/raspi_backup
Options=credentials=/etc/smbcredentials,uid=1000,gid=1000,vers=3.0
Type=cifs
[Install]
WantedBy=multi-user.target
Display More
Muss noch dazu sagen, dass ich den Eintrag bei options OHNE vers=x.x, mit vers=1.0 + vers=3.0 mit selbem Ergebnis versucht habe.
Nun für die Abhängigkeit:
[Unit]
Description=serverctl.service: Waiting for Network or Server to be up
After=network.target
[Service]
Type=oneshot
TimeoutStartSec=95
ExecStart=/usr/local/sbin/serverctl 192.168.178.2
[Install]
WantedBy=multi-user.target
Display More
Jetzt noch das Script serverctl
#!/bin/bash
#==============================================================================================
# serverctl by TomL*thlu.de
#
# Script-Name : serverctl
# Version : 1.0
# Date : 31.07.2017
# Lizenz : GNU GPL3
# Description : Check if given server is reachable
#==============================================================================================
[ -z "$1" ] && Server="192.168.178.2" || Server=$1
echo "active/running Server=$Server" | systemd-cat -t "thlu:`basename $0`" -p "info"
timeout=85
Diff=0
HomeNetIsConnect=-1
Start=$(date +%s);
while [ true ]; do
/bin/ping -c1 -W1 -q $Server &>/dev/null
HomeNetIsConnect=$?
[ $HomeNetIsConnect -eq 0 ] && break
/bin/sleep 0.5
End=$(date +%s);
Diff=$((End-Start))
[[ Diff -gt timeout ]] && break
done
rc=0
if [[ $HomeNetIsConnect -eq 0 ]]; then
echo "Host $Server is reachable! (RC:$HomeNetIsConnect, after $Diff Seconds wait)" | systemd-cat -t "thlu:`basename
$0`" -p "info"
else
echo "Host $Server is not reachable! (RC:$HomeNetIsConnect, after $Diff Seconds wait)" | systemd-cat -t "thlu:`base
name $0`" -p "err"
rc=1
fi
echo "Successful terminated with exitcode=$rc" | systemd-cat -t "thlu:`basename $0`" -p "info"
exit $rc
Display More
Nun noch die Berechtigungen von serverctl:
root@raspi-2:/usr/local/sbin# ls -al serverctl
-rwxr-xr-x 1 root root 1262 26. Mai 14:50 serverctl
Was ich auch noch geprüft habe:
systemctl status serverctl.service
Ausgabe:
● serverctl.service - serverctl.service: Waiting for Network or Server to be up
Loaded: loaded (/etc/systemd/system/serverctl.service; disabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-05-27 12:25:55 CEST; 24min ago
Process: 1848 ExecStart=/usr/local/sbin/serverctl 192.168.178.2 (code=exited, status=0/SUCCESS)
Main PID: 1848 (code=exited, status=0/SUCCESS)
CPU: 126ms
Mai 27 12:25:55 raspi-2 systemd[1]: Starting serverctl.service: Waiting for Network or Server to be up...
Mai 27 12:25:55 raspi-2 thlu:serverctl[1855]: Host 192.168.178.2 is reachable! (RC:0, after 0 Seconds wait)
Mai 27 12:25:55 raspi-2 thlu:serverctl[1858]: Successful terminated with exitcode=0
Mai 27 12:25:55 raspi-2 systemd[1]: serverctl.service: Succeeded.
Mai 27 12:25:55 raspi-2 systemd[1]: Finished serverctl.service: Waiting for Network or Server to be up.
Sollte doch alles passen oder?????????????
So, ich glaube, ich habe soweit alles dokumentiert.
Hast Du oder jemand aus der Community ne Idee