Was macht Time Machine?

18

Manchmal sagt mir OS X, dass es sich um "Backup wird vorbereitet ..." für eine enorme Zeitspanne handelt. Die benötigte Zeit scheint nicht mit der zu sichernden Datenmenge zu korrelieren. Gleiches gilt für die Phase "Backup wird beendet ...".

Die Frage: Was macht OS X, wenn es "Backup wird vorbereitet ..." und "Backup wird beendet ..." ist?

Ich weiß, dass es darum geht, was zu sichern und dann die Änderungen aufzuzeichnen, aber die dafür erforderliche Zeit sollte sicherlich proportional zur Menge der geänderten Daten sein. Es gibt viel Speicherplatz auf der Festplatte (daher gehe ich davon aus, dass keine alten Sicherungen gelöscht werden). Ich benutze eine TimeCapsule, wenn das einen Unterschied macht. Nichts läuft schief, ich bin nur neugierig.

Stephen Darlington
quelle

Antworten:

20

Hier ist eine Antwort von einem anderen Forum (Originalposter mir unbekannt):

Die Vorbereitungsphase in Time Machine ist in der Regel schnell, da Time Machine ein Protokoll der Dateisystemaktivitäten verwendet, um zu ermitteln, wo Änderungen gespeichert werden müssen.

Aber es gibt Dinge, die Sie tun können, um dieses Protokoll nicht vertrauenswürdig zu machen. Wenn Time Machine feststellt, dass das Protokoll möglicherweise nicht gültig ist, wird ein vollständiger Scan Ihres Dateisystems durchgeführt, um festzustellen, was wirklich gesichert werden muss. Dies kann eine Weile dauern. Auf meinem Powerbook (und mit einem Firewire-externen Time Machine-Laufwerk) kann dies zu einer Vorbereitungsphase führen, die 20 Minuten dauert. Wenn Sie Time Machine fortsetzen lassen, wird es schließlich herausfinden, was wirklich zur Sicherungsdiskette hinzugefügt werden muss, und wird fortgesetzt. Dies ist natürlich besser, als nur zu spielen, dass das Protokoll korrekt ist oder ALLES erneut gesichert wird, obwohl sich möglicherweise nur einige Dateien tatsächlich geändert haben (was viel länger dauern und mehr Speicherplatz von Time Machine in Anspruch nehmen würde).

In diesen frühen Tagen der Leopard-Installation können Sie das Protokoll am häufigsten von der Leopard-Installations-DVD booten, um es für nicht vertrauenswürdig zu erklären. Jedes Mal, wenn Sie dies tun, stellt Time Machine beim nächsten Start fest, dass Ihre Festplatte möglicherweise geändert wurde, ohne dass sich die Änderungen im Protokoll niederschlagen. Es wird also der vollständige Scan durchgeführt - eine lange "Vorbereitungsphase" -, um sicherzustellen, dass die Dinge richtig laufen.

Kommandant Keen
quelle
Tatsächlich werden die Protokolle nicht nur von Time Machine verwendet. Und es ist Ihr Mac, der die alten Protokolle für ungültig erklären kann. Sie können in Console fseventsdnach "Ereignisprotokoll in / Volumes / .. nicht synchron mit dem Volume" suchen , um alte Protokolle zu zerstören. Ein neu erstelltes Protokoll hat auch eine neue Kennung, die nicht mehr mit der mit der Sicherung gespeicherten ID übereinstimmt. Dadurch wird Time Machine angewiesen, Ihre Festplatte mit der letzten Sicherung zu vergleichen. Wenn mehrere Sicherungsdatenträger verwendet werden und fseventsdein neues Protokoll erstellt wird, wird Time Machine möglicherweise für jeden Sicherungsdatenträger eine Meldung anzeigen, dass die UUIDs des Ereignisspeichers nicht übereinstimmen .
Arjan
Wenn Sie das Laufwerk in Windows mit einem Lese- / Schreib-Dateisystemtreiber wie MacDrive einbinden, wird beim nächsten Backup von Time Machine auch ein vollständiger Dateisystem-Scan ausgelöst. (Das Mounten des Laufwerks mit dem schreibgeschützten Dateisystemtreiber in Boot Camp ist dagegen nicht möglich.)
Brant
10

Als Kompliment für die Antwort von Commander Keen empfehle ich, einen ausführlichen Blick auf Time Machine von Earthling Soft zu werfen . Zusätzlich werden weitere Informationen von backupd in system.log protokolliert (was sagt, warum der Vorbereitungsstatus so lang ist und so).

Chealion
quelle
1
+1 - ausgezeichneter Artikel!
Commander Keen
Großartiger Artikel. Ich wünschte, ich könnte zwei Antworten als angenommen markieren!
Stephen Darlington
Ars Technica hat einen weiteren guten Artikel, aber ich denke, der Earthling Soft-Link hat alles abgedeckt: arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14 Und für Entwickler, die dies lesen: siehe Eine praktische
Arjan,
10

Um das backupdProtokoll einfach anzuzeigen , sehen Sie sich das Time Machine Buddy- Widget an. Beachten Sie auch, dass sich auf der Sicherungsdiskette selbst ein weiteres Protokoll in der versteckten Datei befindet, .Backup.logdie sich im Ordner jeder Sicherung befindet. Dies gibt einige andere Informationen als die backupdProtokolle.

Beachten Sie, dass die Protokolle häufig nicht übereinstimmende Zahlen enthalten:

Keine Ausdünnung vor dem Backup erforderlich: 821,4 MB angefordert (einschließlich Auffüllen) [..]
Kopierte 1630 Dateien (3,8 MB) vom Macintosh HD-Volume.

Darüber hinaus werden tatsächlich weniger Dateien kopiert als vorhergesagt. Da Time Machine sich auf FSEvents verlässt, das nur geänderte Verzeichnisse meldet, gehe ich davon aus, dass diese Verzeichnisse im obigen Beispiel insgesamt 821,4 MB an Dateien enthielten. Beim eigentlichen Kopieren der Dateien vergleicht Time Machine die geänderten Verzeichnisse auf der Festplatte mit der Sicherung und stellt fest, dass nur 3,8 MB Dateien tatsächlich geändert wurden.

Informationen dazu, was in das Backup geschrieben wurde, finden Sie unter TimeTracker (GUI) oder Timedog (Befehlszeile). Beachten Sie, dass diese Programme manchmal auch als Administrator ausgeführt werden müssen, um alle Dateien anzuzeigen. Andernfalls berücksichtigen diese Tools möglicherweise nicht die Sicherungen von MySQL-Protokollen und -Daten , deren Eigentümer _mysql im Gruppenrad ist :

cd "/ Volumes / Backup von XX / Backups.backupdb / XX / Neueste"
sudo ls -l "Macintosh HD / usr / local / mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x --- @ 6 _mysql wheel 374 Jul 2 20:05 data

In diesen Fällen melden beide Tools (unbeaufsichtigt) eine geringere Gesamtsicherungsgröße und weniger Dateien als die backupdProtokolle in Console. Also, wenn die Zahlen nicht mit den Protokollen übereinstimmen, dann für TimeTracker:

sudo ~ / Downloads / TimeTracker.app / Contents / MacOS / TimeTracker

Ebenso für timedog:

cd "/ Volumes / Backup von XX / Backups.backupdb / XX" 
sudo ~ / Downloads / timedog

Um leicht große Dateien auf der Festplatte finden siehe Disk - Inventar X . Dieses Programm hat nichts mit Time Machine zu tun, kann aber bei der Untersuchung von Problemen hilfreich sein, beispielsweise wenn Sie sich fragen, warum Ihr Backup viel kleiner ist als der auf Ihrer Festplatte belegte Speicherplatz. Beachten Sie, dass dieses Programm wahrscheinlich immer weniger Speicherplatz im Fenstertitel anzeigt als auf dem Bildschirm, auf dem Sie auswählen können, welche Festplatte untersucht werden soll (auch wenn Sie als Root ausgeführt werden und das Menü Ansicht, Physische Dateigröße anzeigen wählen). Aber wenn die gemeldete Gesamtgröße wirklich viel kleiner ist als die tatsächlichen Summen, die auf Ihrem Mac verwendet werden, kann es hilfreich sein, als root zu arbeiten:

sudo "$ HOME / Downloads / Disk Inventory X.app/Contents/MacOS/Disk Inventory X"

Um Dateien aus dem Backup zu entfernen (zum Beispiel, wenn Sie zufällig feststellen, dass Time Machine tatsächlich einige große Dateien sichert, zum Beispiel eine außer Kontrolle geratene MySQL-Protokolldatei), schreibt Apple :

Möchten Sie alle Instanzen einer zuvor gesicherten Datei oder eines Ordners löschen? Leicht genug. Starten Sie Time Machine, wählen Sie das zu löschende Element aus und klicken Sie dann im Aktionsmenü in der Finder-Symbolleiste auf "Aus allen Sicherungen löschen".

Nun, wenn die Dateien , die Sie nur sichtbar für root löschen möchten, dann sollten Sie auch „Enter Time Machine“ als root aufrufen. Dazu muss Finder zuerst als root gestartet werden:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Dies sieht aus wie ein normaler Finder, aber Sie werden root neben dem Symbol für den Basisordner in der Seitenleiste des Finders bemerken . Verwenden Sie nun Shift-Cmd-G (Menü Gehe zu, Gehe zum Ordner), um zum Beispiel zu dem Ordner zu gelangen, /usr/localaus dem Sie die Dateien von der Sicherungsdiskette löschen möchten. Geben Sie als Nächstes Time Machine ein (und überprüfen Sie erneut, ob das Stammverzeichnis neben dem Symbol für den Basisordner angezeigt wird) und befolgen Sie die Anweisungen von Apple. Wenn Sie alle Dateien aus dem Backup gelöscht haben, drücken Sie im Terminal Strg-C, um den Root-Finder zu stoppen. (Ich musste mich auch von meinem Mac abmelden, da die Remote-Festplatte nicht ordnungsgemäß abgemeldet werden konnte.)

Wenn Sie ein Sparse-Bundle verwenden (wie bei einer Sicherung im Netzwerk), wird der freigegebene Speicherplatz nicht automatisch zurückgefordert (oder: erst, wenn der Speicherplatz benötigt wird). Um dies zu erzwingen, finden Sie Wie alle / die meisten freien Speicherplatz von einem sparsebundle auf OS X zurückzufordern . Dies gilt nicht nur für Dateien, die Sie manuell entfernt haben, sondern auch für Dateien, die von Time Machine für abgelaufene stündliche oder tägliche Sicherungen während der Ausdünnung nach der Sicherung entfernt wurden .

Time Machine komprimiert das Sparse-Bundle selbst, wenn der Speicherplatz knapp wird. Es scheint jedoch so, als ob zuerst einige alte Backups während der Ausdünnung vor dem Backup gelöscht werden. Daher ist es möglicherweise ratsam, die Komprimierung manuell vorzunehmen, wenn Sie jemals große Dateien gelöscht haben oder abgelaufene Backups große Dateien enthalten haben:

Beginn der Ausdünnung vor dem Backup: 53,57 GB (einschließlich Auffüllen), 
    9,90 GB verfügbar 
Es sind keine abgelaufenen Sicherungen vorhanden. Löschen Sie die ältesten Sicherungen, um Platz zu schaffen 
Gelöschte Sicherung / Volumes / Sicherung von XX / Backups.backupdb / XX / 2007-12-20-172543:
    9,90 GB jetzt verfügbar 
Gelöschte Sicherung / Volumes / Sicherung von XX / Backups.backupdb / XX / 2007-12-31-005523:
    9,90 GB jetzt verfügbar 
Gelöschte 2 Backups: Das älteste Backup ist jetzt der 8. Januar 2008 
Sicherung wird gestoppt. 
Sicherung abgebrochen. 
Auswurf des Time Machine-Image. 
Backup-Image komprimieren, um freien Speicherplatz wiederherzustellen 
Backup-Image-Komprimierung abgeschlossen 
Standard-Backup starten
[..]
Beginn der Ausdünnung vor dem Backup: 53,57 GB (einschließlich Auffüllen), 
    12,75 GB verfügbar

Vielen Dank an Adam Cohen-Rose für das Testen des oben genannten; siehe seinen Blog für weitere Details!

Arjan
quelle
Einige Softwareprogramme können sich selbst von der Time Machine-Sicherung ausschließen, indem sie das erweiterte Attribut com.apple.metadata:com_apple_backup_excludeItemfür ihre Dateien festlegen. Wie die Versionen vor VMware Fusion 1.1.2: blogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.html Siehe auch 10.5 : Anzeigen von Dateien, die Time Machine nicht unter macosxhints.com/article sichert. php? story = 20080328025026826 die einen Link zu Time Machine Exclusions bei shiftedbits.org/2007/10/31/time-machine-exclusions enthält
Arjan
Siehe superuser.com/questions/35152/... für weitere Details über Laufzeitmaschine als root in Snow Leopard.
Arjan
1

Wenn stecken in "Vorbereiten" (ThinningPreBackup)

root# tmutil status
Backup session status:
{
    BackupPhase = ThinningPreBackup;
    ClientID = "com.apple.backupd";
    DateOfStateChange = "2018-10-20 12:02:54 +0000";
    DestinationID = "XXXXXX0A-1XB7-4X3B-A791-6XXXXX4325D89B";
    DestinationMountPoint = "/Volumes/TimeMachineXXX";
    Percent = "-1";
    Running = 1;
    Stopping = 0;
}

Verwenden Sie lsof, um zu sehen, auf welche Dateien die Backups zugreifen - die letzte Datei sollte sich ändern:

root# ps -ef | grep backupd
    0    91     1   0  9:39pm ??         0:00.15 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -launchd
    0   552     1   0  9:59pm ??         0:49.54 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
    0  1244  1156   0 10:30pm ttys003    0:00.01 grep backupd
root# lsof -p 552
COMMAND PID USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
backupd 552 root  cwd    DIR    1,4       1292        2 /
backupd 552 root  txt    REG    1,4     769168 67640888 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
backupd 552 root  txt    REG    1,4   26771408 67698052 /usr/share/icu/icudt59l.dat
backupd 552 root  txt    REG    1,4     236208 67730774 /private/var/db/timezone/tz/2018e.1.0/icutz/icutz44l.dat
backupd 552 root  txt    REG    1,4     841456 67695858 /usr/lib/dyld
backupd 552 root  txt    REG    1,4 1174183936 69140457 /private/var/db/dyld/dyld_shared_cache_x86_64
backupd 552 root    0r   CHR    3,2        0t0      306 /dev/null
backupd 552 root    1u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    2u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    3w   REG    1,9        686  5515544 /Volumes/TimeMachine2/Backups.backupdb/XXXXXXXXXX/2018-10-20-220254.inProgress/.Backup.561729775.162983.log
backupd 552 root    4r   DIR    1,4        136 68977542 /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/tvOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreLocation.framework/English.lproj

Dies zeigt an, dass es etwas tut - und geduldig zu sein ...

PaulS
quelle