Time Machineは何をしていますか?


18

OS Xから、「バックアップの準備中...」と非常に長い時間言われることがあります。所要時間は、バックアップするデータの量と相関関係がないようです。「バックアップの終了...」ステージでも同じです。

質問:「バックアップの準備中...」および「バックアップの終了中...」の場合、OS Xは何をしますか?

何をバックアップしてから変更を記録するのかを知っていますが、これにかかる時間は変更されたデータの量に比例するはずです。十分な空きディスクスペースがあります(したがって、古いバックアップを削除していないと思います)。何らかの違いが生じる場合は、TimeCapsuleを使用しています。何も問題はありません。ただ興味があります。

回答:


20

ここに別のフォーラムからの答えがあります(私には知られていない元のポスター):

Time Machineはファイルシステムアクティビティのログを使用して、バックアップが必要な変更を見つける場所を知るため、Time Machineの「準備」段階は通常高速です。

しかし、そのログを信頼できないものにするためにできることがあります。Time Machineは、ログが無効である可能性があることを検出すると、ファイルシステムの完全スキャンを実行して、実際にバックアップする必要があるものを判断します。これには時間がかかる場合があります。私のPowerbook(およびFirewire外付けTime Machineドライブ)では、20分間続く「準備」段階になることがあります。Time Machineを続行すると、最終的にバックアップディスクに追加する必要があるものが最終的に把握され、続行されます。もちろん、実際に変更されたファイルがわずかである場合でも、ログをギャンブルするだけで正しいか、すべてを再度バックアップするよりも優れています(時間がかかり、Time Machineのディスク領域を多く消費します)。

これらの初期のLeopardインストールでは、ログを信頼できないものにする最も一般的なことの1つは、LeopardインストールDVDから起動することです。これを行うたびに、次回Time Machineを実行すると、変更がログに反映されずにハードドライブMIGHTが変更されていることが検出されます。そのため、完全なスキャン(長い「準備」段階)を行って、物事が正しく行われるようにします。


実際、ログはTime Machineによって使用されるだけではありません。そして、古いログを無効と宣言できるのはあなたのMacです。コンソールを検索しfseventsdて、「/ Volumes / ..のイベントログがボリュームと同期していません。古いログを破壊しています。」新しく作成されたログにも新しい識別子があり、バックアップで保存されたIDと一致しなくなります。これにより、Time Machineはハードディスクを最後のバックアップと比較します。複数のバックアップディスクを使用している場合fseventsd、新しいログを作成すると、Time Machineは最終的に各バックアップディスクの「イベントストアUUIDが一致しません」に遭遇します。
アルジャン

MacDriveなどの読み取り/書き込みファイルシステムドライバーを使用してWindowsにドライブをマウントすると、Time Machineが次回バックアップするときにファイルシステム全体のスキャンがトリガーされます。(ブートキャンプに読み取り専用のファイルシステムドライバを使用してドライブを取り付け、一方、ません)
ブラント

10

Keen司令官の答えを補完するために、私はEarthling SoftのTime Machineを詳しく読むことをお勧めします。さらに、より多くの情報がbackupdによってsystem.logに記録されます(これにより、準備ステータスが非常に長いなどの理由がわかります)


1
+1-すばらしい記事!
キーン司令官

素晴らしい記事。2つの回答を承認済みとしてマークできたらと思います。
スティーブンダーリントン

Ars Technicaには別の優れた記事がありますが、Earsling Softリンクがすべてをカバーしていると思います:arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14そして、これを読んでいる開発者向け:参照developer.apple.com/mac/articles/cocoa/filesystemevents.htmlの
Arjan

10

backupdログを簡単に表示するには、Time Machine Buddyウィジェットを見てください。また、バックアップディスク自体に、.Backup.log各バックアップのフォルダにある隠しファイルに別のログがあることに注意してください。これにより、backupdログ以外の情報が得られます。

多くの場合、ログには一致していないように見える数値が表示されることに注意してください。

バックアップ前の間引きは必要ありません:821.4 MBが要求されました(パディングを含む)[..]
ボリュームMacintosh HDから1630ファイル(3.8 MB)をコピーしました。

上記では、実際にコピーされるファイルの数は、最初に予測された数よりも少なくなります。Time Machineは、変更されたディレクトリのみを報告するFSEventsに依存しているため、上記の例では、これらのディレクトリに合計821.4 MBのファイルが保持されていると思います。実際にファイルをコピーしている間、Time Machineはハードディスク上の変更されたディレクトリとバックアップを比較し、3.8 MBのファイルのみが実際に変更されたことを見つけます。

バックアップに書き込まれたものを見るためにTimeTracker(GUI)またはtimedog(コマンドライン)。管理ユーザーとして実行している場合でも、すべてのファイルを表示するにはこれらのプログラムをrootとして実行する必要がある場合があることに注意してください。そうしないと、これらのツールは、たとえば、グループwheelの_mysqlが所有するMySQLログとデータのバックアップを考慮しない場合があります。

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

そのような場合、両方のツールはbackupd、コンソールのログよりも低い合計バックアップサイズと少ないファイルを(サイレントに)報告します。そのため、数値がログと一致しない場合、TimeTrackerの場合:

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

同様に、タイムドッグの場合:

cd "/ Volumes / Backup of XX / Backups.backupdb / XX" 
sudo〜/ Downloads / timedog

ハードディスク上の大きなファイルを簡単に見つけるには、ディスクインベントリXを参照してください。このプログラムはTime Machineとは何の関係もありませんが、バックアップがハードディスクで使用されているスペースよりもはるかに小さい理由がわからない場合など、問題の調査に役立ちます。このプログラムは、調査するディスクを選択できる画面よりも、ウィンドウタイトルで常に少ないディスクスペースを常に報告することに注意してください(ルートとして実行し、メニューの[表示]、[物理ファイルサイズの表示]を選択した場合でも)。しかし、報告された合計サイズが実際にMacで使用されている合計よりもはるかに小さい場合は、rootとして実行すると役立つ場合があります。

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

バックアップからファイルを削除するには(Time Machineが暴走したMySQLログファイルなどの巨大なファイルを実際にバックアップしていることに気付いた場合など)、Appleは次のように書き込みます

以前にバックアップしたファイルまたはフォルダーのすべてのインスタンスを削除しますか?簡単です。Time Machineを起動し、削除するアイテムを選択し、Finderツールバーのアクションメニューから[すべてのバックアップから削除]を選択します。

さて、あれば削除することをそれらのファイルがルートにのみ表示され、その後は同様にルートとして「タイムマシンを入力し、」呼び出す必要があります。それには、最初にFinderをルートとして起動する必要があります。

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

これは通常のFinderのように見えますが、Finderのサイドバーのホームフォルダーアイコンの横にルートが表示されます。次に、Shift-Cmd-G(メニューGo、Go to Folder)を使用して、たとえば、/usr/localバックアップディスクからファイルを削除するフォルダーに移動します。次に、Time Machineを入力し(ホームフォルダーアイコンの横にルートが表示されることを再度確認します)、Appleの指示に従います。バックアップからファイルを削除したら、ターミナルでCtrl-Cを押してルートFinderを停止します。(リモートディスクが適切にアンマウントされないため、Macからログオフする必要もありました。)

スパースバンドルを使用している場合(ネットワークでバックアップを使用している場合など)、解放されたスペースは自動的に回収されません(または、スペースが必要になるまで)。これを強制するには、OS Xでスパースバンドルからすべて/ほとんどの空き領域を再生する方法を参照してください。これは、手動で削除したファイルに適用されるだけでなく、バックアップ後の間引き中に1時間ごとまたは1日ごとに期限切れのバックアップのためにTime Machineによって削除されたファイルにも適用されます。

Time Machineは、ディスク領域が不足すると、実際にはスパースバンドル自体を圧縮します。ただし、バックアップ前の間引き中に最初に古いバックアップを削除する可能性があるため、巨大なファイルを削除した場合、または期限切れのバックアップに巨大なファイルが含まれている場合は、手動で圧縮するのが賢明かもしれません:

バックアップ前の間引きの開始:53.57 GB要求(パディングを含む)、 
    9.90 GBが利用可能 
期限切れのバックアップはありません-最も古いバックアップを削除してスペースを確保します 
XX / Backups.backupdb / XX / 2007-12-20-172543のバックアップ/ Volumes / Backupを削除しました:
    9.90 GBが利用可能になりました 
XX / Backups.backupdb / XX / 2007-12-31-005523のバックアップ/ Volumes / Backupを削除しました:
    9.90 GBが利用可能になりました 
2つのバックアップを削除しました:最も古いバックアップは2008年1月8日です 
バックアップを停止しています。 
バックアップがキャンセルされました。 
排出されたTime Machineディスクイメージ。 
バックアップディスクイメージを圧縮して空き領域を回復する 
完了したバックアップディスクイメージの圧縮 
標準バックアップの開始
[..]
バックアップ前の間引きの開始:53.57 GB要求(パディングを含む)、 
    12.75 GB使用可能

上記をテストしてくれたAdam Cohen-Roseに感謝します。詳細については、彼のブログをご覧ください!


一部のソフトウェアはcom.apple.metadata:com_apple_backup_excludeItem、ファイルに拡張属性を設定することにより、Time Machineバックアップから自身を除外する場合があります。:VMware Fusionのの前の1.1.2バージョンのようなblogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.htmlも参照してください10.5:Time Machineのバックアップしないことを示しているファイルmacosxhints.com/article。 ?phpの物語= 20080328025026826へのリンクが含まれてタイムマシンの除外shiftedbits.org/2007/10/31/time-machine-exclusions
Arjan

参照superuser.com/questions/35152/...の Snow Leopardのルートとしてタイムマシンを実行しているの詳細については。
アルジャン

1

「準備中」(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;
}

lsofを使用して、バックアップがアクセスしているファイルを確認します。最後のファイルが変更されているはずです。

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

これは、それが何かをしていることを示します-そして、忍耐強くなるために...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.