Wenn man eine DietPi Installation von einer SD-Karte auf einen externen USB-Datenträger übertragen möchte kann man dies “offline” mittels Balena Etcher oder anderen Tools realisieren. Dies geht aber auch im laufenden Betrieb. Wir schauen uns einmal an, wie das geht.

Ausgangssituation

Ausgangspunkt is eine existierende DietPi installation auf einer SD-Karte und ein externer USB-Datenträger wie eine SSD oder einen USB Stick. In diesem Beispiel wird eine Installation von einer 64GB SD-Karte auf eine 1 TB SSD USB 3.0 übertragen. Auf dem Raspi ist neben DietPi noch Nextcloud installiert.

Vorbereitungen

Der externe Datenträger sollte leer sein. Ich habe diesen mit extFat formatiert und per USB 3.0 an den Pi angeschlossen sein. Der externe Datenträger sollte mindestens genauso groß sein wie die SD-Karte, besser ist, dass er größer ist. Dies macht in diesem Szenario auch Sinn. Melde Dich nun als root per SSH oder direkt and der Konsole an.

Daten übertragen

Um festzustellen, wie die Datenträger benannt sind führe folgenden Befehl aus:

lsblk

Danach erhält man die Übersicht der aktiven Datenträger:

In meinem Fall hat die SD-Karte die Bezeichnung mmcblk0 und die externe SSD sda

Das bedeutet, dass wir die Daten von mmcblk0 auf sda kopieren werden. Um dies durchzuführen stoppen wir alle aktiven Dienste und deaktivieren die Swap Funktion mit diesen Befehlen:

dietpi-services stop
swapoff -a

Jetzt können wir die Daten auf den externen Datenträger übertragen. Dazu verwenden wir den Befehl dd. Die Bezeichnungen der Datenträger musst Du wie oben ermittelt anpassen! der Switch bs=1M sorgt dafür dass große Dateien aufgeteilt werden und der Prozess schneller läuft.

dd if=/dev/mmcblk0 of=/dev/sda bs=1M status=progress

Der Kopiervorgang beginnt nun. Je nach Größe und Geschwindigkeit der SD-Karte kann dieser Vorgang recht lange dauern.

Der Kopiervorgang hat ca 25 Minuten gedauert. Als nächstes muss der Pi sauber heruntergefahren werden. Dazu gib folgenden Befehl ein:

shutdown -h now

Danach entferne die SD-Karte und schalte den Pi wieder ein bzw. entferne das Stromkabel und stecke es wieder ein, damit der Pi vom externen Datenträger booten kann.

Abschluss

Nach dem Reboot des Systems vom externen Datenträger für wieder lsblk aus:

lsblk

Wie man sieht, steht noch nicht der komplette Speicher des externen Datenträgers zur Verfügung

Das Filesystem muss erweitert werden, damit der komplette Platz auf dem Datenträger genutzt werden kann. Dazu rufe den dietpi-drivemanager aus:

dietpi-drivemanager

Wähle nun die Partition “/” aus und bestätige das mit Enter

Danach wähle “Resize” aus, um den kompletten Platz nutzen zu können

Zum Abschliessen muss das System neu gebootet werden.

Nach dem Reboot melde Dich erneut an und prüfe mit lsblk, ob der komplette Speicher zur Verfügung steht. Es sollte nun wie folgt aussehen:

Jetzt steht der komplette Platz auf dem Datenträger zur Verfügung. Das System und alle Dienste laufen wie gewohnt.

Viel Erfolg beim ausprobieren!