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 ist eine existierende DietPi-Installation auf einer SD-Karte und ein externer USB-Datenträger, wie eine SSD oder ein USB Stick. In diesem Beispiel wird eine Installation von einer 64 GB SD-Karte auf eine 1 TB USB 3.0 SSD übertragen. Auf dem Raspi ist neben DietPi zusätzlich 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. Der externe Datenträger sollte mindestens genauso groß wie die SD-Karte sein, besser ist, wenn er größer ist (Dies macht in diesem Szenario auch Sinn).
Melde Dich nun als root per SSH oder direkt an 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 in größere Blöcke aufgeteilt werden und der Prozess dadurch 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 (In meinem Beispiel hat der Kopiervorgang 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ühre 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 auf:

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 Abschließen 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!