Gibt es eine schnellere Möglichkeit, Time Machine-Dateien von einer Festplatte auf eine andere zu kopieren?

15

Ich versuche, meine Time Machine-Sicherungsdateien unter Backups.backupdb auf ein anderes Laufwerk zu verschieben. Ich habe über Nacht eine Dateikopie gestartet (b / c Ich habe gesehen, dass OSX ewig gebraucht hat, um sich auf die Kopie vorzubereiten ... im Grunde wurden die Dateien stundenlang gezählt). Am Morgen sah ich, dass nur bestimmte Backups (Ordner mit Datumsangaben) kopiert wurden. Ich habe dann versucht, die zu kopieren, die nicht kopiert wurden ... aber das Betriebssystem erlaubte mir das nicht. Ich habe die Fehlermeldung "Der Vorgang kann nicht abgeschlossen werden, da Sicherungselemente nicht geändert werden können." Mein Plan ist es daher, die unvollständige Kopie auf dem neuen Laufwerk zu löschen und dann erneut zu versuchen, den Ordner Backups.backupdb zu kopieren.

Ziemlich frustrierend. Gibt es eine schnellere Möglichkeit, diese Dateien über einen Terminalbefehl zu kopieren, sodass nicht die gesamte Dateizählvorbereitung ausgeführt wird?

Ich kann wahrscheinlich den gesamten Ordner tarieren und dann eine Kopie erstellen. Beeinträchtigt dies jedoch die Dateiberechtigungen usw.? Das eine bei diesem Ansatz ist, dass ich auf meinem Quell-Volume keinen Platz mehr für den Teer habe.

AKTUALISIEREN

Ich habe einige der unten vorgeschlagenen Methoden ausprobiert, insbesondere die Wiederherstellung mit dem Festplatten-Dienstprogramm. Dabei erhalte ich Fehlermeldungen und unerwartete Ergebnisse (zumindest für mich). Ich habe versucht, die Wiederherstellung auf zwei Arten durchzuführen:

  • Wenn "Ziel löschen" aktiviert ist: Jedes Mal, wenn die Wiederherstellung abgeschlossen ist (ich habe es zweimal versucht), wird die Meldung "Konnte nicht wiederhergestellt werden - Ungültiger Vorgang" und "Konnte nicht wiederhergestellt werden - Ungültiges Argument" angezeigt. Mein Zieldatenträger erhält jedoch eine Kopie meiner TM-Dateien. Das Seltsame ist, dass meine Zieldisk genau wie meine Quelldisk ist ... sogar die Größe. Mein Ziellaufwerk hat tatsächlich 1 TB, aber nach der Wiederherstellung werden 200 GB angezeigt, wenn ich Informationen vom Finder erhalte. Im Festplatten-Dienstprogramm wird jedoch eine Partition mit 1 TB angezeigt!

Ich versuchte dann, die Scheibe zu überprüfen / reparieren und erhielt:

    Ungültige B-Tree-Knotengröße
    Überprüfen des aufgezeichneten HFS Plus-Volumes.
    Ungültige B-Tree-Knotengröße
    Volumenreparatur abgeschlossen.
    Aktualisieren der Startunterstützungspartitionen für das Volume nach Bedarf.
    Fehler: Das Festplatten-Dienstprogramm kann diese Festplatte nicht reparieren. Sichern Sie so viele Dateien wie möglich, formatieren Sie die Festplatte neu und stellen Sie die gesicherten Dateien wieder her.

Ich weiß nicht, ob ich überhaupt eine TM-Disk verifizieren / reparieren soll ...

  • Wenn "Ziel löschen" deaktiviert ist: Die Wiederherstellung startet nie und ich erhalte:
    Wiederherstellung nicht möglich - Vorgang nicht zulässig
milesmeow
quelle
2
Ich denke, das steht gut - die andere Frage befasst sich mit der IO-Last des Kopierens der Hardlinks, ist jedoch in das Netzwerk und das Gehäuse von Time Capsule eingebunden, sodass es sich um einen Sonderfall des hier gestellten allgemeinen Problems handelt.
bmike
Wenn Sie ein Upgrade auf MacOS 10.13.4+ durchführen können, wurde der Fehler behoben, durch den Aliase / Hardlinks nicht in den Finder kopiert werden konnten. Ich habe selbst versucht, eine Time Machine-Sicherungsdiskette auf eine andere zu kopieren, und es hat einwandfrei funktioniert (und es war auch ziemlich schnell). Weitere Informationen finden Sie hier: apple.stackexchange.com/a/323691/261070 .
Youngrrrr

Antworten:

13

Eine normale Kopie (oder Kopie über rsync oder ditto) repliziert eine Time Machine nicht vollständig, da zwei miteinander verknüpfte Verzeichnisse (wie bei aufeinanderfolgenden TM-Sicherungen ohne Änderung zwischen) in zwei separate Verzeichnisse konvertiert werden.

Am besten kopieren Sie den gesamten Datenträger mit dem Festplatten-Dienstprogramm oder dem Block-Copy-Teil von Carbon Copy Cloner und wahrscheinlich ähnlich wie bei SuperDuper .

user151019
quelle
1
Aus der Ditto-Manpage: "Ditto bewahrt Dateiverbindungen (aber keine Verzeichnisverknüpfungen), die in den Quellverzeichnissen vorhanden sind." Also hier keine Hilfe. Es ist entweder Disk Utility oder ein Tool wie SuperDuper oder CCC.
Nohillside
@patrix Danke - die Web-Manpage sagt nichts darüber aus - CCC verwendet ditto oder rsync zum Kopieren und tut dies nur, wenn es eine Blockkopie
ausführt.
Meine Quelldiskette enthält nur die Time Machine-Sicherung. Mein Zieldatenträger enthält andere Dateien. Ich möchte keinen Klon meiner Quelldiskette. Ich möchte nur die Time Machine-Dateien auf die Zieldiskette kopieren.
Milesmeow
3
Nach vielen Versuchen, meine TM-Dateien auf eine neue Festplatte zu kopieren, haben Disk Utility und Carbon Copy Cloner beide NICHT den Trick getan. SuperDuper hat es beim ersten Durchlauf perfekt gemacht und die Größe meiner Zielpartition nicht reduziert!
Milesmeow
2
Eine weitere Abstimmung für SuperDuper! Hier. In Version 3.2.4 wurde ein großer Time Machine-Sicherungsordner erfolgreich auf eine neue Festplatte unter MacOS 10.14.2 Mojave kopiert, ohne dass mehr Speicherplatz benötigt wurde. (Welcher Finder nicht konnte ...) Time Machine verwendet die neue Festplatte weiterhin wie die alte.
Gidds
5

Bei der Migration eines verschlüsselten 3-TB-Time-Machine-Laufwerks auf ein neues 8-TB-Laufwerk unter macOS 10.14 stieß ich auf alle möglichen Probleme. Beim Versuch, eine Wiederherstellung im Festplatten-Dienstprogramm durchzuführen, ist ein Fehler aufgetreten: "Quelle kann nicht überprüft werden" oder "Vorgang nicht zulässig". Bei einigen anderen Vorschlägen in diesem und anderen Beiträgen konnte ich aufregende neue Fehlermeldungen wie "Katalogdatei auf Bild / Volumen ist zu stark fragmentiert “, aber keine Kopie.

Was am Ende am Terminal geklappt hat:

  1. Löschen Sie die neue Festplatte mit dem Festplatten-Dienstprogramm, das dem Format des Quelllaufwerks entspricht: MacOS Extended (Journaled, Encrypted)
  2. Verwenden Sie diskutil cs listim Terminal, um die genaue Byte-Größe des logischen Datenträgers auf dem alten Laufwerk und die GUID des neuen logischen Datenträgers sowie die Datenträgernummern für beide abzurufen, z disk4.
  3. Verwenden Sie die genaue Bytegröße aus Schritt 2 als Größe des neuen Volumes. In meinem Fall mit einem 3-TB-Laufwerk waren es 2.999.772.905.472 Bytes:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. Erstellen Sie mit dem pvBefehl von Homebrew eine einfache Blockkopie der Datenträger. Dies ist ähnlich wie bei der Verwendung von dd, außer dass Sie mit ETA eine Fortschrittsanzeige erhalten.

    Sie müssen die Plattennummern aus der diskutil cs listAusgabe erhalten. Achtung. Es ist sehr einfach, versehentlich Ihr vollständiges Sicherungslaufwerk mit dem neuen leeren Laufwerk hier zu überschreiben.

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    Wenn Ihnen hier eine Berechtigung verweigert wird / ein Fehler wegen nicht zulässiger Vorgänge angezeigt wird, gehen Sie in die Einstellungen für Sicherheit und Datenschutz und fügen Sie Full-Disk Access für Terminal.app hinzu.

    Für mich hat das ungefähr 10 Stunden gedauert - ich habe es über Nacht laufen lassen - aber mit pvbekommen Sie zumindest eine Fortschrittsanzeige mit einer ETA.

  5. Erweitern Sie nun das Volume, um den gesamten verbleibenden Speicherplatz auf dem Laufwerk zu belegen:

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    Das hat bei mir ca. 3 Stunden gedauert, mit ungefähr 5 Jahren an Backups. Die meiste Zeit wurde von macOS fscking verbracht .

Jetzt können Sie Ihr neues, geräumigeres Time Machine-Laufwerk genießen. Sie können den alten wiederverwenden oder an einem sicheren Ort aufbewahren, falls etwas mit dem neuen Laufwerk passiert.


Die Schritte zum Ändern der Größe scheinen wichtig zu sein. Das Überspringen dieser Dateien führte zu einer 10-stündigen Dateikopie, die ein 8-TB-Volume mit einem 3-TB-Dateisystem ergab, dessen Größe ich nicht bestimmen konnte.


UPDATE Ein möglicher Nachteil dieses Ansatzes ist, dass die Bezeichner zwischen der alten und der neuen Festplatte identisch sind, da es sich um eine bitweise Kopie handelt. Wenn ich die alte, vollständige Festplatte anschließe, glaubt Time Machine, dass es sich um die neue Festplatte handelt, versucht, eine Sicherungskopie zu erstellen, und beginnt, alte Sicherungen zu löschen, um Platz für neue zu schaffen. Es scheint ein guter Ansatz zu sein, um Daten auf eine größere Festplatte zu verschieben, auf der dann die ältere kleinere Festplatte gelöscht wird.

Andrew
quelle
Hallo andrew! Vielen Dank, dass Sie sich die Zeit genommen haben, diese Schritt-für-Schritt-Anleitung abzutippen (und ich hoffe, dass Sie damit meine 1-TB-Sicherung auf eine 4-TB-Festplatte übertragen können, die aufgrund von Finder-kopierten Ordnern und Dateien bislang nicht erfolgreich war Nehmen Sie auf der neuen Festplatte so viel mehr Platz ein als auf der ursprünglichen. Meine Frage an Sie lautet: Kann ich diese Schritte ausführen, ohne dass die cs Corestorage-Funktion aktiviert ist? Das Aktivieren des Kernspeichers scheint eine möglicherweise unnötige PITA zu sein , kann jedoch aufgrund des Guid-Schritts 3 erforderlich sein.
Michael Dautermann,
@MichaelDautermann Core Storage ist für FileVault erforderlich. Dies wird für Backup-Laufwerke dringend empfohlen, um Ihre Privatsphäre bei Verlust, Diebstahl oder unsachgemäßer Entsorgung zu schützen.
Andrew
Ich möchte hinzufügen, dass ich mit der genannten Methode nicht kopieren konnte. Der Grund war, dass das System dazu aufgefordert hat, diese "Operation ist nicht erlaubt". Nach einer kurzen Suche habe ich herausgefunden, dass ich alle SIP-Funktionen deaktivieren muss. Dies kann durch einen Neustart von macOS durch Halten von Befehl + R und Öffnen eines Terminals erfolgen. Hier müssen Sie deaktivieren, indem Sie "csrutil disable" eingeben. Beim nächsten Neustart konnte ich das TM-Backup kopieren
Oliver Koehler
@andrew meine Version ist 10.14.6 und ich verstehe das Risiko, das Sie erwähnt haben. Allerdings konnte ich mein TimeMachine - Backup nicht bearbeiten, ohne SIP auszuschalten. Wenn es einen anderen Weg gibt würde ich mich freuen zu hören.
Oliver Koehler
Ich bekomme immer wieder "pv: write failed: Input / Output error" bei 99% (nach 30 Stunden, 3 Versuchen - also wirklich 90 Stunden). Datenträger sind nicht gemountet. SIP-Funktionen sind deaktiviert. Wenn Sie den Fehler googeln, fällt Ihnen nichts ein. Ähnlich wie in der ursprünglichen Situation (3 TB -> 8 TB). sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"- Die Größe der 8 TB wurde zuvor erfolgreich geändertResized Core Storage Logical Volume to 3,000,249,008,128 bytes
ks
2

Warum nicht einfach Terminal benutzen:

cp -RnpP Backups.backupdb
  • -R rekursiv
  • -n nicht überschreiben (falls vorhandene Kopierreste vom vorherigen Versuch erhalten bleiben)
  • -p Beibehaltung von ACLs, Berechtigungen, Erstellungs- / Änderungsdaten usw.
  • -P Bewahren Sie harte Links, folgen Sie keinen harten oder symbolischen Links.
chaseholden
quelle
Das ist nicht wahr. man cpFür macOS lesen . Der cpmit macOS gelieferte reguläre Befehl kopiert keine Hardlinks mit -P. In der Manpage heißt es tatsächlich: "Beachten Sie, dass cp fest verknüpfte Dateien als separate Dateien kopiert. Wenn Sie feste Verknüpfungen beibehalten müssen, sollten Sie stattdessen tar (1), cpio (1) oder pax (1) verwenden."
chmac
0

Diese Antwort wird nicht schneller erledigt, aber ich habe eine Möglichkeit gefunden, die Daten richtig zu kopieren, während die Deduplizierung (harte Links) und die Berechtigungen erhalten bleiben. Als zusätzlichen Bonus verwende ich dies, um ein komprimiertes DMG des Endprodukts für die Archivierung zu erstellen.

  1. Erstellen Sie mit den Festplatten-Dienstprogrammen ein Festplatten-Image, das größer ist als Ihr Backups.backupdb-Verzeichnis. Ich würde auch vorschlagen, dass Sie Sparse-Bundle-Image für Image-Format und Festplatte für Partitionen verwenden. Nachdem dieses Image bereitgestellt wurde, fordern Sie Informationen dazu an und deaktivieren Sie die Option Eigentümer ignorieren für dieses Volume.

  2. Schalten Sie nun Time Machine aus und kopieren Sie mithilfe des Finders den Ordner Backups.backupdb in das bereitgestellte Image. Der Finder fragt Sie nach Superuser-Berechtigungen zum Kopieren der Daten. Holen Sie sich einen Drink oder tun Sie etwas anderes für eine Weile.

  3. Wenn der Kopiervorgang abgeschlossen ist, stellen Sie sicher, dass alles in Ordnung ist, und hängen Sie das Image aus. Wählen Sie im Festplatten-Dienstprogramm die Option "Konvertieren" und wandeln Sie das Image des Sparse-Bundles in ein komprimiertes Image um. Auch dies kann eine Weile dauern.

Am Ende sollten Sie zwei Kopien Ihrer Time Machine-Sicherung haben. Sie können die Sparse-Bundle-Version löschen und die DMG als Archiv rechtzeitig an einem sicheren Ort aufbewahren.

Eine Sache, die ich damit nicht versucht habe, ist eine Systemwiederherstellung aus dem dmg, aber ich vermute, dass es funktionieren sollte. Mein Ziel war mehr die Archivierung der inkrementellen Änderungen der Zeitmaschine und die Beibehaltung der Struktur fester Verknüpfungen.

Ich habe auch rsync und cp ausprobiert, aber sie schienen die Struktur fester Verknüpfungen nicht beizubehalten, die am Ende das x-fache der Größe ergeben würde, wobei x die Anzahl der Daten ist, die Sie in der Vergangenheit hatten. Diese Methode hat gut funktioniert, kann jedoch die Geschwindigkeit einer Blockkopie-Lösung erneut beeinträchtigen.

hanz
quelle
0

Apple hat ein offizielles Tutorial dazu: " Time Machine: So übertragen Sie Backups von einem aktuellen Backup-Laufwerk auf ein neues Backup-Laufwerk ".

Die übergeordneten Schritte von dieser Seite:

  1. Überprüfen Sie das Format Ihres neuen Sicherungslaufwerks
  2. Legen Sie die Berechtigungen für Ihr neues Sicherungslaufwerk fest
  3. Schalten Sie Time Machine vorübergehend aus
  4. Kopieren Sie Ihre Sicherungsdaten von Ihrem ursprünglichen Laufwerk auf Ihr neues Laufwerk
  5. Stellen Sie Time Machine so ein, dass Ihr neues Laufwerk verwendet wird

So empfiehlt die Seite den Kopierschritt:

Kopieren Sie Ihre Sicherungsdaten von Ihrem ursprünglichen Laufwerk auf Ihr neues Laufwerk

  1. Öffnen Sie ein neues Finder-Fenster. Klicken Sie in der Finder-Seitenleiste auf das Symbol des ursprünglichen Sicherungslaufwerks.
  2. Öffnen Sie ein neues Finder-Fenster. Klicken Sie in der Finder-Seitenleiste auf das Symbol des neuen Sicherungslaufwerks.
  3. Ziehen Sie den Ordner "Backups.backupdb" vom ursprünglichen Sicherungslaufwerk auf die oberste Ebene des neuen Sicherungslaufwerks.
  4. Geben Sie einen Administratornamen und ein Kennwort ein und klicken Sie auf OK, um den Kopiervorgang zu starten.

Das Kopieren Ihrer Sicherungsdaten kann je nach Größe der Sicherung einige Zeit in Anspruch nehmen.

David Andreoletti
quelle
5
Ich für meinen Teil schaue mir diese Frage an, weil nach diesem Tutorial (das das Kopieren des Sicherungsordners mit Finder vorschlägt) und das Ausführen über Nacht auf ein Berechtigungsproblem mit etwa 500 / 940gb kopiert endete. Ich habe dann eine sudo rsyncletzte Nacht gemacht, aber heute Morgen finden ERROR: out of memory in flist_expand [sender]und meine Kopie ist jetzt ~ 600gb. Ich habe noch nicht entschieden, was als nächstes zu tun ist, aber ich vermute, dass die meisten Leser das offizielle Tutorial bereits kennen.
PeterT
@PeterT Ich habe gerade das Tuto ausprobiert und habe das gleiche Problem wie Sie. Ich bin mir nicht sicher, ob irgendjemand etwas über das Tutorial wusste, sonst hätte es hier jemand erwähnt und das Ergebnis danach. Jetzt wissen die Leute, dass es sich nicht lohnt, es zu versuchen.
David Andreoletti
1
Die Verwendung des Finders zum Kopieren des Ordners benötigt eine gewisse Zeit zum Erstellen der Dateiliste und schlägt trotzdem fehl, wenn nicht genügend Speicherplatz vorhanden ist.
Malhal
1
Das ist genau mein Problem. Das ursprüngliche TM-Volume hat 550 GB, das neue 600 GB. Mojave beklagte sich immer noch über zu wenig Platz auf dem Volume. Ich benutze jetzt SuperDuper! im "Backup - alle Dateien" -Modus.
Markus Rudel
1
Apples Tutorial fehlgeschlagen für mich, in macOS Mojave 10.14.2. Ich habe versucht, ein 3-TB-Backup-Archiv auf ein 8-TB-Laufwerk zu kopieren. Finder hat fast 5 Tage lang kopiert (meistens '5 Sekunden übrig'), bevor er aufgab und sich beschwerte, dass die Festplatte voll war! Und es war - obwohl es nur etwa 2/3 der Backups kopiert hatte. Es ist klar, dass es nicht darum geht, Hardlinks beizubehalten, sondern jeweils neue Kopien zu erstellen. Diese Antwort ist derzeit also nicht korrekt.
Gidds
0

+1 für Festplatten-Dienstprogramme, zu lang für Kommentare:

12.250.329 Dateien ausgewertet, 10.408.594 Dateien kopiert. Effektive Kopiergeschwindigkeit 8,68 MB / s.

zum Klonen eines magnetischen 2-TB-Backup-Laufwerks mit mehrjährigen Backups über SuperDuper! dieses Jahr.

Dies dauerte insgesamt 63 Stunden (SuperDuper stellte die Uhr alle 24 Stunden zurück, sodass am Ende 15:04:43 angezeigt wurde), im Gegensatz zu einer Finder-Kopie, die ich nach ungefähr 4 Tagen und einem Viertel der Dateien stornierte.

Offensichtlich war die Magnetplatte nicht der Grund dafür, dass dies so lange dauerte. Der Grund, warum Finder-Kopien auf Backup-Datenträgern mit langer Laufzeit blockieren, ist die bloße Anzahl von kaskadierenden symbolischen Links zu unveränderten Dateien, insbesondere für viele kleine Dateien wie Git-Indizes.

Paracetamol
quelle
0

rsync ist ein großartiges Dienstprogramm für solche Dinge. Ich benutze es normalerweise für solche Sachen. In diesem Fall könnte ich die -aP-Flags verwenden. Ich denke, ein Teil von -a ("Archiv") besteht auch darin, Berechtigungen, ACLs und dergleichen zu erhalten, aber ich bin nicht sicher.

In IIRC gibt es auch die Option --delete, mit der Sie die Quelldatei löschen können, nachdem sie erfolgreich in das Ziel kopiert wurde. Ich würde das allerdings nicht benutzen - normalerweise mache ich einen kompletten Mirror ohne die Option --delete, dann führe ich den Befehl mit den Optionen -c und --delete erneut aus. -c ist eine Prüfsumme, prüft also alle Dateien, die Sie heruntergeladen haben, anhand der Prüfsumme mit allen Dateien auf der Quelle und löscht dann die Quelle, wenn eine Übereinstimmung vorliegt. Andernfalls wird das Kopieren erneut kopiert oder fortgesetzt.

BEARBEITEN: Bitte benutzen Sie in diesem Fall das -H-Flag wie in den Kommentaren angegeben, um harte Links zu erhalten.

Harv
quelle
5
rsync verwaltet keine festen Links in Verzeichnissen. Wenn Sie eine Weile kopieren, dupliziert TM Backup viele Verzeichnisse
nohillside
1
@patrix - Ich kann das bestätigen. Ich habe es versucht. Verzeichnis-Hardlinks sind für HFS + fast einzigartig, und rsync versteht sie nicht.
Fake Name
3
-H, --hard-links bewahren harte Links
Pete Ashdown
-2

Wenn Sie bei Festplatten mehrere Dateien von einem Laufwerk verschieben, bewegt sich der Reader mit einem unheimlichen Klickgeräusch hin und her und verlangsamt die Übertragungsrate erheblich. Beispiel: Eine Datei mit USB 2.0 bewegt sich mit 30 MBit / s von 2 auf meinen Computer externe festplatten, aber 2 dateien bewegen sich mit 11 mbps. und 3 Dateien bewegen sich mit 6 Mbit / s. etc etc zip-Dateien werden schneller verschoben als Dateien.

Jake Thomas
quelle
2
Wie beantwortet dies die Frage des OP?
fsb