[Raspberry Pi] NAS-Speicher mounten Befehl beim Starten?
In /etc/rc.local habe ich
mount -o username=apache2,password=PASSWORT //192.168.??/apache2 /mnt/mycloud
ganz unten vor exit 0 eingetragen, jedoch wird bei df -h kein gemountetes Laufwerk angezeigt, also hat es nicht richtig funktioniert. Muss ich das anders konfigurieren?
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.
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
}
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?
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.
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
irgendwie ist hier aus Text Code und umgekehrt geworden. Keine Ahnung, wie das passiert ist.
Sowas gehört in die fstab, da sollten alle fixen Mounts rein.
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🤔
Das gid und uid brauche ich ja nicht, ich benutze ganz normal den User pi.