
von Daten kommen. Damit wäre ein Haufen Arbeit und Konfiguration um sonst gewesen. Wer sein Raspberry Wheezy mit Win32 Disk Imager auf die SD-Karte aufgespielt hat, wird auch den umgekehrten Weg hinbekommen um eine Image seiner SD-Karte zu erstellen. Der Vorteil ist auch das diverse Versuche damit wieder recht einfach Rückgängig gemacht werden können wenn der Raspberry durch Programmierung oder Falschkonfiguration lahm gelegt wird. Also zwischen drin immer erst einmal den Raspberry sichern!
Sicherungsmethoden:
Die Sicherung der SD-Karte mit Win32DiskImager ist sicher einer der zuverlässigsten Sicherungen die gemacht werden kann. Jedoch ist sie recht umständlich wenn der Rapsberry fest verbaut ist. In dem Fall müsste der Raspberry zunächst manuell herunter gefahren werden und die SD-Karte entnommen werden. Dies ist nicht immer bquem oder praxisnah. Daher sollte man sich überlegen welche Sicherungsmethode Sinvoll ist. Der Raspberry kann sicherungen der SD-Karte im laufenden Betrieb ausführen. Dazu wird nicht einmal zusätzliceh Software benötigt. Der Befehl dd ist bereits in der Debian-Distrubution “wheezy” enthalten. Er ist in die Lage die gesamte SD-Karte auf einem USB-Speicher oder im Netzwerk zu sichern. Überlegt Euch vorher also wie Ihr sichern wollt. Es gibt immerhin einige Extras zu überlegen:
1. Überlegungen zur Sicherung im Netzwerk:
Eine Sicherung im Netzwerk kann bei mehreren Gigabyte recht lange dauern. Eine SIcherung über USB könnte hier enorme Vorteile bieten und auch die Erreichbarkeit des Raspberry von außern weiterhin gewährleisten ohne die WLAn Verbindung zu strapazieren. Da der Raspberry im WLAN evtl. nicht die vollen 100 oder 300 MBits Sekunde erreicht weil die Funkverbdinung nicht all zu besonders ist, sollte amn dies berücksichtigen. Besonders wenn ich wichtige Funktionen im Netzwerk oder über Internet bereit stelle. Zudem muss ich einen Netzwerkordner im Raspberry einbinden. Das kann ich mit Hilfe eines Sicherungsscriptes automatisieren
2. Überlegungen zur Sicherung auf USB
Eine Sicheurng auf einem USB Medium ist sicherlich eine gute und schnelle Lösung. Aber nicht immer kann ich den Raspberry mit ausreichend USB-Speicher versorgen. Sitzt der Rapsberry im Sicherungskasten, kann es sein das hier kein Platz ist um ein USB-Speichermedium an zuschließen. Zudem rate ich nicht dazu die Speichermedien / Sicherungsmedien dauerhaft am laufen zu halten. Ich rate dazu die Sicherungsmedien bei Bedarf ein zu schalten. Dies kann über Funksteckdosen mit Hilfe des Raspberrys (Siehe 433 MHz Funksteckdosen Projekt) automatisiert geschehen.
Auf die Weise ist das Sicherungsmedien zusätzlich abgesichert und sein Lebenszyklus wird maximiert.
3. Sicherung per FTP
Die Sicherung von FTP Ordner kann ebenfalls von außen geschehen. Es empfiehlt sich seine Projektdateien in einem FTP Ordner auf dem Raspberry ab zu legen. Hier können Unterordner, je nach Projekt erstellt werden. So ist es Möglich die Pjektdateien per FTP von einem anderen Gerät oder sogar von extern regelmäßig zu sichern. Wer einen weiteren Raspberry oder eine Server betreibt kann hier sehr einfach automatisierte Sicherungen erstellen. Der Vorteil ist, das die Projektdateien auf diese Weise auch sehr bequem von außen überarbeitet werden können. Zwar wird so in der Regel nicht der gesamte Raspberry gesichert, aber die Projektarbeiten können auf diese Weise bequem gesichert werden und evtl. Fehler auch Rückgängig gemacht werden.
Sicherung des Raspberry im laufenden Betrieb:
Die Sicherung mit dem Befehl dd ist eigentlich recht einfach. Mit folgendem Befehl kann ich recht schnell die SD-Karte sichern:
dd if=/dev/mmcblk0 of=/backup/raspi/MeinBackup.img bs=1MB
Jedoch sollte man schon wissen was der Befehl dd für Bedinungen stellt. Die Anweisung if=/dev/mmcblk0 prüft ob die SD-Karte in das Dateisystem eingebunden ist. UNter Linux-Systemen werden Speichermedien nicht als Laufwerksbuchstaben eingebunden wie unter Windows, sondern als Ordner. Dies passiert auch mit Netzwerkordnern von anderen Systemen. Dazu Später jedoch mehr. Die SD-Karte hat also im Ordner /dev (Devices) einen Eintrag erhalten. Dieser Geräteeintrag heißt mmcblk0. Nur in seltenen Fällen sollten diese Bedingungen anders sein. Existiert also diese Datei kann die SD-Karte gesichert werden. Die Abfrage mit if ist hier also eine Bedingung die Eintreffen muss das überhaupt gesichert wird. Mit of= wird nun das Ziel angegeben. Vorzugsweise seinen Wunschordner mit einem Dateinamen und der Endung .img. So kann die gesamte SD-Karte in einer Imagedatei gesichert werden. Mit bs= wird die Blockgröße angegeben in dem die Sicherung erstellt wird. Dies ist jedoch ein Thema für sich und hat wiederum etwas mit Auslastung des Raspberry’s und Datentransfer an sich zu tun. 1MB empfiehlt sich jedoch als guter Richtwert. Wer mehr dazu wissen will, sollte ein wenig googeln, Ein weiterer Link zu Info’s rund um den Befehl dd wäre: http://wiki.ubuntuusers.de/dd?redirect=no
Um nun jedoch in einem Netzwerkordner auf einem anderen Gerät wie z.B. einem Windows Rechner oder einer NAS-Festplatte zu sichern, muss diese Freigabe zunächst einbinden / mounten. Dazu sollte zunächst ein Ordner erstellt werden. Wo ihr diesen erstellt liegt bei Euch. Unpraktisch wäre hier jedoch in dem FTP Ordner. Das könnte zu Problemen beim Zugriff von extern führen. Auf dem Raspberry Empfiehlt sich der Ordner /var. Erstellt hier einen Ordner mit dem Namen Backup:
sudo mkdir /var/imagebackup
Nun muss zunächst die Unterstützung für SMB Freigaben installiert werden falls dies noch nicht geschehen ist:
sudo apt-get update
sudo apt-get install smbclient
Ist dies Fehlerfrei geschehen kann die gewünschte Netzwerkfreigabe im Raspberry unter unserem Ordner backup zur Verfügung gestellt werde (mounten).
sudo mount -t cifs -o user=USERNAME,password=PASSWORD,rw,file_mode=0777,dir_mode=0777 //IP-ADRESSE-FREIGABEN/FREIGABENAME /var/imagebackup/
Bitte auf die Freigabe mit zwei Backslash achten: //192.168.78.1/NAS. Wer in dem Usernamen oder dem Passwort ein Leerzeichen verwendet, sollte diese dann in Anführungszeichen setzen. Siehe folgendes Bbeispiel:
sudo mount -t cifs -o user=”USER NAME”,password=”PASS WORD”,rw,file_mode=0777,dir_mode=0777 //192.168.178.1/Sicherungen /var/imagebackup/
Nun haben wir alle Vorraussetzungen erfüllt und können mit dem angepassten Befehl dd eine Sicherung erstellen:
dd if=/dev/mmcblk0 of=/home/backupRaspiBackup.img bs=1MB
Um das ganze nun zu automatisieren sollte man das Mounten des Netzwerkpfades und den Sicherungsbefehl in eine Bash Datei speichern und über einen Cronjob ausführen. Alternativ dazu kann ich den Mountbefehl beim starten des Raspberry dauerhaft einbinden.Welchen weg man geht bleibt einem selbst überlassen. Möchte ich die Ressourcen des Raspberry und der WLAN Verbindung weiter schonen, mounte ich den Netzwerkpfad erst kurz vor der Sicherung und dismounte das ganze anschließend (Siehe Bashscript unter Variante A:
A. Automatisiert mit Bashscript sichern:
Um die Sicherung zu automatisieren, sollte ein Bash-Script erstellt werden. Als vorbereitung hierfür legen wir eine Ordner unter /etc an mit dem Namen backup:
sudo mkdir /var/shscripts
Dort erstellen wir nun eine neue Bashdatei mit Hilfe von nano “Dem Texteditor:
sudo nano /var/shscripts/imagebackup.sh
Da nano direkt die Datei erzeugt und geöffnet hat können wir nun folgenden Ihnalt eingeben oder hinein kopieren:
#!/bin/bash
sudo mount -t cifs -o user=USERNAME,password=PASSWORD,rw,file_mode=0777,dir_mode=0777 //IP-ADRESSE-FREIGABEN/FREIGABENAME /home/backup
sudo dd if=/dev/mmcblk0 of=/var/imagebackup/RaspiBackup.img bs=1MB
sudo unmount /home/backup
Anschließend wird das ganze gespeichert. Die neue Bash Datei muss nun noch mit folgendem Befehl ausführbar gemacht werden:
sudo chmod +x /etc/backup/backupraspisd.sh
Im Anschluss können wir nun unseren Cronjob (Aufgabe) erstellen um unser Bash-Script regelmäßig auf zu rufen und so den Raspberry zu sichern:
sudo crontab -e
Wenn crontab geöffnet wurde kann folgende Zeile eingeben werden. Die Zeitangaben sollten jedoch den eigenen Bedürfnissen angepasst werden:
Einfügen:
00 01 * * 01,04 sudo /var/shscripts/.sh
Anschließend das ganze wieder speichern und fertig!
(mehr über Zeitgesteuerte Befehle oder Cronjobs hier)
B. Netzwerkpfad dauerhaft mounten (bei jedem Neustart):
mit Nano den Befehl in die fstab aufnehmen:
sudo nano -Bw /etc/fstab
Einfügen:
sudo mount -t cifs -o user=USERNAME,password=PASSWORD,rw,file_mode=0777,dir_mode=0777 //IP-ADRESSE-FREIGABEN/FREIGABENAME /var/imagebackup/
und anschließend speichern. Nun kann nach belieben weiter verfahren werden. Entweder per Crontjob wie oben unter A oder auf andere Weise.
Rücksicherung der Image Datei (Restore)
Wer die erstelle Sicherungen wieder auf der SD-Karte herstellen will, kann dies mit Win32DiskImage machen oder mit dem Befehl dd ebenso erledigen. Allerdings muss die SD-Karte in jedem Fall in einen anderen System eingelegt werden. Die Rücksicherung im laufenden Betrieb des Raspberry ist leider nicht ohne weiteres Möglich.
Zum Rücksichern mit dd brauch nur die Pfadangabe verstauscht werden. Der aktuelle Pfad der SD-Karte sollte allerdings entsprechen angepasst werden (/dev/disk1):
dd if=/var/imagebackup/RaspiBackup.img of=/dev/disk1 bs=1MB count=1
Raspberry Image Backup
Wer seinen Raspberry liebt sollte diversen Problemen vorbeugen. Es lohnt sich regelmäßig Sicherungen der SD-Karte zu machen. Da die SD.Karte in Ihren Lese und Schreibzyklen begrenzt sind, kann es irgendwann zum Verlust
Projekte rund um Elektronik, Server, Windows und mehr