Wie erzwinge ich eine tiefe Durchquerung einer Zeitmaschine?

12

Nach ein paar Kernel-Paniken und einem versehentlichen Hot-Unplug von meinem Firewire Time Machine-Laufwerk möchte ich sicherstellen, dass meine Time Machine genau zu meinem Macintosh HD passt, ähnlich wie rsync -a. Gibt es eine Möglichkeit, Time Machine zu einer tiefen Durchquerung zu zwingen, um zu überprüfen, ob das Backup übereinstimmt?

Zu wissen, wie man das bei Leopard, Snow Leopard und Lion macht, wäre nützlich.

Blair Zajac
quelle
Eine besonders sichere (aber zeitaufwändige und etwas teure) Option wäre das Starten einer neuen Sicherungsdiskette.
Thilo

Antworten:

7

Wenn Sie das Time Machine-Ziel auf nichts setzen und es dann wieder auf den gleichen Ort wie zuvor setzen, erzwinge ich eine tiefe Durchquerung. Sie können versuchen, zwischen dem Ändern des Ziels und dem erneuten Hinzufügen einen Neustart durchzuführen, um die Wahrscheinlichkeit zu erhöhen, dass eine tiefe Durchquerung ausgelöst wird.

Im schlimmsten Fall könnten wir im Einzelbenutzermodus herumfummeln, um das Verzeichnis fseventsd zu einem sicheren Zeitpunkt zu zerstören, wenn das System nicht darauf rechnet, dass es korrekt ist. Sie haben also eine neue Datenbank erzwungen, die nicht übereinstimmt. Sie könnten dies vermutlich von der TM-Seite löschen, aber ich würde die Startkopie als geringfügig sicherer und weniger anfällig für die Zerstörung der benötigten Daten oder die Zerstörung Ihres Backups entfernen.

Wenn Sie dazu neigen, die Befehlszeile / das Terminal zu verwenden, würde ich damit beginnen, tmutil comparebevor Sie überhaupt eine tiefe Durchquerung erzwingen. Es vergleicht explizit vorhandene Dinge mit dem letzten Snapshot und Sie können Dinge erzwingen, indem Sie einen bestimmten externen Snapshot angeben, wenn Sie sich Sorgen machen, dass ein lokaler Snapshot verglichen wird.

bmike
quelle
Wie setzen Sie das Time Machine-Ziel auf nichts? tmutil setdestinationerfordert einen Pfad als Argument, nicht wahr? (Oder ich denke, wählen Sie einfach die Sicherungsdiskette aus und klicken Sie auf "Diskette entfernen", um die Auswahl aufzuheben?) Ich stecke in einer schrecklichen Position fest. Time Machine erstellt ein neues Backup, wenn ich versuche, ein Backup zu erstellen (ich brich es ab, bevor es meine alten Backups löscht). Daher möchte ich es zwingen, einen tiefen Durchlauf durchzuführen, damit festgestellt wird, dass sich die meisten Dateien seit dem letzten nicht geändert haben Backup.
Gary
Okay, ich habe nur die Time Machine-Oberfläche verwendet und auf "Diskette entfernen" geklickt und sie dann erneut hinzugefügt. Ich bekomme immer noch keine tiefe Durchquerung. Ich weiß das, weil die Phase "Backup vorbereiten" 12 Minuten dauerte, als ich gestern tatsächlich eine tiefe Durchquerung durchführte, als es 120 Minuten dauerte. Genau das möchte ich jetzt, kann aber nicht herausfinden, wie das geht.
Gary
1

Das Booten im Einzelbenutzermodus kann zu einer tiefen Durchquerung führen. Es hat für mich einmal getan, aber nicht nachfolgende Zeiten. Das Löschen von /.fseventsd wird definitiv. Dies sollte im Einzelbenutzermodus sicher sein. Das Löschen von /.fseventd auf dem Sicherungsdatenträger hat für mich keinen tiefen Durchlauf ausgelöst. (Mein System wurde normal fortgesetzt und nie neu erstellt.)

tmutil compareist nur etwas genau. Es schien Dateien genau zu identifizieren, die zuerst nicht gesichert wurden. Ich habe einen tiefen Durchlauf ausgelöst, um dies zu korrigieren, aber Time Machine sichert immer noch nicht viele Dateien. Doch tmutil comparejetzt behauptet, dass es kein Problem gibt. Ich würde vertrauen:

rsync --dry-run --itemize-changes --checksum --protect-args -aNHAXx --protect-decmpfs --fileflags --force-change --delete path/to/source_dir/ path/to/destination_dir/

Verwenden Sie /Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/entweder als Quell- oder Zielpfad. --itemize-changesLassen Sie uns sehen, was anders ist. '--checksum' gibt rsyncan, dass der Dateiinhalt tatsächlich verglichen werden soll und nicht nur die Änderungszeiten und die Dateigröße. und --dry-runweist rsync an, nicht tatsächlich zu sichern (also sagt es uns nur, was es tun würde). Die restlichen Argumente sind Flags, die rsync anweisen, das Ziel in jeder Hinsicht mit der Quelle identisch zu machen, einschließlich Metadaten und HFS-Komprimierungsstatus. Ich glaube, dass Time Machine Buchhaltungsmetadaten hinzufügt, die beim Wiederherstellen entfernt werden, sodass rsyncmöglicherweise falsche Metadatenänderungen auftreten.

yig
quelle
1

Kurze Antwort für mindestens macOS 10.13.6:

  1. Entfernen Sie alle .inProgress-Backups vom Backup-Volume. Dies kann eine Root-Verwendung erfordern. Gehen Sie /bin/rm -rfdaher vorsichtig vor .

  2. Verwenden Sie den tmutil associatediskBefehl, um das Sicherungsvolume erneut an das Hauptvolume zu binden. Beispielsweise:

sudo tmutil Associatedisk -a / "/ Volumes / Time Machine Backups / Backups.backupdb / Macintosh HD / Neueste / Macintosh HD"

Starten Sie dann eine Sicherung über den Menüpunkt Time Machine. In meinem Fall dauerte der Scan mehr als 30 Minuten, anstatt den Scan in 10 Minuten zu beenden (eindeutig kein vollständiger Scan) und ein Terabyte für die Sicherung anzuzeigen, und die Sicherungsgröße stimmte tmutil comparemit den Aussagen überein .

Hintergrund:

Ich musste einen tiefen Durchlauf / vollständigen Scan erzwingen, nachdem ein nicht autorisiertes Installationsprogramm (Reallusion) die Berechtigungen für alles in "/ Users / Shared" geändert hatte (etwa 1 Terabyte ansonsten unveränderter Dateien). Ich habe sie alle zurück geändert und tmutilbestätigt, dass die Zeitmaschine diese Dateien nicht mehr sichern muss, aber eine von zwei Sicherungsdisketten bestand darauf, einen zwischengespeicherten Scan zu verwenden, der dies angab.

Dinge, die nicht funktionierten:

  • Entfernen und erneutes Hinzufügen des Sicherungsvolumes aus den Systemeinstellungen

  • Löschen von /.fseventsd

  • Installieren eines Systemupdates

  • Entfernen der .inProgress-Sicherung ohne Ausführung tmutil associated disk

  • Laufen tmutil associated diskohne .inProgress zu Entfernen

  • Booten im Einzelbenutzermodus, Mounten / als Lese- / Schreibzugriff und Berühren einer Datei

In den meisten Fällen würden die Backupd-Protokolle behaupten, eine tiefe Durchquerung durchzuführen, würden jedoch nur einige Minuten dauern und dann versuchen, alles zu sichern. Hier ist der Befehl zum backupdspäteren Live- Überwachen ab 10.13:

log stream --style syslog --predicate 'senderImagePath enthält [cd] "TimeMachine"' --info

Das zeigt nur neue Ereignisse. So protokollieren Sie die letzten drei Tage:

log show --style syslog --predicate 'senderImagePath enthält [cd] "TimeMachine"' --info --last 3d

Seth Noble
quelle