Das bereits schon in diesem älteren Thread angesprochene Problem mit den Konflikten bei der Kombination Laptop + fstab + wlan0 + poweroff + wechselnde Netze mit oder ohne Home-Server hat mich jetzt doch einige Tage beschäftigt und war nicht so einfach zu lösen. Irgendwann ging es mir außerdem zusätzlich mächtig gegen den Strich, keine übertragbare Lösung für mehrere Plattformen zu haben und auf jede einzelne Maschine individuell reagieren zu müssen.
Am Ende haben sich dann diese Anforderungen für ein fehlerfreies Mounten der Netzlaufwerke wie von selber ergeben:
- Eine Lösung (durch einfaches Kopieren) für alle Plattformen wie Desktops, Laptops/Notebooks, Raspberry Pi's, mehrere VM'S in unserer Netzwerkumgebung
- Das Interface (eth0 oder wlan0) und die jeweils damit verbundenen eigenen Besonderheiten müssen berücksichtig werden
- Keine Boot-Fehler-Nachrichten (mount failed), wenn die mobilen Geräte mit fremden öffentl. Netze verbunden sind und der Home-Server nicht oder noch nicht verfügbar ist
- Kein minutenlanges Warten auf Stop-Jobs bei der Konflikt-Situation WLan + Poweroff, weil der umount nicht vor Close-WLan durchgeführt wird.
- Keine mehrfachen Boot-Mount-Fehler in Journalctl wg. mehrerer Fehlversuche, weil die älteren PC mit ggf. langsamer älterer WiFi-HW ihre Zeit zum Verbinden brauchen
- Behebung der fstab-Probleme beim Raspberry Pi, der manchmal via fstab gar nicht mountet, und manchmal doch
- Lösung für fehlende _netdev-Unterstützung bei den Mount-Options (wg. CIFS)
- Schnelles, unkompliziertes manuelles ein- und aushängen der mounts muss möglich sein, wenn der PC via öffentliches Netz und OpenVPN zum Homeserver verbunden ist/werden soll
Code: Alles auswählen
root@RaspiTestPC:/home/thomas# journalctl | grep mountctrl
Aug 16 20:12:42 RaspiTestPC systemd[1]: Starting mountctrl (avoid mount + umount + stop-job-errors)...
Aug 16 20:12:42 RaspiTestPC systemd[1]: Started mountctrl (avoid mount + umount + stop-job-errors).
Aug 16 20:12:51 RaspiTestPC logger[575]: mountctrl: Interface eth0 is up! (after 3 Seconds wait)
Aug 16 20:12:56 RaspiTestPC logger[598]: mountctrl: Network is reachable! (after 5 Seconds wait)
Darüber hinaus müssen nur noch die benötigten Files kopiert werden:
Code: Alles auswählen
mountctrl das eigentliche Sript, zuständig für mount und umount
mountctrl.service der systemd-Service, der mountctrl startet und beendet
Code: Alles auswählen
mountctrl_lanoff_helper für WLan-Geräte, um die Mounts zu schließen, bevor das Interface wlan0 "down" ist
mountctrl_poweroff_helper.desktop ein Desktop-Starter für WLan-Geräte, um die ordentliche Shutdown-Reihenfolge zu gewährleisten.