eMMC Speicher von Kleingeräten nutzen (z.B. Banana Pi)

Oftmals bin ich über das Problem gestolpert, dass man extern nicht an alle Laufwerke des Kleingeräts, wie das Banana Pi, herankommt. Der Vorgang ist eben, wie beim Raspberry Pi auch, dass man grundsätzlich von einer SD-Karte booten muss.

Jetzt möchte man aber auf die SD-Karte verzichten, denn der fest-gelötete Speicher ist schneller und es gibt auch keinen Datenträger zu entfernen. Leider ist der Aufwand etwas größer, doch dafür erhält man mehr Sicherheit und einen Performance-Gewinn.

Man kommt nur an das System, wenn es sich selbst hochgefahren hat. Sich selber als System kopieren, während es auch noch läuft ist selten eine gute Idee.

Was Sie also brauchen, damit Sie am Ende dem eMMC booten können ist:

  • Die SD-Karte mit dem OS und Möglichkeit es an einen anderen Rechner zu installieren
  • Den Befehl dd
  • USB-Stick der mindestens so groß ist wie die SD-Karte

Mein Tipp: Wurde das System frisch heruntergeladen, müssen Sie sich bzgl. Vergrößerung/Verkleinerung der Partitionen keine Sorgen machen. Laden Sie das frische System auf die SD-Karte (auch mit dd) und kopieren Sie das heruntergeladene Image auf den USB-Stick. Damit sparen Sie von Anfang an Stress. Warum ist das so? Systeme wie bspw. Debian für Banana Pi sind so aufgebaut, dass Sie beim ersten Start sich automatisch auf das Gerät partitionieren, z.B. dieses System: http://ftp.uk.debian.org/debian/dists/buster/main/installer-armhf/current/images/netboot/SD-card-images/

Ansonsten müssen Sie darauf achten, dass die SD-Karte <= als der eMMC-Speicher ist oder mit resizefs die Partitionsgröße anpassen.

Entfernen Sie die SD-Karte und verbinden Sie diese mit einem anderen Rechner. Dort wird ein Image davon erstellt. Unter Ubuntu geht das mit Gnome-Disks oder dem Befehl dd sehr komfortabel. Unter Windows kann man diesen nachinstallieren: http://www.chrysocome.net/dd

Die Windows Variante zeigt mit dd –list die Laufwerke an, die Sie verwenden können. Identifizieren hier die eingelegte SD-Karte. Unter Linux geht das mit lsblk. Halten Sie das Image in einer Datei fest:

dd if=/dev/mmcblkX of=myOS.img status=progress

Wurde die Operation beendet, müssten Sie im aktuellen Verzeichnis die Datei myOS.img sehen können (ersetzen Sie /dev/mmcblkX durch den ermittelten Gerätenamen).

Jetzt haben Sie ein Image (wir nennen es also myOS.img) und kopieren es auf den USB-Stick.

Nun booten Sie das Gerät mit der SD-Karte. Ist dieses hochgefahren, wird der Stick angeschlossen. Werden Sie jetzt Super-User im Terminal (sudo -i) und hängen Sie den USB-Stick ein (mounten auf ein Verzeichnis)

mkdir -p /root/usb
mount /dev/sdX1 /root/usb
cd /root/usb

Sie befinden sich auf dem USB-Laufwerk (ersetzen Sie /dev/sdX1 durch den Partitionspfad, der auf Ihrem System erscheint) und sehen den Inhalt des Sticks mit ls. Dort sollte die Datei myOS.img auftauchen. Identifizieren Sie den eMMC-Speicher (lsblk). In der Regel trägt dieser einen Pfad wie /dev/mmcblk1. Jetzt wird das Image übertragen:

dd if=myOS.img of=/dev/mmcblk1 bs=1M status=progress

Ist der Vorgang abgeschlossen, muss das Gerät ausgeschaltet werden. Entfernen Sie die SD-Karte und schalten Sie das Gerät wieder ein. Sollte alles geklappt haben, bootet das Gerät von dem eMMC-Speicher.

Das könnte dich auch interessieren …

3 Antworten

  1. Andreas sagt:

    Vielen Dank! Ich bin Anfänger und konnte mit dieser Anleitung mein Image erfolgreich ins EMMC kopieren – andere Anleitungen waren nicht hilfreich.

Schreibe einen Kommentar

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