Foto-Backup mit dem RasPi

© Oleksandr Homon, 123RF

Weggesichert

Wer gern unterwegs fotografiert, braucht ein mobiles Backup-Medium für die Fotos, um den Digicam-Speicher für neue Schnappschüsse freizumachen. Ein RasPi eignet sich perfekt als Basis für einen solchen Foto-Tank.

Das Ziel dieses Projekts ist ein möglichst einfach bedienbares System: Hochfahren, Speicherkarte aus der Kamera per Adapter an den RasPi anstöpseln, automatisches Kopieren der Bilder. Am Schluss soll der Pi sauber herunterfahren. Dummerweise fehlen ihm dafür in der Grundausstattung ein paar Dinge: Weder kann der Mini-Rechner dem Nutzer ohne Bildschirm Rückmeldung über den aktuellen Status geben, noch lässt er sich ohne eine Tastatur ohne Weiteres herunterfahren.

Zum Glück gibt es einfache Erweiterungen für die Sockelleiste des Raspberry Pi, die hier Abhilfe schaffen. Unter der Bezeichnung HAT (Hardware Attached on Top) hat die Raspberry Pi Foundation diese seit einiger Zeit normiert. Die Anforderungen für unsere Anwendung fallen recht moderat aus: Ein paar LEDs signalisieren dem Anwender, was gerade läuft; per Taster lässt sich der Shutdown auslösen.

Wer löten kann, ist hier natürlich klar im Vorteil. Für wenig Geld gibt es pfiffige Bausätze wie Berry-Clip [1] oder Fish-Dish [2] mit Platine und allen Teilen (LEDs, Widerstände etc.), die man nur noch zusammenlöten muss. Reine Softwerker wie der Autor greifen dagegen lieber zu bereits montierten Lösungen.

Der Artikel stellt weiter unten für den geplanten Einsatzzweck den einfachen HAT Pibrella von Pimoroni vor. Eine Alternative bietet das ebenfalls von Pimoroni stammende Display-O-Tron. Im Artikel "Weniger ist mehr" in dieser Ausgabe erfahren Sie Details zu dieser preislich und funktionell sehr interessanten Alternative. Zuerst geht es aber um den eigentlichen Zweck, das automatische Kopieren der Daten von Speicherkarte auf Festplatte.

Installation

Als Voraussetzung dient uns ein RasPi der dritten Generation (ein Pi 2 tut es auch) mit angeschlossener Festplatte. Als Betriebssystem kommt Raspbian "Jessie" Lite zum Einsatz. Installieren Sie das System zunächst wie gewohnt auf eine SD-Karte. Anschließend stöpseln Sie die Platte ein und partitionieren sie (Listing 1, erste Zeile).

Listing 1

 

$ sudo fdisk /dev/sda
[...]
$ sudo mkfs.ext4 /dev/sda1
$ sudo mkdir /data
$ sudo mount /dev/sda1 /data
[...]

Sie erstellen eine einzige Partition, die den kompletten Platz einnimmt. Achtung: Alle vorhandenen Daten gehen dabei verloren. Mit [W] schreiben Sie die Daten zurück und beenden Fdisk. Anschließend formatieren Sie die Platte, erstellen ein Mount-Verzeichnis und hängen die Platte dort ein (Listing 1, Zeile 3 bis 5). Damit das System die Platte zukünftig automatisch einhängt, ergänzen Sie noch die Datei /etc/fstab um die Zeile aus Listing 2.

Listing 2

 

/dev/sda1 /data ext4 user_xattr,noatime,acl 1 2

Erscheint Ihnen das alles zu kompliziert, weichen Sie auf die Anleitung aus dem Kasten "Automatische Installation" aus. Da dabei dann nicht nur die Daten auf der Platte ablegt werden, sondern auch das Betriebssystem, läuft Raspbian in diesem Fall noch etwas geschmeidiger als von SD-Karte. Für das Kopierprogramm fehlt noch der Rsync-Befehl – Sie ziehen das Programm aus den Paketquellen von Raspbian nach (Listing 3).

Listing 3

 

$ sudo apt-get update
$ sudo install rsync

Automatische Installation

Möchten Sie Raspbian nicht manuell auf die Festplatte kopieren und anpassen, können Sie den Prozess auch in einem Rutsch automatisch per Skript ausführen. Als Basis dazu dient ein laufendes Linux auf dem PC. Auf das Skript ging bereits ein Artikel in RPG 01/2016 im Detail ein [5], hier verwenden wir nur die Basisfunktionen.

Sie holen das Skript am besten direkt von Github ab, wozu Sie eventuell noch den Git-Client installieren müssen (Listing 4, Zeile 1 und 2). Des Weiteren stecken Sie eine SD-Karte für die Bootpartition in den Rechner (im Beispiel /dev/sdb) und schließen die Festplatte an (/dev/sdc). Die genauen Device-Namen sind wichtig, sonst droht Datenverlust. Die Kommandos blkid und fdisk -l helfen bei der Identifikation der Laufwerke. Nach dem Herunterladen des Raspbian-Images installieren Sie dann das System (Zeile 3).

Das Beispiel geht davon aus, dass Sie nach dem git clone das Verzeichnis nicht wechseln. Achtung: Alle Daten auf der Speicherkarte und der Festplatte gehen verloren. Die Größe der Datenpartition (Option -D) passen Sie für die verwendete Festplatte an. Die Datenpartition hängt das System später beim Booten automatisch im Verzeichnis /data ein.

Nachdem Raspbian auf die Karte und Festplatte aufgespielt wurde, kommt die Karte in den RasPi und die Platte per Kabel an einen USB-Anschluss. Nach dem ersten Systemstart müssen Sie das noch unkonfigurierte System wie üblich an Ihre Anforderungen anpassen.

Listing 4

 

$ sudo apt-get install git
$ git clone https://github.com/bablokb/apiinst
$ sudo apiinst/bin/apiinst -i /pfad/zu/20160527-raspbian-jessie-lite.zip -B /dev/sdb -t /dev/sdc -D 285G

Automatisches Kopieren

Nach dem Einstecken einer Speicherkarte mittels eines SD-Kartenlesers soll das System selbsttätig die Daten auf die Festplatte sichern. Dazu braucht es zwei Dinge: einmal eine Udev-Regel sowie das eigentliche Kopier-Skript. Dabei überwacht der im Hintergrund aktive Dienst Udev das System und führt beim Ein- und Ausstecken von Geräten automatisch vordefinierte Aktionen aus.

Der Einzeiler in der Datei /etc/udev/rules.d/99-usbcopy.rules aus Listing 5 sagt dem Daemon, dass er für neue Geräte, deren Namen mit "sd" anfängt, das Skript /usr/local/sbin/copy_img ausführen soll. Den Gerätenamen (in "$kernel") bekommt das Skript per Parameter. Ein Neustart ist nach der Einrichtung in der Regel nicht nötig.

Listing 5

 

KERNEL=="sd?", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/local/sbin/copy_img $kernel"

Das Skript selbst finden Sie in Listing 6, reduziert auf das absolut Notwendige. Eine etwas ausgefeiltere Version mit Prüfungen und Logging erhalten Sie über die Projektseite des Autors [3]. Da der Name der als Datenspeicher genutzten Festplatte /dev/sda auch mit "sd" anfängt, filtert das Skript dieses Gerät heraus (Zeile 3). Das eigentliche Kopieren erledigt das Rsync-Kommando in Zeile 7. Interessant sind noch die Zeilen 5 und 9, deren Bedeutung die folgenden Abschnitte klären.

Listing 6

 

#!/bin/bash
[ "$device" = "sda" ] && exit 0
/usr/local/sbin/hatctl.py AS
mount "/dev/${device}1" /mnt
rsync -a --no-owner --modify-window=1 /mnt/DCIM/*/* "/data"
umount /mnt
/usr/local/sbin/hatctl.py AE

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

12/2019
RasPi-Alternativen

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Grußbotschaften

    Mit Sonic Pi zaubern Sie komplexe Sounds, die Sie bei Bedarf sogar noch während des Abspielens modifizieren.

  • Das Runde und das Eckige

    Mit dem MCP4725 ergänzen Sie einen RasPi um einem D/A-Wandler, der bei Bedarf noch weitere Funktionen erfüllt.

  • Alles unter Kontrolle

    Schon ein einfaches Mikrocontrollerboard wie das CY8CKIT-049-42xx bietet erstaunlich viele Möglichkeiten beim Ansteuern von Hardware.

  • Viele Kerne

    Das Spresense Development Board von Sony lässt sich mit der Arduino IDE programmieren und bringt auch ein eigenes Entwickler-SDK mit.

  • Exotische Früchte

    Der aus China stammende Orange Pi positioniert sich mit einem guten Preis und interessanten Features gegen die RasPi-Truppe. Kann er sich auch behaupten?

  • Flexibler Surfer

    Mit dem neuen RasPi 4 setzen Sie einen öffentlichen Webkiosk schnell und kostengünstig auf.

  • Auskunftsfreudig

    Viele Devices, so auch der E.ON-Aura-Controller, verwenden eine Schnittstelle namens REST, um Zustandsdaten zu übermitteln. Mit ein wenig Bastelei lesen Sie diese auch über Ihr Smartphone aus.

  • Doppelt gemessen

    Mit wenig Aufwand und einem Pi Zero realisieren Sie einen mobilen Zweikanal-Spannungsprüfer.

  • Elegant zusammengeführt

    Tizonia streamt Musik von Online-Quellen und lokalen Sammlungen. Die schlanke Architektur macht den Player zur guten Wahl für den Einsatz auf dem RasPi.

  • Kommunikativ

    Nicht jeder traut sich zu, sein eigenes Smartphone zu bauen. Allerdings kann jeder Linux-Nutzer den Raspberry Pi im Handumdrehen zu einem VoIP-Telefon aufrüsten.