Backup des laufenden Systems anlegen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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:

    Code
    chmod +x rpi-clone.sh

    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:

    Code
    sudo fdisk -l


    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:

    Code
    sudo ./rpi-clone.sh sda -f


    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.

    Code
    sudo ./rpi-clone.sh

    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

    Einmal editiert, zuletzt von HaSch (7. Juni 2017 um 10:22)

  • 6. Ist die SD-Card lokalisiert, wird der folgende Befehl ausgeführt:

    Code
    sudo ./rpi-clone.sh sda -f


    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!

    Hallo vielen Dank für die Anleitung die ich schon lange gesucht habe. Allerdings bekomme ich bei Ausführung des Befehls eine Meldung:

    Zitat


    [font="Menlo"]sudo ./rpi-clone.sh sde -f[/font]
    [font="Menlo"]/dev/mmcblk0p2 ist aktuell gemountet auf /mnt.[/font]
    [font="Menlo"]Unmount /mnt vor Ausführung von rpi-clone.sh.[/font]

    Was muss ich machen? Sorry, habe leider nur begrenzt Ahnung :helpnew:

    Trotzdem Danke und Grüße, Uli

  • Hallo vielen Dank für die Anleitung die ich schon lange gesucht habe. Allerdings bekomme ich bei Ausführung des Befehls eine Meldung:


    Was muss ich machen? Sorry, habe leider nur begrenzt Ahnung :helpnew:

    Trotzdem Danke und Grüße, Uli

    Bist du sicher, dass du 'sudo ./rpi-clone.sh sde -f' eingeben wolltest? 'sde' bedeutet, dass du 5 Kartenleser oder einen 5fach Kartenleser in deinem Pi stecken hast.

  • Bist du sicher, dass du 'sudo ./rpi-clone.sh sde -f' eingeben wolltest? 'sde' bedeutet, dass du 5 Kartenleser oder einen 5fach Kartenleser in deinem Pi stecken hast.

    5fach Kartenleser ist korrekt :blush:

    So sieht es aus:

    Code
    sudo blkid
    /dev/loop0: TYPE="squashfs"
    /dev/mmcblk0p1: SEC_TYPE="msdos" UUID="0245-883E" TYPE="vfat"
    /dev/mmcblk0p2: LABEL="berryboot" UUID="402efaa4-5af4-4dd4-b3fe-a6752aca0774" TYPE="ext4"
    /dev/sda1: LABEL="berryboot" UUID="6ab92ec8-88ff-459f-8035-d833d9b617df" TYPE="ext4"
    /dev/sdc1: UUID="4736a56a-fce5-4aa7-aed7-4fabe4a99224" TYPE="ext4"
    /dev/sde1: UUID="9016-4EF8" TYPE="vfat"

    Einmal editiert, zuletzt von uli007 (9. November 2013 um 12:54)

  • sudo umount /mnt

    Ich ändere das gerade mal im Script, so dass das deutlicher wird. Kannste in ca. 10 Min. drüber verfügen.

    So sieht's jetzt aus:

    Code
    sudo ./rpi-clone-2.sh sda -f
    /dev/mmcblk0p2 ist aktuell gemountet auf /mnt
    sudo umount /mnt vor Ausführung von rpi-clone-2.sh

    hilft das weiter? Hm... hat sich nix geändert...

    Einmal editiert, zuletzt von uli007 (9. November 2013 um 15:05)

  • So sieht's jetzt aus:

    Code
    sudo ./rpi-clone-2.sh sda -f
    /dev/mmcblk0p2 ist aktuell gemountet auf /mnt
    sudo umount /mnt vor Ausführung von rpi-clone-2.sh

    hilft das weiter? Hm... hat sich nix geändert...

    Jetzt hast du aber sda als Parameter übergeben…?
    Was du nun machen musst, steht doch da: sudo umount /mnt, danach noch mal das script aufrufen!

  • Jetzt hast du aber sda als Parameter übergeben…?
    Was du nun machen musst, steht doch da: sudo umount /mnt, danach noch mal das script aufrufen!

    sorry, copy fehler das mit dem sda..

    so sieht es jetzt aus:

    Code
    sudo umount /mnt
    umount: /mnt: not mounted
    sudo ./rpi-clone-2.sh sde -f
    /dev/mmcblk0p2 ist aktuell gemountet auf /mnt.
    sudo umount /mnt vor Ausführung von rpi-clone-2.sh.

    hat sich nix geändert

    Einmal editiert, zuletzt von uli007 (9. November 2013 um 15:36)


  • Du hast aber schon gelesen, was du jetzt machen musst? Noch mal wiederhole ich das nicht und es steht ja auch in dem Output!

    meinst Du "sudo umount /mnt vor Ausführung von rpi-clone-2.sh" ?

    Habe ich doch gemacht... und die Meldung war: "umount: /mnt: not mounted"

    Einmal editiert, zuletzt von uli007 (9. November 2013 um 17:37)

  • HaSch: Habe das Script mal bei mir auf meiner SpielPi laufen lassen. Dabei habe ich zwei Dinge festgestellt:

    1) Ich habe meine 8GB SD Karte mit 2.4GB Belegung versucht auf eine 2GB Karte zu clonen. Das Clonen startete ... und dann seh ich dass dabei auch noch mein remoter nfs Server gemounted auf /backup mitgesichert werden sollte :-/. Der Parameter -x sollte noch zum rsync dazu abgegeben werden damit das nicht passiert.

    2) Anschliessend lief der Clone wieder an - jetzt aber ohne meinen nfs Space ... obwohl nur 2GB zur Verfügung stehen und 2.4GB benötigt werden. Ein Test ob die Ziel SD Karte groß genug ist wäre ganz sinnvoll im Script ;)

    Danach habe ich eine 4GB Karte genommen und alles lief perfekt durch. Und jetzt kommt der Knaller: Damit ich das testen konnte habe ich das Raspbian auf der 8GB SD Karte mit shutdown beendet, den 4GB Clone reingesteckt und gebootet. Der Clone lief ohne Probleme. Dann habe ich wieder die 8GB Karte reingesteckt .... und dann bootete nix mehr :(. Das mehrmalige Clonen der 8GB SD Karte war wohl zu viel für sie :wallbash:. Nun läuft meine SpielPi auf der geclonten 4GB Karte und ich habe eine 8GB SD Kartenleiche - RIP


  • HaSch: Habe das Script mal bei mir auf meiner SpielPi laufen lassen. Dabei habe ich zwei Dinge festgestellt:

    1) Ich habe meine 8GB SD Karte mit 2.4GB Belegung versucht auf eine 2GB Karte zu clonen. Das Clonen startete ... und dann seh ich dass dabei auch noch mein remoter nfs Server gemounted auf /backup mitgesichert werden sollte :-/. Der Parameter -x sollte noch zum rsync dazu abgegeben werden damit das nicht passiert.

    2) Anschliessend lief der Clone wieder an - jetzt aber ohne meinen nfs Space ... obwohl nur 2GB zur Verfügung stehen und 2.4GB benötigt werden. Ein Test ob die Ziel SD Karte groß genug ist wäre ganz sinnvoll im Script ;)

    Danach habe ich eine 4GB Karte genommen und alles lief perfekt durch. Und jetzt kommt der Knaller: Damit ich das testen konnte habe ich das Raspbian auf der 8GB SD Karte mit shutdown beendet, den 4GB Clone reingesteckt und gebootet. Der Clone lief ohne Probleme. Dann habe ich wieder die 8GB Karte reingesteckt .... und dann bootete nix mehr :(. Das mehrmalige Clonen der 8GB SD Karte war wohl zu viel für sie :wallbash:. Nun läuft meine SpielPi auf der geclonten 4GB Karte und ich habe eine 8GB SD Kartenleiche - RIP

    Hallo framp,

    tu dir keinen Zwang an, du kannst die Features gerne einbauen. Das Script dann aber wieder zurück an mich, dann kann ich es in den Links aus Post 1 ersetzen.

    Zu der Sache mit deiner SD-Card: Das tut mir echt leid, aber ich glaube nicht, dass das Script dafür verantwortlich ist. Wahrscheinlich wäre sie ohnehin bald gestorben...

    Schönen Abend noch
    Hans


  • ...Zu der Sache mit deiner SD-Card: Das tut mir echt leid, aber ich glaube nicht, dass das Script dafür verantwortlich ist. Wahrscheinlich wäre sie ohnehin bald gestorben...


    Nope, falls es so rübergekommen ist. Ich wollte damit sagen dass ich quasi zum letztmöglichen Zeitpunkt es gerade noch geschafft habe mit dem CloneScript einen aktuellen Backup zu bekommen der läuft. Mein Backupup läuft bei meiner Spielwiese nur 1 mal pro Woche. Da ist Dein Script noch nicht drauf;)


  • ...ist es auch möglich, dass Backup auf ein NAS zu spielen statt auf eine SD-Karte? ...


    In dieser Anleitung wird es beschrieben wie es geht. Ist allerdings ein anderes Tutorial mit anderem Schwerpunkt und ein anderes Script.

  • Ich binn ja auch so ein "Allesausprobierer" ....

    Dabei ist mir folgendes aufgefallen:

    Zitat

    *** Erzwinge Initialisierung der Zielpartition 'sda' ***
    Die existierenden Partitionen auf der Zieldisk 'sda' sind:
    Disk /dev/sda: 8074MB
    Partition Table: msdos

    Number Start End Size Type File system Flags
    1 2,10MB 75,5MB 73,4MB primary fat32 lba
    2 77,6MB 8074MB 7996MB primary ext4

    ... Kann kein Ziel-Boot-Dateisystem finden vom Typ: fat16


    Natürlich findet es keine fat16 Partition.

    Spannender (als/ob 16 oder 32) ist für mich die Frage obs später auf fat16 bootet...

    Nachtrag:

    Es hat also eine fat32 angelegt.
    Alles tuts.

    Einen herzlichen Dank an den edlen Spender.

    spruch.png

    Einmal editiert, zuletzt von combie (15. Januar 2014 um 10:08)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!