Warten Sie effizient, bis das NAS hochfährt, um es zu mounten

Warten Sie effizient, bis das NAS hochfährt, um es zu mounten

Problem: Der Server bootet 3 Minuten, der Raspberry Pi bootet 30 Sekunden. Nach einem Stromausfall bootet der RPi schneller und mountet die NAS-Festplatte nicht.

Dieser spezielle RPi benötigt eine Festplatte, um darauf aufnehmen zu können. Ohne die (externe) Festplatte ist der RPi also nutzlos. Ich habe RPi autostart.sh verwendet, um:

mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock;

als ich dieses Problem bemerkte. Also habe ich eine Schleife in RPis autostart.sh erstellt, in der ich NAS mounte. Während des normalen Betriebs (sobald die Mount-Funktion abgeschlossen ist) kann dieses Problem nicht mehr auftreten: Wenn nur einer von beiden neu startet, funktioniert die RPi-Mount-Funktion einwandfrei (glaube ich).

Wäre dies eine gute Lösung (nur beim RPi-Start ausgeführt) und könnte es besser oder eleganter gemacht werden?

until mountpoint -q /storage/nas || mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock; do sleep 30; done

Dies sollte nicht versuchen, zu mounten, wenn es bereits gemountet ist, und andernfalls - mounten. Außerdem sollte auf einen erneuten Versuch gewartet werden, bis es gemountet ist. Scheint wie vorgesehen zu funktionieren, außer dass RPi bootet (nicht auf Mounten WARTEN), aber dieser RPi (eigentlich Kodi) wird eingefroren, bis NAS gemountet ist.

Das Einzige, was meiner Meinung nach hier hinzugefügt werden könnte, ist: Senden Sie WOL vor dem Ruhezustand an NAS.

Klarstellung: Dies ist eine OPENelec RPi-Installation und es wird nicht fstab verwendet, sondern die oben beschriebene Methode.

Antwort1

Sie können versuchen, diebgMount-Option für NFS, falls vorhanden.Mann 5 NFS:

Wenn die Option bg angegeben ist, führt ein Timeout oder ein Fehler dazu, dass der Befehl mount(8) ein Kind abspaltet, das weiterhin versucht, den Export zu mounten. Das Elternteil kehrt sofort mit einem Exitcode von Null zurück. Dies wird als „Hintergrund“-Mount bezeichnet.

Antwort2

Verwenden Sie zum Mounten Ihrer Laufwerke beim Booten wirklich ein Shell-Skript und nicht fstab?

Informieren Sie sich über /etc/fstab (führen Sie den Befehlman fstab) und achten Sie insbesondere auf die Option _netdev, damit Sie am Ende so etwas erhalten wie.

10.10.10.10:/srv/share /mnt/mymnt   nfs4    defaults,noexec,nosuid,_netdev,auto     0       0

Haftungsausschluss: Kopieren Sie den obigen Text nicht, ohne sich vorher über fstab zu informieren!

PS: Abhängig von Ihrem Betriebssystem könnte auch die Option „nobootwait“ eine Überlegung wert sein.

PSPS Siehe auch Mount-Optionen in nfs(5)

verwandte Informationen