[Raspberry Pi] NAS-Speicher mounten Befehl beim Starten?

3 Antworten

Normalerweise in der fstab eintragen. Je nach Initsystem noch dei netmounts aktivieren, die finden logischerweise zu einem späteren Zeitpunkt statt.

ich hab das anders gemacht und zwar über die fstab dort die netzwerkfreigaben eingetragen.

automatisch mounten mit /etc/fstab (raspberry pi)

- sudo nano /etc/fstab

zeile einfügen (zwischen den einträgen mit TAB-Taste - WICHTIG!!!)

//192.168.100.200/homes /home/scorp/Office-NAS cifs defaults,nofail,credentials=/home/scorp/.smbcreds,gid=1001,uid=1001 0 0

und ich hab eine smbcreds datei für benutzername und pw für den samba-server angelegt, du kannst auch benutzername und pw direct in die fstab schreiben

gid und uid sind die ids des users auf dem server wo samba läuft.

und wenn die netzlaufwerke mal nicht beim start erreichbar sind reicht dann sudo mount -a und alles wird gemounted was zu sehen ist.

beim windoof pc einfach die freigabe ein binden wie gewohnt. mit nutzername und dem samba pw.

verreisterNutzer  10.10.2021, 17:26

Ich habe das mal gemacht, was auch mit mount -a funktioniert, aber nicht beim Hochfahren und ich kann ja nicht immer mount -a machen, wenn es sofort funktionieren muss🤔

//192.168.178.62/apache2 /mnt/mycloud cifs defaults,nofail,username=apache2,password=PASSWORT 0 0

Das gid und uid brauche ich ja nicht, ich benutze ganz normal den User pi.

0
guenterhalt  10.10.2021, 22:35
@verreisterNutzer

wenn es geht, sobald das System läuft, liegt der Verdacht nahe, dass das Netzwerk beim Mounten noch nicht verfügbar war. Läuft in deinem System systemd ? Da könnten man Bedingungen formulieren.

Du könntest aber auch ein Script mit dem mount-befehl laufen lassen, das erst dann terminiert, wenn mount erfolgreich ist.

(nur symbolisch)

while ( 1) {
    mount //192.168.178.62/ /mnt/mycloud cifs ...
     if ($? == 0 ) exit 
              }

1
verreisterNutzer  10.10.2021, 22:58
@guenterhalt

systemd läuft bei mir nicht, nein. Sollte ich das mal ausprobieren?

Und wäre die while-Schleife dann genau so, wie du sie (außer Zeile 2) aufgeschrieben hast?

0
sissydoc  10.10.2021, 23:20
@verreisterNutzer

also bei mir ist das so das ein PI den NAS mit samba bereitstellt und ich an einem anderen PI oder vom win-lapi drauf zugreife.

also wenn der PI mit dem NAS läuft bevor ich den anderen anmache mounted der arbiets-PI die netzlaufwerke ohne mount -a aufrufen zu müssen.

mount -a brauche ich nur wenn ich den NAS-PI nach meinem arbeits-PI anmache.

1
guenterhalt  11.10.2021, 09:09
@verreisterNutzer
Sollte ich das mal ausprobieren?
nein, das geht so nicht.
Das Programmpaket systemd ist der "Blutkreislauf" eines Betriebssystems.
Systemd hat in vielen Distributionen den alten "Blutkreislauf" init ersetzt.
Init ist der Startprozess, in dem alle notwendigen Programme der Reihe nach gestartet werden.

Systemd macht das etwas anders. Da wird  in Kofigurationsdateien z.B. eingetragen, ob dieses Programm auf die Ausführung  eines anderen warten soll.

Init kann nicht so einfach durch systemd ersetzt werden.

Ich habe mal ein kleineres Programm entworfen, das eine Lösung sein könnte.
Schreibe den Code in eine Datei, mache sie mit chmod +x <Name der Datei> ausführbar
und schreibe den Datei-Namen statt dem mount-Befehl  in die /etc/rc.local.

Die einzelnen Elemente des Mount-Befehls sind hier einzelnen Variablen zugeordnet, die mit set  den dahinter stehenden Wert erhalten.
Da ich kein NAS habe, kann ich das nicht testen. Mit lokalen Geräten hat es funktioniert.
Bei den Optionen bin ich nicht sicher.     nofail würde ich weglassen.  


Vorher musst du aber noch das Paket tcl  installieren.

!/bin/bash

# \exec tclsh "$0" "$@"

set mountPoint  /mnt/mycloud

set mountSRC     "//192.168.178./mnt/mycloud62/apache2"

set mountType cifs

set mountOption "defaults,nofail,username=apache2,password=PASSWORT"

while { 1 } { catch { eval exec "mount -t $mountType -o mountOption $mountSRC $mountPoint" }

            set all [eval exec mount ]

            set ret [regexp $mountPoint $all ]

            if { $ret == "1" } break

            after 1000

            }

puts "gemounted"

exit

1
guenterhalt  11.10.2021, 09:46
@guenterhalt

irgendwie ist hier aus Text Code und umgekehrt geworden. Keine Ahnung, wie das passiert ist.

0

Sowas gehört in die fstab, da sollten alle fixen Mounts rein.