Hallo Leute,
ich beschreibe euch hier, wie ihr mit Hilfe eines Bash-Scriptes von Phil Drummond, das ich bei Adafruit gefunden, ins Deutsche übersetzt und verbessert habe, euer laufendes System auf eine andere SD-Card klonen könnt. Ihr braucht dazu:
* einen USB-Cardreader für SD- oder Micro-SD-Cards
* eine freie SD-Card, die groß genug ist, alle Daten aufzunehmen
* das Script, das ihr hier runterladen könnt
* einen gebooteten, laufenden Pi
Die Methode ist sehr einfach und erzeugt eine SD-Card, die ihr als Backup an einem sicheren Ort aufbewahren könnt und die euch im Falle einer Beschädigung des Filesystems eurer aktuellen SD-Card erspart, die ganze Installationsprozedur ein weiteres Mal durchzuführen.
Die Methode ist aber auch hervorragend geeignet, um den belegten Speicherplatz eures Systems zu reduzieren. Wenn ihr z. B. eine 16 GB SD-Card eingerichtet habt, auf der noch jede Menge Platz ist, könnt ihr den Inhalt mit dieser Methode z. B. auf eine 4 GB SD-Card übertragen, von der ihr dann z. B. ein Image erstellen und weitergeben könnt. Somit ist es auch möglich, eine einmal eingerichtete Karte auf eine kleinere zu klonen.
Die Einrichtungsschritte, um das Backup machen zu können:
1. Script auf den Computer runter laden.
2. Verbindung über PuTTY (Windows) oder Cyberduck (Macintosh) zum Pi aufbauen. SSH oder VNC über eine Terminalverbindung ist natürlich auch möglich.
alternativ: Script am Computer über den Cardreader auf die SD-Card übertragen.
3. Script in das Homeverzeichnis des Pi übertragen.
alternativ: Von der in den USB-Cardreader eingesteckten SD-Card am Pi in das Homeverzeichnis kopieren.
4. Script ausführbar machen:
5. Wenn die SD-Card über den USB-Cardreader mit dem Pi verbunden ist, ist sie normalerweise als /dev/sda gemountet. Um festzustellen, wie die SD-Card am Pi bezeichnet ist, führe folgenden Befehl aus:
Die SD-Card wird als /dev/sda bzw. /dev/sdb angezeigt, wenn noch ein anderer Cardreader mit dem Pi verbunden ist. Ist die SD-Card bereits partitioniert, werden die Partitionen der als /dev/sda1 und /dev/sda2 bzw. /dev/sdb1 und /dev/sdb2 angezeigt. /dev/mmcblk0p1 und /dev/mmcblk0p2 sind die Partitionen im Kartenslot des Pi selbst.
6. Ist die SD-Card lokalisiert, wird der folgende Befehl ausgeführt:
Der erste Parameter (sda) gibt das Ziellaufwerk an, der zweite (-f) weist das Script an, das Laufwerk zu formatieren, bevor das System geklont wird. Wird der -f Parameter weggelassen, wird ein inkrementelles Backup angelegt, d. h. es werden nur die Änderungen seit dem letzten Backup geschrieben. Während des Prozesses kannst du noch ein Label für die Backup-SD angeben. Das Klonen dauert eine Zeit, also Geduld!
Durch den Befehl ohne Parameterübergabe kann übrigens die Hilfe aufgerufen werden.
Nach dem Klonen werden mit einem Tastendruck die frisch angelegten Partitionen dismountet. Wenn vorher noch Änderungen durchgeführt werden sollen, weil z. B. die SD-Card für einen anderen Pi vorgesehen ist und z. B. die Netzwerkeinstellungen geändert werden sollen, kann das über eine zweite Terminalsitzung gemacht werden.
Ich hoffe, ich konnte dazu beitragen, dass es für euch etwas bequemer wird, regelmäßig Backups anzulegen, Images zum Weitergeben zu erstellen bzw. das System so wie es ist auf einer kleineren Karte unterzubringen, wenn ihr euch im Speicherbedarf verschätzt habt und die größere SD-Card noch ganz gut für ein umfangreicheres Projekt brauchen könnt.
Übrigens: Es ist eine ganz gute Idee, die Funktionsfähigkeit der neuen SD-Card zu überprüfen, bevor die alte gelöscht wird!!!
Gruß
Hans
Edit: Hier nun auch als Attachment: rpi-clone.sh