タイムマシンの深いトラバーサルを強制する方法は?


12

カーネルパニックが数回発生し、Firewire Time Machineドライブの偶発的なホットプラグを解除した後、Time MachineがMacintosh HDとまったく同じように正確に一致することを確認したいと思いrsync -aます。バックアップが一致することを確認するために、Time Machineに強制的に深いトラバーサルを実行させる方法はありますか?

Leopard、Snow Leopard、Lionでこれを行う方法を知っていると便利です。


非常に安全な(ただし時間がかかり、少し高価な)オプションは、新しいバックアップディスクを起動することです。
ティロ

回答:


7

Time Machineの宛先を何も設定せずに、以前と同じ場所に再設定すると、深いトラバースが強制されます。宛先の変更と再追加の間に再起動して、深いトラバーサルがトリガーされる可能性を高めることができます。

最悪の場合、システムが正しいと期待していないときに安全にfseventsdディレクトリを破棄するために、シングルユーザーモードでいじくり回すことができます。そのため、一致しない新しいデータベースを強制します。おそらくこれをTM側から削除することもできますが、ブートコピーは、安全性がやや低く、必要なデータを破壊したり、バックアップを台無しにしたりする可能性が低いため削除します。

コマンドライン/ターミナルを使用したいtmutil compare場合は、深いトラバーサルを強制することよりも先に開始します。現在存在するものを最後のスナップショットと明示的に比較し、ローカルスナップショットが比較されるのが心配な場合は、特定の外部スナップショットを指定することで物事を強制できます。


Time Machineの宛先を何も設定しない方法は?tmutil setdestination引数としてパスが必要ですよね?(または、バックアップディスクを選択してから[ディスクの削除]をクリックして選択を解除すると思いますか?)Time Machineは、バックアップしようとするたびに新しいバックアップを作成しています(古いバックアップを削除する前にキャンセルします)ので、実際にほとんどのファイルが最後から変更されていないことを確認するために、深いトラバーサルを実行するように強制しますバックアップ。
ゲイリー

わかりましたので、Time Machineインターフェイスを使用して[ディスクの削除]を押してから、再度追加しました。私はまだ深いトラバーサルを取得していません。これは、「バックアップの準備」フェーズに12分かかったためです。昨日、完了までに120分かかったときに実際にディープトラバーサルを実行しました。これはまさに今必要なことですが、その方法がわかりません。
ゲイリー

1

シングルユーザーモードで起動すると、深いトラバースが発生する場合があります。私にとっては一度だけでしたが、それ以降はそうではありません。/.fseventsdを確実に削除します。これは、シングルユーザーモードで安全に実行できるはずです。バックアップボリュームで/.fseventdを削除しても、深いトラバースはトリガーされませんでした。(私のシステムは通常どおり継続し、再作成すらしませんでした。)

tmutil compare多少正確です。最初はバックアップされなかったファイルを正確に識別するように見えました。これを修正するために深いトラバーサルをトリガーしましたが、Time Machineはまだ多くのファイルをバックアップしていません。しかしtmutil compare今では、問題はないと主張しています。私は信頼します:

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

/Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/ソースパスまたは宛先パスとして使用します。--itemize-changes何が違うのか見てみましょう。'--checksum'はrsync、単なる変更時間とファイルサイズではなく、実際にファイルの内容を比較するように指示します。そして、--dry-run(それはちょうどそれがどうなるのかを教えてくれるので)実際にバックアップにrsyncのないように指示します。残りの引数は、メタデータやHFS圧縮ステータスなど、あらゆる方法で宛先をソースと同一にするようにrsyncに指示するフラグです。Time Machineは、復元時に削除する簿記メタデータを追加rsyncするため、誤ったメタデータの変更が見つかる可能性があると考えています。


1

少なくともmacOS 10.13.6の短い答え:

  1. バックアップボリュームから.inProgressバックアップを削除します。これにはrootの使用が必要な場合がある/bin/rm -rfため、注意して進めてください

  2. このtmutil associatediskコマンドを使用して、バックアップボリュームをメインボリュームに再バインドします。例えば:

sudo tmutil associationdisk -a / "/ Volumes / Time Machine Backups / Backups.backupdb / Macintosh HD / Latest / Macintosh HD"

次に、Time Machineメニュー項目からバックアップを開始します。私の場合、10分でスキャンを終了し(明らかにフルスキャンではない)、バックアップするテラバイトを表示する代わりに、スキャンは30を超え、バックアップサイズは前述の内容tmutil compareと一致しました。

バックグラウンド:

不正なインストーラー(Reallusion)が "/ Users / Shared"(その他の変更されていないファイルの約1テラバイト)のすべてのアクセス許可を変更した後、ディープトラバーサル/フルスキャンを強制する必要がありました。私はそれらをすべて元に戻し、tmutilタイムマシンがそれらのファイルをもうバックアップする必要はないことを確認しましたが、2つのバックアップディスクの1つは、そうするキャッシュスキャンを使用することを主張しました。

動作しなかったもの:

  • システム設定からのバックアップボリュームの削除と再追加

  • /.fseventsdをクリアする

  • システムアップデートのインストール

  • 実行せずに.inProgressバックアップを削除する tmutil associated disk

  • tmutil associated disk.inProgressを削除せずに実行する

  • シングルユーザーモードで起動し、読み取り/書き込みとして/をマウントし、ファイルに触れる

ほとんどの場合、バックアップされたログは深いトラバーサルを行っていると主張しますが、数分しかかからずにすべてをバックアップしようとします。次にbackupd、10.13のライブを後で監視するコマンドを示します。

ログストリーム--style syslog --predicate 'senderImagePath contains [cd] "TimeMachine"' --info

新しいイベントのみが表示されます。過去3日間のログを記録するには:

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

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