カーネルパニックが数回発生し、Firewire Time Machineドライブの偶発的なホットプラグを解除した後、Time MachineがMacintosh HDとまったく同じように正確に一致することを確認したいと思いrsync -a
ます。バックアップが一致することを確認するために、Time Machineに強制的に深いトラバーサルを実行させる方法はありますか?
Leopard、Snow Leopard、Lionでこれを行う方法を知っていると便利です。
カーネルパニックが数回発生し、Firewire Time Machineドライブの偶発的なホットプラグを解除した後、Time MachineがMacintosh HDとまったく同じように正確に一致することを確認したいと思いrsync -a
ます。バックアップが一致することを確認するために、Time Machineに強制的に深いトラバーサルを実行させる方法はありますか?
Leopard、Snow Leopard、Lionでこれを行う方法を知っていると便利です。
回答:
Time Machineの宛先を何も設定せずに、以前と同じ場所に再設定すると、深いトラバースが強制されます。宛先の変更と再追加の間に再起動して、深いトラバーサルがトリガーされる可能性を高めることができます。
最悪の場合、システムが正しいと期待していないときに安全にfseventsdディレクトリを破棄するために、シングルユーザーモードでいじくり回すことができます。そのため、一致しない新しいデータベースを強制します。おそらくこれをTM側から削除することもできますが、ブートコピーは、安全性がやや低く、必要なデータを破壊したり、バックアップを台無しにしたりする可能性が低いため削除します。
コマンドライン/ターミナルを使用したいtmutil compare
場合は、深いトラバーサルを強制することよりも先に開始します。現在存在するものを最後のスナップショットと明示的に比較し、ローカルスナップショットが比較されるのが心配な場合は、特定の外部スナップショットを指定することで物事を強制できます。
tmutil setdestination
引数としてパスが必要ですよね?(または、バックアップディスクを選択してから[ディスクの削除]をクリックして選択を解除すると思いますか?)Time Machineは、バックアップしようとするたびに新しいバックアップを作成しています(古いバックアップを削除する前にキャンセルします)ので、実際にほとんどのファイルが最後から変更されていないことを確認するために、深いトラバーサルを実行するように強制しますバックアップ。
シングルユーザーモードで起動すると、深いトラバースが発生する場合があります。私にとっては一度だけでしたが、それ以降はそうではありません。/.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
するため、誤ったメタデータの変更が見つかる可能性があると考えています。
少なくともmacOS 10.13.6の短い答え:
バックアップボリュームから.inProgressバックアップを削除します。これにはrootの使用が必要な場合がある/bin/rm -rf
ため、注意して進めてください。
この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