/dev/rdisk vs. /dev/disk unter macOS

Unter macOS werden Festplatten, SD-Karten und ähnliches im Dateisystem unter /dev/ als Gerätedateien eingebunden. Für eine SD-Karte könnte nun beispielhaft das Gerät /dev/disk2 vorhanden sein. Das Gerät ist ebenfalls über /dev/rdisk2 ansprechbar. Obwohl beide Gerätedateien das gleiche physikalische Gerät ansprechen, unterscheiden sie sich. So könnte ein Image mittels dd auf das Gerät geschrieben werden:

dd bs=1m if=filename.img of=/dev/rdisk2

Der Prozess ist nach relativ kurzer Zeit abgeschlossen. Wird die Operation nun mit dem Gerät /dev/disk2 durchgeführt:

dd bs=1m if=filename.img of=/dev/disk2

so verlängert sich die Dauer der Operation um ein Vielfaches. Hintergrund hierfür ist die technische Anbindung der jeweiligen Gerätedateien. Die Datei /dev/rdisk2/ ist näher an dem physikalischen Gerät, so das Änderungen direkt durchgeführt werden. Aus Sicht von Programmen, welche nicht im Kontext des Kernels laufen, ist der Zugriff auf /dev/disk gepuffert. Wird auf diese Gerätedatei geschrieben, so wird der Datenstrom in 4 KiB große Blocke heruntergebrochen, im Puffer gespeichert und erst dann (oder später) geschrieben bzw. gelesen. Wird hingegen /dev/rdisk2 genutzt, so wird der Datenstrom relativ direkt auf das Gerät geschrieben. Dies wirkt sich positiv auf die Geschwindigkeit aus und ist z.B. beim Schreiben von Images auf einen Datenträger von Vorteil.

SD-Karten und USB-Sticks einfach bespielen

Wenn man ein Image auf eine SD-Karte oder einen USB-Stick übertragen möchte, so kann man, je nach verendetem System, die Kommandozeile nutzen um das Image auf den Datenträger zu schreiben. Mit Hilfe des Cross-Plattform-Tools Etcher kann man diese Aufgabe unkomplizierter erledigen. In Etcher muss das Image und der Datenträger definiert werden und schon startet der Prozess. Das Tool wird unter anderem von der Raspberry Pi Foundation empfohlen.

Etcher

Heruntergeladen werden kann Etcher auf der Seite des Projektes unter etcher.io. Es ist für macOS, Linux und Windows verfügbar. Der Quelltext des Werkzeuges ist auf GitHub zu finden. Das Projekt ist unter der Apache 2.0 Licence lizenziert und damit freie Software.

SSH-Deamon auf dem Raspberry Pi aktivieren

Seit November 2016 wird die Standarddistribution für den Raspberry Pi namens Raspbian, eine auf Debian basierende Distribution, mit deaktiviertem SSH-Server ausgeliefert. Was aus Sicherheitsgründen lobenswert ist hat natürlich für die schnelle Inbetriebnahme eines Raspberry Pi einige Nachteile.

Ein Raspberry Pi 3

Allerdings existieren zwei relativ einfache Wege den SSH-Dienst wieder zu aktivieren. Die erste Möglichkeit ist, nachdem das Image auf die für den Raspberry Pi verwendete SD- bzw. microSD-Karte gebracht wurde, auf der boot-Partion der Karte eine Datei mit dem Namen ssh anzulegen. Ist diese Datei vorhanden, so wird der SSH-Serverdienst beim Start des Raspberry Pi aktiviert.

Die entsprechende Option in raspi-config

Läuft der Raspberry Pi bereits und man hat Zugriff auf diesen kann der SSH-Dienst mittels des Konfigurationstools raspi-config aktiviert werden. Nachdem dieses gestartet wurde, wird dort der Punkt Interfacing Options ausgewählt. Dort findet sich der Unterpunkt P2 SSH. Wählt man diesen Unterpunkt an, wird nach der Bestätigung der Sicherheitsabfrage der SSH-Dienst aktiviert.

Nach der Sicherheitsabfrage wird der SSH-Dienst aktiviert

Nun kann sich (wenn das Raspbian noch in der Standardkonfiguration läuft) mittels:

ssh pi@raspberry.local

und dem Passwort raspberry eingeloggt werden. Da man dieses Passwort nach der Ersteinrichtung ändern sollte, erhält man beim Login über ssh folgenden Hinweis:

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

Dieses Hinweis sollte befolgt werden und das Passwort mit dem Kommando:

passwd

geändert werden. Anschließend kann der Raspberry Pi ohne Probleme mit dem SSH-Dienst genutzt werden. In der offiziellen Raspberry Pi Dokumentation wird weiterführend auf das Thema eingegangen. Dort wird neben der eigentlichen Einrichtung des SSH-Dienstes auch die Nutzung verschiedener Clients in den unterschiedlichen Betriebssystemen besprochen.

Image vom internen Speicher eines gerooteten Androidgerätes erstellen

Wenn man ein Android-Gerät gerootet hat, sind mit diesem einige Dinge möglich welche vorher nicht machbar waren. Unter anderem kann man den internen Speicher eines solchen Gerätes dumpen, das bedeutet ihn Bit für Bit in eine Image-Datei schreiben. Dazu verbindet man das gerootete Gerät mit dem Rechner und öffnet die ADB-Shell. ADB steht dabei für die Android Debug Bridge und befindet sich in den Plattform Tools des Android SDKs:

./adb remount
./adb shell

Kann die Verbindung nicht hergestellt werden, weil der ADB-Server bereits läuft, hilft es diesen vorher noch einmal zu beenden:

./adb kill-server

In der ADB-Shell gibt man nun su ein damit man auf der Root-Konsole landet. Anschließend kann man das Blockgerät welches für den internen Speicher steht auf die eingelegte SD-Karte schreiben. Dies geschieht dabei mit Hilfe des Befehls dd:

dd if=/dev/block/mmcblk0 of=/storage/extSdCard/imageInternalStorage.img

Probleme bekommt man bei diesem Prozess wenn das Image größer als 4 GiB ist. Da die SD-Karten meist standardmäßig mittels FAT32 formatiert sind, erlauben sie keine Dateien größer 4 GiB. Abhilfe schafft es hier die SD-Karte mit dem Dateisystem ext3 zu formatieren. Dieses kann von Android genutzt werden und erlaubt größere Dateien. Unter Umständen muss das ext3-Dateisystem dabei nochmals neu mit Schreibrechten eingebunden werden:

mount -t ext3 /dev/block/mmcblk1p1 /storage/extSdCard

Anschließend sollte das Image ohne Probleme geschrieben werden können. Je nach Größe und Geschwindigkeit der SD-Karte, kann der Prozess dabei einige Zeit in Anspruch nehmen. Nach der erfolgreichen Operation meldet dd-Vollzug und zeigt einige Statistiken zum Prozess an. Das Image kann nun von der SD-Karte auf den Rechner kopiert werden und dort z.B. dem FTK Imager gemountet und analysiert werden.

SD-Karte mit Image unter Windows bespielen

Möchte man eine SD-Karte unter Windows bespielen, um diese in einem Rasperry Pi zu nutzen, so benötigt man die Software Win32 Disk Imager welche auf SourceForge bezogen werden kann.

Win32 Disk Imager beim Schreiben eines Images

Win32 Disk Imager beim Schreiben eines Images

Dort wählt man anschließend das Image seiner Wahl und startet den Schreibvorgang mit dem Button Write. Dabei sollte man darauf achten das richtige Laufwerk zu beschreiben, da auch externe Festplatten in der Geräteauswahl auftauchen. Je nach Größe des Images und der maximalen Schreibgeschwindigkeit, kann der Vorgang einige Zeit in Anspruch nehmen.