短く答えると: 「バックアップを準備中」は、Time Machine が前回から何が変わったかを調べている段階です。通常はシステムが持つ変更ログから読み取れます。そのログが使えないと、代わりにディスク上のすべてのファイルをたどります。これが40秒と4時間の違いです。
次のセクションのコマンドで2つのどちらが起きているかがわかるので、推測をやめられます。
1バイトもコピーする前に、Time Machine は何をコピーするか決める必要があります。macOS は FSEvents と呼ばれるファイルシステムの変更ログを記録し続けており、うまくいく場合は Time Machine がそのログに前回のバックアップ以降の変更をすべて尋ね、いっぱいのディスクでも数秒で済みます。
うまくいかない場合、そのログは答えられません。すると Time Machine は詳細スキャンに切り替えます。元のすべてのファイルを最後のバックアップと1つずつ比較するということです。ほとんどが小さな100万個のファイルがある Mac では、何かをコピーする前に何時間もかかります。進行状況バーはこれを何も教えてくれません。どちらの場合も「バックアップを準備中」と表示します。
2つのコマンド。どちらも何も変更しません。
tmutil status
Percent と BytesCopied を探してください。本当に準備段階なら、どちらもゼロのままで、それは想定どおりです。欲しいのはログで、どちらの経路を取ったかをはっきり書いています:
log show --predicate 'subsystem == "com.apple.TimeMachine"' --last 1h --info | grep -i -E "deep|event|scan|prepar"
Deep event scan や event database is not usable を含む行があれば、それが答えです。すべてをスキャンしています。イベントの読み取りと少数のパスについての行なら、変更ログは機能していて、ほかの何かが遅いのです。
代わりにリアルタイムで見るには、次を実行し、Control-C で止めます:
log stream --predicate 'subsystem == "com.apple.TimeMachine"' --info
比較する以前のバックアップがないので、ディスク全体が読まれます。いっぱいのドライブを USB で数時間は普通で、Wi-Fi ならはるかに長くかかります。macOS のアップデートも変更ログを無効にするので、アップデート後の最初のバックアップは当然詳細スキャンになります。接続して一晩置き、ほかのことをする前に朝確認してください。
しばらく使っている Mac ではこれがよくあるものです。正常でないシャットダウン、いっぱいのディスク、修復されたボリュームはどれも FSEvents を使えなくすることがあり、その後は何かが再構築するまで、毎回のバックアップが詳細スキャンになります。バックアップは動きます。ただ毎回何時間もかかるだけです。
多くの場合、再起動すると起動ボリュームのログが再構築されます。最も手軽に試せることです。
中断されたバックアップは、宛先に .inProgress で終わるフォルダを残します。Time Machine は何か新しく始める前にそれを整理しようとし、ネットワーク上の宛先では、その整理がバックアップ自体より長くかかることがあります。バックアップドライブの、HFS+ ディスクなら Backups.backupdb の中、APFS ディスクならボリューム自身のフォルダを見てください。
.inProgress フォルダを削除しても、捨てられるのは未完了のバックアップだけです。完了したバックアップはそれぞれ別のフォルダで、手は付けられません。Finder でゴミ箱に入れ、ゴミ箱を空にし、手動でバックアップを開始してください。
詳細スキャンの時間は、サイズではなくファイルの数で決まります。40 GB のビデオファイル1つなら比較は1回です。40 GB の node_modules ディレクトリなら200万回になり得ます。Xcode の DerivedData、npm や yarn のキャッシュ、Docker イメージ、Homebrew の cellar、Steam ライブラリがよくある原因で、どれも再生成できます。
システム設定、一般、Time Machine、オプションで除外してください。スキャンもコピーも短くなり、取り戻したくなるものを失うこともありません。
Time MachineはNASや共有Macにディスクイメージを書き込み、そのファイル比較はすべてネットワーク越しに行われます。家の端からWi-Fiで接続していると、詳細スキャンに丸一日かかることもあります。Macをルーターの近くに移すか、Ethernetを使い、同じバックアップが1時間で終わるか確かめてください。
まったく終わらないなら、問題はおそらく共有そのもので、すでにあるものが読めるかどうかは検証で確かめられます。
.inProgress フォルダができるのはそのためです。Time Machine はメニューバー項目か tmutil stopbackup で安全に停止できます。「バックアップを準備中」は状態表示で、作業が1分で終わる場合も永遠に終わらない場合も同じ表示です。本当に知りたい数字は、うまくいった最後のバックアップがいつ完了したかで、Time Machine はそれを開かなければならないメニューの奥に置いています。
Copy Shelter はメイン画面に最後に完了したバックアップの古さを表示し、7日間完了しなければ知らせます。作業中はどの段階にいてどのファイルを処理しているかも表示するので、長い作業は長い作業に、止まった作業は止まったように見えます。
そしてバックアップが完了しても、完了したというのは誰も確認していないコピーについての主張です。Copy Shelter はスケジュールで保存したハッシュと照合して読み戻すので、いつの間にか読めなくなったバックアップに、何事もない平日のうちに気づけます。
変更ログが機能していれば、ディスクのサイズにかかわらず数秒から数分です。詳細スキャンに切り替わっていれば数時間です。どちらかは上のログのコマンドでわかり、それが確実に知る唯一の方法です。
はい。その段階ではまだ何も書き込まれていません。Time Machine のメニューバー項目から停止するか、tmutil stopbackup を実行してください。危険なのはコピー段階での強制終了やドライブの取り外しで、それが .inProgress フォルダを残す原因です。
かけがえのないものを除外した場合だけです。キャッシュ、ビルドディレクトリ、パッケージマネージャのフォルダ、ダウンロードしたゲームライブラリは、どれもインターネットから作り直せます。Mac で何をバックアップするかで一覧を説明しています。
その場合は元をスキャンしていて、まだ書き込んでいません。ドライブが動き出すのはコピー段階です。1時間ログを見ても TimeMachine サブシステムから何も出ていなければ、プロセス自体が固まっている可能性があり、次の手は再起動です。
する仕事も、その2つのやり方も同じなので、初回はすべてを読みます。違うのは、どの段階にいて何を処理しているかを示すこと、そしてメイン画面のスコアが数えるのは完了した最後のバックアップで、開始しただけのものは決して数えないことです。
関連: Time Machine が容量不足と表示する、バックアップが黙って止まったとき、Copy Shelter と Time Machine の比較。