SD Karte bis aufs bit clonen?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    wie im Titel schon erwähnt, kann man ein Image einer SD Karte erstellen und nachher auf eine SD Karte kopieren und es ist wirklich eine 1:1 kopie?

    Nachdem der RPI nun so läuft wie ich möchte würde ich das gerne mal machen.

  • Die neue SD-Karte muss dann mindestens genauso groß sein, wie das Image. Gibt sonst eine Fehlermeldung dass der Speicherplatz nicht ausreicht. Das passiert auch, wenn es dieselbe SD-Karte ist, der SD-Kartenkontroller inzwischen aber etliche Speicherbereiche als fehlerhaft aussortiert hat.

  • ich wollte zum Ausdruck bringen, dass kein Umweg über ein Windowsprogramm nötig ist, sondern dass diese 1:1-Kopie im Betriebssystem Raspbian integriert ist.

    again what learned! :thumbup:

    Auch wenn ich bloß nachgesehen und das Programm nicht getestet habe: Wenn dieses Programm in Raspbian integriert ist und unter "Zubehör" zu finden ist, gehe ich davon aus, dass es auch problemlos funktioniert. Wird ja (hoffentlich) kein zweites NOOBS sein :stumm:

    Man muss am RPi jedenfalls noch ein USB-Laufwerk anschließen, auf dem das Image(?) abgelegt wird.

  • Es gibt ein shell Script zu dem UI. Sehr einfach gestrickt aber es erlaubt im Gegensatz zu dd auch das Clonen auf eine größere oder kleinere SD Karte. Quelle kann jedes Device sein. Dort findet sich auch die Source der UI Version in C programmiert.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

    Edited 3 times, last by framp (August 22, 2019 at 7:00 PM).

  • Das funktioniert zuverlässig und relativ schnell.

    Ein rw gemountetes root-Filesystem kann nicht zuverlässig byteweise kopiert werden, da sich der Inhalt der Metadaten laufend ändert. Das funktioniert eher zufällig, solange das Filesystem nicht vor dem Kopiervorgeng schon korrupt war, und die Inode-Differenzen beim ersten fsck (im nächsten Boorvorgang) aus dem Journal automatisch fehlerfrei aufgelöst werden klnnen.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Also wenn ich als Quelle die interne SD Karte wähle, ist es hier nicht möglich die interne SD Karte als Ziel zu wählen.

    Der folgende Kommentar wie auch die dazugehoerige Implementierung findet sich im Code:

    Code
    // do not allow the current root and boot devices as targets

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

  • Interne SD-Karte als Quelle. Die zweite SD-Karte, auf die das System kopiert werden soll, wird in ein Kartenlesegerät gesteckt und über USB mit dem Raspberry verbunden. Eine interne Kopie auf sich selbst kann nicht funktionieren.

    Zur Zuverlässigkeit: Ich hab das schon viele Male ohne Probleme gemacht.

    Die rootfs-Partition, die boot-Partition und sogar eine vorhandene weitere Daten-Partition werden problemlos kopiert.

    Für mich die beste und einfachste Sache für ein gut eingerichtestes System eine Sicherheitskopie zu erstellen.

  • Bei SD Card Copier sind nicht unbedingt zwei Laufwerke erforderlich.

    Diese Aussage von dir hatte mich irritiert, weil zwei Laufwerke mehr oder weniger zwingend erforderlich sind. Du nutzt ja auch zwei Laufwerke.

    Ein rw gemountetes root-Filesystem kann nicht zuverlässig byteweise kopiert werden, da sich der Inhalt der Metadaten laufend ändert.

    Da du dich mit Mount so gut auskennst, kannst du folgendes vielleicht bestätigen, oder nicht.

    Die Lösung ist oder wäre das Filesystem ro zu mounten. Nehme ich an. Ich beziehe mich auf den unten stehenden man mount Auszug. Die erste Frage wäre also, ob das so richtig ist, Filesystem ro mounten während das System läuft und dann eine Sicherung von diesem ro gemountetem Filesystem machen?

    Im man mount Auszug werden zwei Möglichkeiten aufgezeigt ein Fileystem ro zu mounten. Das erste Beispiel ist nicht im Linux Kernen implementiert, sondern im Userspace. Das zweite Beispiel läuft dann im Linux Kernen, nehme ich an? Der Nebensatz im ersten Beispiel "This solution is not atomic." irritiert mich. Was ist damit genau gemeint?

    Im Moment weiss ich nicht, welches der zwei Wege ich nehmen müsste. Bzw. welches für welchen Zweck einsetzen.

  • Würde es nicht besser sein das Raspbian auf einem btrfs Filesystem laufen zu lassen, ein Snapshot zu generieren und dann den Snapshot asynchron auf ein Backupmedium zu sichern bzw auf eine andere SD Karte zu clonen? Hier ist der Ansatz beschrieben.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

    Edited once, last by framp (August 22, 2019 at 7:31 PM).

  • Die Frage ist eher, wozu brauche ich ein FS-Snapshot, wenn mir ausreichend Sicherungswerkzeuge zur Verfügung stehen. dd, und damit das Imageclonen ist ja mehr eine Erfindung der Raspberrypi Foundation, um eine Start MMC zu erstellen, damit der Pi zum Laufen kommt.

    Kein seriöser Admin käme auf die Idee einen Plattenstapel Byte für Byte, Sektor für Sektor mit allen nicht verwendeten Blöcken auf eine Sicherunskopie zu übertragen, nur weil es so auch funktioniert. Beim Pi hat sich das aber zum Selbstläufer entwickelt, mit allen Frontend-Scripts von expand bis shrink.

    Solange tar und rsync in jeder Standardinstallation enthalten sind ist das sicher die bessere Wahl. dd fährt übrgens "blind" über das Lese- und Schreibdevice, es werden nicht einmal Prüfsummen gezogen, wie auch Badblocks itgendwie gelesen und auf das neue Image übertragen werden.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • RTFM

    Man versteht sowieso kaum, warum so hartnäckig dd als ein Tool aus der Unix-Ära heute immer noch wieder empfohlen wird... obwohl cat und cp deutlich bessere (performantere) Ergebnisse aufgrund paralleler Verarbeitung erzielen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!