,

Homebridge – Raspberry Pi von SSD (SATA oder M.2) Festplatte starten

Der Raspberry Pi3 benötigt zum Starten ein Image, das sich auf einer microSD-Karte befinde. Heute will ich Euch aber zeigen, wie Ihr das System z.B. ioBroker oder auch die Homebridge auf eine SSD-Festplatte bekommt um dann direkt von der HDD anstelle der microSD-Karte zu booten.

Viele sagen jetzt, warum? Die SD-Karten halten doch ewig und die Geschwindigkeit ist doch auch super… Ja, Ihr habt recht ;-) Ich denke, dass die Diskussion über die Haltbarkeit von SD-Karte schon häufig geführt worden ist. Trotzdem gibt es triftige Gründe dafür. Auf diese werde ich zuerst eingehen um in das Thema einzusteigen.

Motivation

Warum als den ganzen Aufwand betreiben? Zuerst einmal: Der Aufwand ist sehr gering, daher Punkt abgehakt. Ich selbst bin auf die Idee gekommen, da ich ein Leser angesprochen hat, der gerne sein Ferienhaus mit einer Homebridge ausrüsten wollte. Dort ist bereits Homematic installiert um z.B. die Heizung zu regeln und das Objekt zu überwachen, da es auch längere Zeit leer steht. Ein Pi ist dabei kein Problem, doch mit SD-Karten hat er schlechte Erfahrungen (in der Vergangenheit) gemacht und wollte, dass eine richtige HDD zum Einsatz kommt.

Kurz zu den SD-Karten. Natürlich sind die Schreibzyklen einer Karte begrenzt. Das bedeutet, dass die NAND-Gatter nach einer bestimmten Zeit ausfallen. Die interne Elektronik der Speicherkarte kann das ausgleichen, indem diese Sektoren erkannt werden und dann einfach an eine andere Speicherstelle der Karte ausgelagert werden. Das kann auch eine ganze Zeit lang gut gehen.

Gerade bei großen Karten ist ja genügend Reserve vorhanden. Eine RaspberryMatic Installation z.B. ist nur wenige MB groß. Wird eine 16 GB Karte verwendet, sind so viele Sektoren frei, auf die ausgelagert werden kann, sodass jahrelang kein Ausfall auftritt. Das Problem ist bei kleinen Karten viel akuter, da der Platz zum auslagern einfach geringer ist. Daher sollten auch bei kleinen Image-Dateien möglichst große Karten verwendet werden. Das ganze muss natürlich immer in Relation stehen ;-) Ich verwende daher meist gute Karte von SanDisk mit 16 GB. Diese bieten aktuell das beste Preis-/Leistungsverhältnis.

SSD-Festplatten sind für wesentlich höhere Schreibzyklen ausgelegt. Daher ist es gerade bei „professionellen“ Installationen wie z.B. bei einem Ferienhaus oder einem Neubau doch zu empfehlen diesen Schritt zu gehen.

Es sollte zwar in regelmäßigen Abständen ein Backup durchgeführt werden, doch bei einer SSD kann dieser Zeitraum (durch Vergessen!) auch gerne mal etwas größer ausfallen ohne das man sich Gedanken über Datenverluste machen muss.


Verwendete Hardware

Um entweder die mSATA, M.2 oder SATA Festplatten mit dem Pi verbinden zu können, benötigt Ihr einen Adapter. Diesen gibt es von StarTech.com. Der Anbieter hat 3 unterschiedliche Adapter im Angebot. Eine Übersicht findet Ihr hier.

Alle Adapter sind speziell für den Raspberry Pi3 konstruiert. Die Größe der Platine ist daher optimal auf die des Pi’s abgestimmt. Bei jedem Adapter liegen Abstandsbolzen bei, sodass die zusätzliche Platine direkt auf dem Pi installiert werden kann. Mit den beiliegenden Schrauben wir das Ganze dann fixiert. Auf dem 1. Bild seht Ihr wie der Pi mit dem mSATA-Modul bestückt ist.

Da es leider nicht möglich ist, die USB-Verbindung über die IO-Ports des Pi’s zu realisieren, liegt ein kleines USB-Kabel bei, damit die Platine dann von außen angebunden werden kann. Auch die mSATA-HDD wird darüber direkt mit Strom versorgt.

Es besteht aber auch zusätzlich die Möglichkeit mit einem externen Netzteil das Gerät zu versorgen, falls der maximale Strom vom Pi nicht für Eure Festplatte ausreicht. Bei den mobile HDD wie M.2 oder mSATA wird das zu keinen Problemen führen. Solltet Ihr aber über den SATA-Adapter eine größere Festplatte anschließen wollen, dann kann es evtl. vorkommen dass Ihr auf die externe Spannungsversorgung zurückgreifen müsst.

Die USB-Schnittstelle kann ebenfalls über zusätzliche Pins abgegriffen werden, falls Ihr den Adapter mit einem anderen Mini-Computer betreiben wollt. Dann kann auf die externe Lösung mittels USB-Kabel verzichtet werden.

Lange Rede kurzer Sinn! Ich zeige Euch jetzt wie Ihr das umsetzen könnt!

Damit wir per USB booten können, müssen wir leider zuerst über eine microSD-Karte booten, da wir eine kleine Änderung am One Time Programmable Speicher des Raspberrys durchführen müssen. Hier werden wir die Bootoption USB-Boot reinschreiben.

Dazu müssen wir zuerst das aktuelle Rasbian Jessie Lite herunterladen. Das Image packen wir dann auf eine micorSD-Karte, mit der wir booten können.

Um das gerade heruntergeladene Image auf unsere SD-Karte zu bekommen, verwenden wir die Software Win32 Disk Imager (Windows) oder ApplePi-Baker (MacOS).

homematic-raspymatic-installation

Nun starten wir Win32 Disk Imager. Falls dabei Probleme auftreten sollten, bitte als Administrator ausführen!

Bei Device wählen wir unsere microSD-Karte aus und mit dem Ordnersymbol navigieren wir zum Image. Über die Schaltfläche „Write“ wird der Vorgang gestartet.


Nachdem die Karte geschrieben wurde, können wir diese in den Pi einsetzen. Jetzt solltet Ihr zuerst das Netzwerkkabel einstecken und dann den Stecker für die Spannungsversorgung.

Ihr braucht dazu keinen angeschlossenen Monitor und auch keine Tastatur. Der Bootvorgang dauert wenige Sekunden.

Mit Putty auf den Pi zugreifen

Nun können´wir über das Programm Putty darauf zugreifen.

Wir starten dazu Putty und tragen bei „Host Name“ die zuvor ermittelte IP-Adresse ein.

putty-raspberry

Der Port bleibt unverändert bei 22. Mit einem Klick auf „Open“ stellen wir nun eine Verbindung zum Raspberry Pi her. Sollte ein Fenster mit einer Meldung erscheinen, dass der host key noch nicht gecached ist, beantworten wir diese mit „Ja“.

Als User verwenden wir:

pi

… und als Passwort für den User Pi geben wir:

raspberry

ein. Es ist wichtig, das alles klein geschrieben wird. Nachdem wir nun eingeloggt sind, geben wir folgenden Befehl in die Kommandozeile ein:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

daraufhin müssen wir den Pi neu starten. Um den Pi zu rebooten geben wir folgendes ein:

sudo reboot

Danach loggen wir uns erneut ein. Jetzt können wir überprüfen, ob die Änderungen im OTP angekommen sind.

Dazu geben wir folgenden Befehl ein:

vcgencmd otp_dump | grep 17:

Als Rückmeldung muss 17:3020000a kommen. Sollte 17:1020000a zurückgegeben werden, ist das Schreiben nicht erfolgreich abgeschlossen worden.

Nun kann der Pi3 auch von USB booten. Um nun unsere SSD / M.2 oder SATA-Festplatte für den Bootvorgang vorzubereiten gehen wir wie folgt vor:

Das Vorgehen ist so simpel, dass ich es hier gar nicht im Detail beschreiben muss ;-)

Ihr schließt den Adapter von StarTech.com einfach per USB an Euren Rechner an. Dieser wird dann als externer Speicher erkannt. Nun startet Ihr wieder (wie oben beschrieben) den Win32 DiskImager und führt die gleichen Schritte aus, wie Ihr es zuvor bei der SD-Karte gemacht habt.


Nachdem (und das geht mit einer SSD wirklich sauschnell ;-)) das Image fertig geschrieben ist, verbindet Ihr die Platinen nun mit dem Pi und steckt das USB-Kabel in einen der vier vorhandenen Port.

Nun kann der Pi3 mit Strom versorgt werden. Das Booten dauert leider etwas länger, da zuerst nach einer microSD-Karte gesucht wird. Daher müsst Ihr ca. 5-10 Sekunden warten bis es dann per USB weiter geht.

RaspberryMatic auf einer SSD zum booten?

Geile Idee, genau dafür wollte ich es auch nutzen. Mit der aktuellen Version (Stand Mai 2017) ist es allerdings noch nicht möglich. Jens Maus (Entwickler von RaspberryMatic) hat aber schon angedeutet, dass dies bald möglich ist. Sobald ein Update herauskommt, welches unterstützt wird, werde ich Euch natürlich informieren.

Die Homebridge für Siri und ioBroker für die Alexa-Sprachsteuerung können bereits auf SSD ausgelagert werden. Auch openHAB lässt sich so von microSD-Karte auf SSD bringen.

Im nächsten Artikel stelle ich euch dann noch ein passenden Hutschienen-Gehäuse vor, damit der Pi dann bequem im Schaltschrank platziert werden kann!

13 Kommentare
  1. timo18146
    timo18146 sagte:

    GANZ WICHTIG WENN MIT NOOBS INSTALLIERT WURDE !:
    VOR dem ersten Booten mit der SSD: sdX steht für sda oder was bei Euch das Device ist. mmcblk* ist das Blockdevice von der vormaligen SDkarte.
    SSD auf einem anderen Rechner mounten. Und zwar /sdX5, 6 und 7
    in 5 (Noobs Partition) in der json-Datei von Noobs aus dem mmcblk* ein sdX *
    in 6 (boot Partition) in cmdline.txt aus root=mmcblk* ein root=sdaX machen
    in 7 (root Partition) in /etc/fstab beide Partitionen noch mal anpassen.

    SONST BOOTET DER RASPI NICHT, weil er die Partitionen nicht findet.

    Antworten
  2. Peter B
    Peter B sagte:

    Hi,

    zunächst einmal finde ich diese Anleitung sehr einleuchtend und auch sehr simpel. Ich habe es bei meinem Pi 3b+ ausprobiert, bekomme aber nie die erwartete Ausgabe nach den Grep Befehl. Die Ausgabe bleibt leer und ich lande immer wieder bei der Prompt. Meine Frage ist daher, ob diese Ausgabe überhaupt noch aktuell (Stand 18_06) ist. Bisher habe ich es testweise mit einem älteren USB Stick (16GB) versucht. Ein Bootvorgang kam leider nicht zustande. Aktuell warte ich noch auf meine MSata Platte. Die Platine habe ich bereits und freue mich schon auf das Ausprobieren.
    Freue mich auf eine qualifizierte Amtwort.

    Antworten
  3. Roland
    Roland sagte:

    Hallo Sebastian,

    Erstmal vielen Dank für deine Ausführungen. Aktuell betreibe ich eine herkömmliche SSD über ein USB->SATA Kabel mit einem ASMedia ASM1153 Wandlerchip. Über diesen Weg habe ich bereits eine SSD „verloren“, da der TRIM Befehl nicht an der SSD ankommt, obwohl Kernel,Filesystem und SSD über hdparm das Gegenteil suggerieren.

    Mittlerweile weiss ich, dass der Wandlerchip das Feature „ATA TRIM to SCSI UNMAP translation“ nicht unterstützt, während andere Hersteller dies nun scheinbar nachholen. (Quelle: https://blog.startech.com/post/all-you-need-to-know-about-uasp/)

    Meine Frage ist, ob die Anbindung der SSD über den StarTech Adapter bei dir definitiv mit TRIM funktioniert, und wenn ja, wie du das getestet hast.

    Danke und viele Grüße
    Roland

    Antworten
  4. Thorsten H.
    Thorsten H. sagte:

    Nachtrag zum vorherigen Post:
    Hardware: Raspberry 3 B
    Debian Stretch
    3,5“ HDMI Display Kuman MPI3508
    MSATA – USB3 Adapter + SSD – Chinaprodukt, funktionierte bisher lt. Anleitung

    Antworten
  5. Thorsten H.
    Thorsten H. sagte:

    Hallo Sebastian,
    irgendwie habe ich gerade ein Problem bekommen.
    Bisher funktionierte mein Raspi 3 mit msata und SSD nach Deiner Anleitung wunderbar. Jetzt habe ich mir ein 3,5“ HDMI-Display von Kuman gekauft und angeschlossen. Funktioniert auch noch.
    Dann wollte ich den Treiber installieren um touch zu aktivieren, und genau seitdem kann ich nicht mehr auf die Platte zugreifen, der Raspi bootet nur noch von SD-Card.
    OK, die SSD habe ich mittlerweile gelöscht und probehalber ein neues Image aufgespielt und die /boot/config.txt editiert (program_usb_boot_mode=1). Reboot – vcgencmd zeigt 17:3020000a an – also OK. Booten von HD geht weiterhin nicht, booten von SD klappt.

    Irgendwie weiß ich jetzt leider nicht mehr weiter. Hast Du einen Tip für mich?

    Viele Grüße
    Thorsten

    Antworten
  6. Wolfgang
    Wolfgang sagte:

    Hallo Heiko,

    falls Du es noch nicht hinbekommen hast, probier mal dies, danach wurde dann bei mir ein Laufwerk in Windows angezeigt.

    Do one of the following:

    If you do not see the hard drive controller card in Device Manager, refer to the following FAQ: https://www.startech.com/support/faqs/technical-support?topic=expansion-cards#pci-pcie-cannot-boot-os-or-detect-windows.

    If the device is listed with an error, reinstall the drivers by completing the instructions on the website.

    If the hard drive is listed with unallocated space, the hard drive needs to be formatted. Right-click unallocated and click New Simple Volume. Follow the on-screen instructions to complete the reformatting.

    Note: Formatting a hard drive erases all of the data on it. Make sure that you back up all of your data before you reformat the hard drive.

    To check Disk Management, press the Windows key + R, type diskmgmt.msc, and press Enter. Check to see if your hard drive is listed.

    If the hard drive is listed as healthy but does not have a drive letter, for example, C:, right-click healthy and click Change Drive Letter and Paths. Click Add, assign a drive letter, and click OK.

    Note: A formatted hard drive does not show up in Computer or My Computer until it has a drive letter assigned to it.

    Gruß Wolfgang

    Antworten
  7. Heiko
    Heiko sagte:

    hallo, habe einen renkforce usb zu msata adapter den ich von conrad.de habe und eine 8GB msata goldfir, der adapter müßte eigentlich baugleich sein mit dem den du getestet hast, wenn ich den adapter mit der msata per usb am raspi 3 anschließe tut sich nichts aus das die grüne led auf dem adapter kurz aufleuchtet, schieße ich den adapter an meinem win10 pc an wird zwar was erkannt aber nichts angezeigt kein LW einfach garnichts mache ich was verkehrt ?

    Antworten
  8. J
    J sagte:

    Hallo,

    weiß jemand, ob der angesprochene Adapter das TRIM-Kommando an eine SSD-Platte weiterreicht. Mein USB-Adapter kann das nämlich nicht. Oder ist es bei USB 2 sowieso egal, ob die SSD-Platte nie getrimmt wird.

    Schöne Grüße

    Antworten
  9. Stefan
    Stefan sagte:

    Schade dass die Daten von der mSATA Platte über den USB gehen, ist doch leider nur ein USB 2.0. Besser wäre es wenn die mSATA über die Pins gehen um eventuell eine höhere Lese und Schreibrate zu erzielen, hoffe auch dass der nächste Pi 4 USB 3.0 hat.

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert