013117_1838_TinkeringTu10.jpg

Tinkering Tuesday – Raspberry Pi Mobile Photo Backup Box – Part 2

So. Weiter geht es. Das USB-Y-Kabel ist da, angeschlossen und: Power LED leuchtet aber kein Ton von der HDD. Nochmal ohne Y-Kabel versucht, siehe da. Sie funktioniert! Ich hab keine Ahnung warum, aber ich lebe erstmal damit.

Schlussendlich werde ich wohl sowieso mit dem RPi2 gehen, weil der weniger Strom verbrauchen soll und ich mit dem Y-Kabel sowieso nicht weit kommen würde, da ich am RPi1 nur 2 USB-Slots habe und ja auch noch der SD-Kartenleser ran muss. Sowas fällt einem dann aber erst nach der Impuls-Bestellung ein. Aber die 2,50 Euro werde ich verschmerzen können.

Ich mache jetzt trotzdem erstmal mit dem 1er weiter, dann kann ich zum einen evtl. noch einen Geschwindigkeitsvergleich machen (wenn der Strom doch ausreicht um die HDD auch zu beschreiben), zum anderen hab ich das jetzt hier schon verkabelt.

Wenn man sich das Backup-Skript einmal genauer ansieht, stellt man fest, dass es zwei Mountpoints anlegt. Einen für das Backup-Device, einen für die SD-Karte.

# Specify devices and their mount points
STORAGE_DEV=“sda1″
STORAGE_MOUNT_POINT=“/media/storage“
CARD_DEV=“sdb1″
CARD_MOUNT_POINT=“/media/card“

Also schauen wir mal, ob das funktioniert.

Dafür wird erstmal eine Test-Datei auf die USB-HDD geschrieben und diese angeschlossen. Dann schau ich per putty, ob ich die Datei an der entsprechenden Stelle finde:

Interessanterweise zeigt mir der Pi eine alte Partition auf der HDD an (ja, war mal die Boot-Partition eines Laptops und dann als FritzNAS aufgesetzt). Soviel zur Formatierung in Windows.

Der Befehl lsblk sagt auch, dass es noch zwei Partitionen gibt, leider ist die falsche am Mount Point eingebunden:

Es wird also immer die erste Partition eingebunden. Gut zu wissen. Ich könnte natürlich einfach das Skript ändern, damit sda2 gemounted wird, aber ich will die HDD ja auch mal sauber haben.

Also erstmal gparted installiert.

sudo apt-get install gparted

Dann werden erstmal die existierenden Partitionen sauber weggelöscht:

sudo parted
print
rm 1
rm 2
Die neue exFAT Partition habe ich dann in Windows erstellt, weil ich dann doch keine Lust mehr hatte zu schauen, wie das in parted geht 😉


Besser!

Nach dem Anschluss des SD-Kartenlesers (da war das Y-Kabel doch noch zu was nutze, der Kartenleser ist so unförmig, dass er nicht an den zweiten USB-Port passt; das Y-Kabel ist aber auch als einfache USB-Verlängerung zu benutzen, da ich aus Versehen die Variante mit USB-Anschluss bestellt hatte und nicht mit einem Mikro-USB-Stecker; hab ich auch erst beim Auspacken bemerkt) konnte ich noch kurz lsblk nochmal aufrufen und sehen, dass er die Karte erkannt hat, dann fuhr der Pi runter.


Erst dachte ich, dass das der hohen Stromaufnahme geschuldet sein könnte, aber dann hab ich mich erinnert, dass ja das Skript nach erfolgreichem Kopieren der Dateien genau das tun soll. Den Pi herunterfahren. Also HDD an den PC angeschlossen und voila:


Die Ordnerstruktur ist schonmal angelegt, die Metadateien waren auch da (39911448 ist übrigens die ID der SD-Karte, sodass man verschiedene Karten sichern kann, ohne dass sich das System in die Quere kommt. Jede Karte bekommt seinen eigenen Unterordner). Nun das Ganze nochmal mit Photos und einem Video testen.

Alles wieder hochgefahren und angeschlossen. Da ging aber dann doch die Stromaufnahme der Platte wohl zu hoch. Vor dem Anschluss des Kartenlesers war noch alles in Ordnung, dann aber wieder das typische „ich hab zu wenig Strom“-Geräusch der Platte.

Dann muss nun doch der Pi2 herhalten.

Also wieder Raspbian Lite installiert, Little Backup Box installiert, neu gestartet.
USB-HDD angeschlossen, SD-Kartenleser angeschlossen. Lsblk sieht schonmal gut aus:

Und nach kurzem Arbeiten der Festplatte fährt der Pi herunter und der schaltet im Gegensatz zum RPi1 sogar die HDD stromlos.

Ein kurzer Blick auf die Festplatte zeigt: alle Dateien kopiert! Sowohl JPG, ORF (Olympus Raw) als auch MOV-Datei sind da. Also nichts mit USB-Festplatten würden nicht funktionieren. Läuft einwandfrei. Und ich musste nichtmal die Stromzufuhr auf den Anschlüssen des RPi2 erhöhen.

Test 1: Performance

Ich kann leider keinen Vergleich zum RPi1 machen, aber ich möchte trotzdem wissen, wie schnell der RPi2 die Daten kopiert. Also habe ich mal ein ganzes Urlaubs-Shooting auf die SD-Karte gepackt.

Das Kopieren der JPGs hat schonmal 23 Minuten auf dem Windows-PC gebraucht, die RAWs nochmal 45 Minuten (ich habe bewusst den gleichen SD-Kartenleser genutzt, der USB 3.0 Leser braucht nicht so lange).

Dann per SSH wieder auf den Pi verbunden und mittels date die aktuelle Zeit ausgeben lassen. Gleichzeitig den SD-Kartenleser angeschlossen und gewartet bis der Pi herunterfährt. Die Shutdown-Nachricht wird mit Zeitstempel ausgegeben, so hatte ich dann folgende Werte:

Start um 17:27


Shutdown um 20:12


Macht also eine Laufzeit von gut 2:45. Nicht besonders schnell, aber naja 😉

Test 2: Betrieb mit Powerbank/Akkupack

Das ist dann der ultimative Mobilitätstest: kann ich das Setup auch unterwegs mit dem Akkupack betreiben?

Als Testgerät hat mein Anker PowerCore 20100mAh hergehalten (http://amzn.to/2kelkU7). Der stellt max. 2.4A pro Port zur Verfügung, sollte also reichen. Der RPi fährt hoch, ist per SSH erreichbar, allerdings gibt die USB-HDD mal wieder keinen Mucks von sich. Auch ein Erhöhen des Stroms per max_usb_current=1 in der /boot/config.txt hilft nichts. Aber wozu hab ich denn das USB-Y-Kabel gekauft. Ich hab zwar nicht damit gerechnet, aber lustigerweise funktioniert es in diesem Setup:

Das fertige mobile Setup
Das fertige mobile Setup

Den zweiten Anschluss habe ich direkt an den zweiten Port des Ankers angeschlossen, hat allerdings zur Folge, dass die Festplatte nach dem Herunterfahren weiter Strom hat und entsprechend auch verbraucht. Mit beiden Steckern am Pi funktioniert es aber wieder nicht. Könnte im Prinzip sogar sein, dass dieses Setup auch am Pi1 funktionieren würde, ich hab aber keine Lust mehr das zu testen 😉

Hier nochmal der Performance-Test, diesmal aufgrund der Zeit eine kleine Datenmenge. 138 JPGs mit insgesamt 1 GB in knapp 5 Minuten:

Test 3: Vertauschen der Medien

Damit ich im Urlaub nicht böse Überraschungen erlebe noch ein weiterer Test. Was passiert, wenn man erst den Kartenleser anschließt und dann die HDD? Im schlechtesten Fall müsste er ja andersherum synchronisieren. Und genau das tut er auch, wie man schon im System erkennen kann:

Man hat also hinterher die Daten der Festplatte auf der SD-Karte. Daher noch der folgende Test:

Test 4: Volles Medium

Was passiert, wenn das Backup nicht mehr auf das Medium passt?

Getestet habe ich mit einer 128 MegaByte großen SD-Karte (das waren noch Zeiten, nun habe ich eine 128 GigaByte große Karte, die auch noch winzig ist, also MicroSD) und Dateien auf der Festplatte, die nicht auf der SD-Karte sind. Dann vertauscht angeschlossen, sodass von der Festplatte auf die winzige SD-Karte synchronisiert wird.

Das Ergebnis ist eigentlich recht plausibel. Er synchronisiert so viel er kann (bis also die Karte voll ist) und fährt dann den Pi herunter. Was soll er auch sonst tun? Warnen kann er ja so erstmal nicht (kein Display, kein Speaker, maximal eine hektisch blinkende LED, die man eh nicht wahrnehmen würde).

Zwei Szenarien sind dabei aber zu beachten:

  1. Mit der SD-Karte fotografiert und Medien vertauscht (siehe Test 3). Das Programm schreibt alle Daten von der Festplatte nochmal auf die SD-Karte. Die Karte ist im schlimmsten Fall voll und man hat seine Daten noch nicht auf der Platte gesichert. Sichert man danach nochmal andersherum, werden die eben fälschlicherweise kopierten Daten nochmal wieder auf die Festplatte zurückgeschrieben, da die Ordnerstruktur unterschiedlich ist und er die Daten als neu erkennt. Man müllt sich also die Festplatte voll, sodass man im schlimmsten Fall eine doppelte Sicherung hat aber, wenn die Platte voll ist, seine neuen Fotos nicht. Also bestenfalls die Medien nicht vertauschen!
  2. Backup-Festplatte voll: Hier sollte man ein Gefühl dafür haben, wie viel man bereits auf der Platte gesichert hat. Wenn man sich nicht sicher ist, sollte man die SD-Karte besser nicht formatieren, da schlimmstenfalls nicht alle Fotos auf der Platte gelandet sind. Das merkt man aber eben nicht, da der Pi sich gleich verhält, egal ob das Backup vollständig ist oder nicht. Ich werde also bestenfalls die HDD nur als zusätzliche Sicherung nutzen und nicht als Draufkopieren und SD-Karte formatieren. Das ist mir dann doch zu unsicher.

MiniDLNA

Was noch auffällt ist, dass das Installationsskript noch den MiniDLNA-Server auf dem Pi installiert und den Medienordner auf den Mountpoint der USB-Quelle setzt. Auch eine gute Idee. In Windows taucht der RPi auch gleich im Explorer auf:

Allerdings habe ich auch mit manuellem Update keine Dateien zur Anzeige bringen können. Wer es braucht muss sich da wohl selbst intensiver mit beschäftigen 😉

Case

Um das Ganze noch etwas cooler zu machen habe ich einen guten Freund mit einem 3D Drucker gebeten (schaut mal bei ihm vorbei: www.doktor-andy.de) mir ein Case zu drucken:

http://www.thingiverse.com/thing:1103101

Case im 3D Druck
Case im 3D Druck

Leider ist das noch nicht fertig, ein Bild vom fertigen Setup wird aber nachgereicht, genaso wie dann Erfahrungen aus dem Praxiseinsatz.

Pi Backup Box

Tinkering Tuesday – Raspberry Pi Mobile Photo Backup Box – Part 1

Im Sommer geht es nach Island, da will ich natürlich auch ordentlich photographieren. Normalerweise gehe ich immer davon aus, dass eine SD-Karte reicht und damit schon nichts passiert. Aber da ich gleichzeitig auch Videos machen will und diesmal auf Nummer sicher gehen will, habe ich mich mal mit dem Thema Photo Backup unterwegs beschäftigt.

Eine Lösung auf die man natürlich trifft, sind spezielle externe Festplatten mit eingebautem Kartenleser. Viel zu teuer für meine Zwecke.

Nächste Lösung wäre einen Kartenleser für das Smartphone oder Tablet zu besorgen (Stichwort OTG). Auch nicht viel besser, da mein Speicher notorisch überfüllt ist…
Auch irgendeine Kopierlösung auf eine andere SD-Karte fällt weg, da damit das Speicherplatzproblem auch nicht wirklich gelöst wird und es nur unübersichtlicher wird.

Also mal Google angeworfen und folgende Seite gefunden:
https://chiselapp.com/user/dmpop/repository/little-backup-box/home

Die LITTLE BACKUP BOX (LBB) ist ein einfaches Skript für den Raspberry Pi. Das simple Prinzip:
Raspberry Pi booten, Backup Device anschließen, Kartenleser mit SD-Karte anschließen und warten bis der Pi herunterfährt.

Das klingt nach nem Plan. Eine externe 2,5″ HDD habe ich auch noch (ist eine alte Laptop-Festplatte in einem 5€ USB Case). Und einen kleinen Kartenleser habe ich noch von der Eye-Fi Karte (von meinem Photobooth, dann war es vielleicht doch kein völliger Fehlkauf).

Also erstmal den alten RPi (das erste Model B, sollte für die Zwecke reichen und frisst weniger Strom) rausgekramt und ein frisches Raspbian Lite draufgezogen. Dann den Installationsbefehl per SSH ausgeführt:
cd ~ && wget https://chiselapp.com/user/dmpop/repository/little-backup-box/tarball/little-backup-box.tar.gz && tar xzvf little-backup-box.tar.gz && cd little-backup-box && chmod +x install-little-backup-box.sh && ./install-little-backup-box.sh

Zwischendurch hat er mal ein Changelog von moz://a (das schreibt man jetzt so…) angezeigt. Das muss man dann mit q beenden, damit er fortfährt. Ist wahrscheinlich nicht immer so, aber weil die Installationsroutine erstmal ein Systemupdate macht, war da wohl noch einiges offen nach der frischen Installation. Entsprechend dauerte das Prozedere auch eine Weile.

In der Zwischenzeit habe ich mal die Festplatte neu formatiert. Eine Partition 150GB, exFAT. Im Ticketsystem von der LBB liest man leider, dass das Skript Probleme mit externen Festplatten hat und nichts drauf kopiert. Das wird sich schon irgendwie lösen lassen. Mal sehen was passiert.

Den ersten Dämpfer bekam ich allerdings schon beim ersten Anschluss der HDD. Der Pi liefert nicht genug Strom…. Hmpf.

Für alle Pi ab Model B+ gibt es wohl einen Parameter mit dem man das Steuern kann:
https://raspberry.tips/faq/raspberry-pi-usb-festplatte-ohne-eigene-stromversorgung/

Für meinen Pi der ersten Generation allerdings nicht. Meinen Pi 2 will ich nicht dafür benutzen, daher gehen wir jetzt den harten Weg 😉

Außerdem will ich schlussendlich keinen Powered USB Hub oder so mitschleppen, deswegen wird erstmal ein USB-Y-Kabel bestellt:

Goobay USB 3.0 Y-USB-Kabel externe HDD/SSD

Wenn das da ist gibt es den nächsten Teil.