Gibt es etwas Ähnliches wie rsync zum Synchronisieren von Blockgeräten?

7

Ich habe mehrere 32-GB-Pendrives mit einem Linux-System geklont, das mit dd installiert wurde. Später habe ich eine Partition verkleinert und einige weitere Änderungen vorgenommen (im "Master"). Gibt es ein Tool zum Übertragen nur der geänderten Blöcke, um das langsame vollständige erneute Klonen mit dd zu vermeiden?

Ich dachte nach rsync, aber es scheint nur mit Dateien zu funktionieren.

Gea Planet
quelle

Antworten:

10

Gemäß der Beschreibung: Bscp kopiert eine einzelne Datei oder ein Blockgerät über eine SSH-Verbindung und überträgt nur die Teile, die sich geändert haben.

Gea Planet
quelle
Das hat mich gerade gerettet! Vielen Dank. Ich frage mich, warum Rsync das nicht konnte, da es eindeutig einen ähnlichen Algorithmus hat, bei dem nur die Blöcke kopiert werden, die sich in einer großen Datei geändert haben.
Tobia
@Tobia Du könntest es rsynceinfach nicht direkt auf dem Blockgerät selbst machen. Wenn Sie eine Bilddatei vom Gerät erstellt hätten, wäre diese Datei offensichtlich übertragbar.
Kusalananda
2
@Kusalananda ja, aber wenn ich den freien Speicherplatz hätte, um ein Bild des gesamten Blockgeräts zu erstellen, hätte ich das Smart-Copy-Tool wahrscheinlich nicht benötigt.
Tobia
Können Sie uns besser helfen, wie das funktioniert? Ich bin zu dumm, um "bscp SRC HOST: DEST" zu verstehen - das ist die Hilfe. Ist der SRC eine IP? Wie werden Blockgeräte spezifiziert?
Davidgo
-2

Nein, und das kann es nicht geben. Rsync verwendet Dateizeitstempel, um zu bestimmen, was kopiert und was übersprungen werden soll. Auf einer niedrigeren Ebene gibt es nichts Vergleichbares als Dateien. Die Daten auf der Festplatte erinnern sich nicht daran, dass es früher eine andere Partitionsanordnung gab.

Um sicherzustellen, dass zwei Festplatten identisch sind, müsste ein Tool, das unter dem Dateisystem arbeitet, jeden Block auf beiden Seiten lesen und den Quellblock auf den Zielblock kopieren, wenn sie sich unterscheiden. Das ist normalerweise langsamer als das bedingungslose Kopieren. Es kann schneller sein, wenn Schreibvorgänge auf die Zieldiskette viel langsamer sind als Lesevorgänge (aber immer noch weit entfernt von dem, was rsync durch das vollständige Überspringen unveränderter Dateien erzielt). Ich glaube, ich habe ein Tool gesehen, das dies getan hat, aber ich kann es jetzt nicht finden.

Wenn Sie auf einer Seite Änderungen am Partitionssetup vorgenommen haben, nehmen Sie auf der anderen Seite dieselbe Änderung vor und rufen Sie dann rsyncdie einzelnen Dateisysteme auf.

Gilles 'SO - hör auf böse zu sein'
quelle
Ich dachte, ich kann etwas Zeit sparen. Ich muss die Größe der Partition ändern, einige Partitionen hinzufügen (für uefi und grub-bios), formatieren, jedes pendrive booten, grub neu installieren, uefi installieren und einen kleinen Patch installieren. Nur der letzte Teil konnte von rsync erledigt werden: - /
Gea Planet
1
Das Lesen von 32 GB dauert 10 Minuten, das Schreiben des vollständigen Pendrives mit dd jedoch 3 Stunden. Alle Änderungen werden insgesamt nicht mehr als 10 MBit / s betragen. Es wäre ein großartiges Dienstprogramm zum Lesen und Vergleichen von zwei Blockgeräten im laufenden Betrieb.
Gea Planet
@GeaPlanet wahrscheinlich erheblich schneller, wenn Sie catanstelle vondd
Roaima
Der Mechanismus ist wählbar. Sie können festlegen, dass Prüfsummen verwendet werden sollen. Dies ist das Gute an rsync und großen Dateien. Es wird eine Prüfsumme für jeden Teil der Datei erstellt, damit ein Netzwerk-Bit-Flip nicht dazu führt, dass das Ganze erneut heruntergeladen wird. Ich habe es noch nicht ausprobiert, aber rsync hat nur dafür eine --device-Option!
Daniel Santos
Oh, --devices dient nur zum Kopieren der Geräteknotendatei.
Daniel Santos