Als Backup-Medium ist es nicht ratsam den internen Speicher zu verwenden. Sollte die SD-Karte ausfallen, währe somit auch das Backup verloren. Eine Idee wäre, dass Verwenden von USB-Sticks, die man direkt am Raspberry anschließt. Ich persönlich habe eine Festplatte an meine FritzBox angeschlossen, die ich in meinem Netzwerk als Netzlaufwerk eingerichtet habe.
In diesem Beitrag erkläre ich euch, wie ihr einen an der FritzBox angeschlossenen Speicher (FritzNas), auf eurem Raspberry als Netzwerklaufwerk einrichtet.
Contents
FritzNas einrichten
FritzNas lässt sich sehr einfach über die Web-Oberfläche der FritzBox einrichten. Nachdem man einen USB-Speicher an die FritzBox angeschlossen hat, erscheint sie unter „Heimnetz/Speicher(NAS)“.
In meinem Fall eine 1TB-USB-Festplatte. Man sieht sehr gut welche Partitionen erkennt wurde. „ASMT-2115-0(EFI)“ und „ASMT-2115-02(EXTERNE)“. Wie man am Namen und an der Partitionsgröße gut erkennt, ist die Partitionen „ASMT-2115-02“ die gewünschte. Die Bezeichnung sollte man sich für das spätere Einbinden merken.
Des Weiteren muss man einem Benutzer die Berechtigung geben, damit er auf den USB-Speicher zugreifen darf. Dies geschieht über die Benutzereinstellung „System/Fritz!Box Benutzer“. Dem gewünschten Benutzer muss der Zugang auf NAS-Inhalte erlaubt werden:
Verwendet man eine USB3.0-Festplatte ist es sinnvoll, sich einmal die USB-Einstellungen der FritzBox anzuschauen. Unter „Heimnetzt/USB-Geräte/USB-Einstellungen“ lässt sich der USB-Stromsparmodus einstellen. Die USB3.0-Festplatte sollte im Power-Modus betrieben werden.
Vorbereitung auf dem Raspberry
Sollten sie noch nicht installiert sein, muss die CIFS-Unterstützung nachinstalliert werden:
sudo apt-get install cifs-utils
FritzNas einbinden
Das Einrichten eines Netzlaufwerks unter Raspbian (Linux) läuft über einen sogenannten „Mount-Ordner“. Man gibt an, in welchem Ordner das Netzlaufwerk „eingebunden“ werden soll, bzw. wo es später zu finden sein soll. Entweder nimmt man einen bereits vorhandenen Ordner oder man erstellt einen neuen Ordner:
sudo mkdir /media/Fritz.Nas
Der erstellte Ordner dient später als Einbindungs-Punkt. Möchte man ein dauerhaftes systemweites Einbinden, muss „root“ Eigentümer des Ordner sein. Ein persönliches Einbinde ist natürlich auch möglich, mehr Infos im Ubunte Wiki.
Das eigentlich „Einbinden“ wird mit Hilfe des Befehls „mount“ realisiert. Man kann das Netzlaufwerk temporär oder dauerhaft einbinden. Im folgenden werde ich beide Verfahren beschreiben
temporäres Einbinden
Möchte man kurz eine Datei vom Netzlaufwerk „downloaden“ bietet sich das temporäre Einbinden an. Nach einem Systemneustart ist das Laufwerk wieder getrennt. Bei einem temporären Einbinden, muss man beim Mount-Befehl alle benötigten Optionen mit übergeben:
sudo mount -t cifs -o username='USER',password='PASSWORT',uid=1000,gid=1000,sec=ntlmv2 //192.168.2.1/fritz.nas/ASM-2115-02/Backup /media/Fritz.Nas
Der Parameter -t gibt an, welches Dateisystem eingebunden werden soll. In unserem Fall „cifs“ (Common Internet File System).
Mit dem Parameter -o leitet man weitere Optionen ein. In unserem Fall den Usernamen und das Passwort des Benutzers, der auf der FritzBox eingerichtet wurde. Die „uid“ und „gid“ Angaben beschreiben die Rechte-Vergaben. Hier wird das „Einbenutzer-System“ verwendet. Durch die Angabe der uid=1000 und gid=1000 wird dem Benutzer „pi“ erlaubt, auf die Festplatte zur schreiben bzw. Daten zu lesen. Möchte man einem anderen Benutzer die Erlaubnis geben, müssen diese Angaben entsprechend angepasst werden. Die „uid“ und „gid“ lässt sich durch den Befehl „id BENUTZER“ rausfinden. Der Vorteil des „Einbenutzer-System“ ist der, dass der Zeitstempel der Dateien bleibt beim kopieren erhalten. Mehr Infos im Ubuntu Wiki. Als letzte Option wird noch mit „sec=ntlmv2“ der verwendete Sicherheitsmodus übermittelt. Bei der FritzBox 7490 ist es „NTLMv2 password hashing“. Bei älteren FritzBoxen kann es unter Umständen der „ntlmv“ Modus sein. Sollte also eine Verbindung nicht möglich sein, könnte hier der Fehler liegen. Weitere Infos zum „secure-mode“ könnt Ihr hier nachlesen.
Anschließend gibt man die Adresse des Netzlaufwerkes an. Wichtig ist hier, dass man die IP-Adresse der FritzBox ausschreibt. Es wird nämlich keine Namensauflösung durchgeführt. „Fritz.Box“ führt also nicht automatisch zur FritzBox. Der Name „fritz.nas“ muss identisch mit dem eingestellten Namen in der Fritz.Bix-Weboberfläche unter „Heimnetzt/Speicher(NAS)“ unter Heimnetzfreigabe sein. „ASM-2115-02“ muss natürlich auch entsprechend angepasst werden. Da mein Benutzer nur Rechte auf den Ordner „Backup“ hat, habe ich den Pfad zu diesem Ordner angegeben.
Zum Schluss wird dann der Mount-Punkt angegeben. Hier findet man später die Dateien des Netzlaufwerkes.
Dauerhaftes Einbinden
Möchte man öfters mit Dateien auf dem Netzlaufwerk arbeiten, ist es sinnvoll dieses dauerhaft einzubinden. Dazu ist ein Eintrag in der entsprechenden Konfigurationsdatei nötig:
sudo nano /etc/fstab
Hier wird im Grunde der Befehl zum temporären Einbinden eingetragen. Jedoch muss hier auf eine etwas andere Syntax geachtet werden.
//192.168.2.1/fritz.nas/ASMT-2115-02/Backup /media/Fritz.Nas cifs username='USER',password='PASSWORT',uid=1000,gid=1000,sec=ntlmv2,noauto 0 0
Hier beginnt man mit dem Ort des Netzlaufwerks. Dann kommt der Mount-Punkt, gefolgt vom Dateisystem. Anschließend beginnt man mit der Übergabe der Optionen. Hier kommt jedoch eine Option dazu, „noauto“. Dies bewirkt, dass das Netzlaufwerk beim Systemstart nicht direkt eingebunden wird.
WICHTIG: Zwischen den Einträgen (Adresse, Mount-Punkt, Optionen) muss ein Tabulator (TAB) eingefügt werden.
Das automatische Einbinden muss unterbunden werden, da zum Zeitpunkt des Einbindens die Netzwerkfunktion des Raspberrys noch nicht zur Verfügung steht. Damit das Netzlaufwerk trotzdem automatisch eingebunden wird, ist ein Eintrag im Autostart notwendig.
sudo nano /etc/rc.local
Vor der Zeile „exit 0“ folgenden Eintrag einfügen:
(sleep 30 mount /media/Fritz.Nas)&
Das „sleep“ bewirkt, dass erst nach 30 Sekunden das Einbinden ausgeführt wird. Mit „mount /media/Fritz.Nas“ wird das Netzlaufwerk welches diesen Mount-Punkt hat eingebunden. In unserem Fall die Fritz.Nas. Möchte man mehrere Netzlaufwerke einbinden, kann man entweder mehrere Einträge eintragen oder mit „mount -a“ alle Netzlaufwerke einbinden.
Bei einem Systemneustart sollten nun das Netzwerklaufwerk automatisch eingebunden werden und unter „media/Fritz.Nas“ die Dateien zu finden sein.
ls /media/Fritz.Nas
Es sollten nun die Ordner des Netzlaufwerks aufgelistet werden.
Optimierung
Wie ihr bereits mitbekommen habt, werden die Zugangsdaten im Klartext in die Datei „etc/fstab“ geschrieben. Dies ist nicht gerade elegant. Besser ist es eine Authentifikationsdatei zu verwenden. Dies ist nichts anderes als eine versteckte Text-Datei. Anstatt die LogIn-Daten im Klartext in „/etc/fstab“ zuschreiben, gibt man dann den Pfad zu dieser Authentifizierungsdatei an.
sudo nano .smbcredentials
Hiermit wird eine versteckte Datei im Home-Verzeichnis mit dem Namen „smbcredentials“ erstellt und der Texteditor geöffnet, um diese zu bearbeiten. In ihr werden dann die LogIn-Daten wie folgt hinterlegt:
user=USER passwd=PASSWORT
USER und PASSWORT entsprechend anpassen. Damit nur der Besitzer dieser Datei den Inhalt lesen kann, vergibt man noch entsprechend die Rechte:
chmod 600 ~/.smbcredentials
ACHTUNG: Benutzer mit root-Rechten oder einer Live-CD können die Authentifikationsdatei lesen. Um dies zu unterbinden kann man ein privates Verzeichnis anlegen. Mehr Infos unter Ubuntuusers.
Anschließend muss noch der Eintrag zum Einbinden angepasst werden:
sudo nano /etc/fstab
Anstatt die LogIn-Daten nun direkt anzugeben, wird der Pfad zur Authentifikationsdatei angegeben:
//192.168.2.1/fritz.nas/ASMT-2115-02/Backup /media/Fritz.Nas cifs credentials=/home/Daniel/.smbcredentials,uid=1000,gid=1000,sec=ntlmv2,noauto 0 0
WICHTIG: Auch hier wieder auf den Tabulator zwischen den Einträgen achten.
Schöne Anleitung. Allerdings klappt bei etwas nicht und ich weiß nicht woran es hängt. Ich habe versucht, temporär mein fritz.nas einzubinden der mout Versuch ergibt aber folgende Fehlermeldung:
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Was mache ich Falsch?
Das Problem hatte ich auch und habe Stunden gebraucht es zu lösen! Gib bei den Parametern einfach ‚vers=1.0‘ ein und es sollte laufen!
Dauerhaftes Einbinden über fstab: Bei Raspbian Stretch klappts bei mir nur ohne “ und ‚ bei username und password. Vielleicht hilft es dem einen oder anderen.