簡短回答:備份未透過自身的一致性檢查。你的檔案可能還在,但 Time Machine 不再信任歷史記錄,而且沒有修復工具。
在接受新建備份的提議之前,先把你需要的東西從舊備份中取出來。那個提議會刪除它。
Time Machine 會記錄它寫入的內容。驗證會重新讀取備份,並與該記錄比對。當它說無法驗證備份時,意味著兩者中有一方與另一方不再一致:要麼檔案不在索引所說的位置,要麼位元組不是它寫入的那些位元組。
這說的是索引,通常不是你的檔案。大部分資料仍在磁碟上。Time Machine 失去信心的,是它遍歷歷史記錄、為你提供特定日期特定檔案的特定版本的能力,而這正是它存在的意義。
Time Machine 備份沒有 fsck。Apple 沒有提供修復工具,這就是為什麼每個論壇貼文的結局都一樣:刪掉重來。
對話框會提議開始新的備份。接受這個提議會刪除你現有的一切。即使是未透過驗證的備份,也很可能包含你檔案的可讀副本,所以在證明並非如此之前,把它當作某些東西的最後一份副本。
Backups.backupdb,然後是你的 Mac 名稱,再然後是帶日期的資料夾。那些都是裝滿普通檔案的普通資料夾,你可以從中拖出檔案。如果磁碟本身工作異常,動它之前先複製一份,在複製上操作。「磁碟工具」>「檔案」>「新建映像」>「來自[你的磁碟]的映像」,並選擇只讀。正在損壞的磁碟每讀一次就更糟,你只有一次好機會。
去找這個設定的人往往會感到意外。按住 Option 鍵點按選單欄中的「時光機」圖示,會出現驗證備份,但只在備份位於網路共享上時才有。在 USB 或雷靂磁碟上不會出現此選項,因為 macOS 根本不對本地磁碟執行這項檢查。
所以大多數人是在 NAS 或 Time Capsule 上遇到這條訊息的,而桌上放著磁碟的人都處於另一種情況:沒有驗證,也不會有驗證失敗。根本沒有東西在檢查。
在本地磁碟上最接近手動檢查的方法是:
tmutil compare -s
它會把你的 Mac 與最新快照進行比較,並列出差異。這是比較,而不是完整性檢查,在大磁碟上需要很長時間。它會告訴你備份能被讀取和遍歷,這比你一分鐘前知道的要多。
diskutil verifyVolume /Volumes/YourBackup,並在「系統資訊」的「儲存」中查看 SMART 狀態。有重新分配扇區的磁碟正在向你發出警告。檔案取出來之後,誠實的選擇很少。你可以開始新的備份,這正是 Apple 對話框所提供的,幾乎每個人最後也都這麼做。你失去歷史記錄,保住現在。或者,你可以原封不動地保留舊磁碟作為冷備份,在別處開始新的備份,這要多花一塊磁碟的錢,但如果歷史記錄很重要,這是更好的答案。
你不該做的是關掉訊息繼續照常。未透過驗證的備份不會自行復原,它會在接下來幾周不斷報錯,卻什麼有用的事也不做。
你之所以發現,是因為碰巧有東西去檢查了。在本地磁碟上,什麼都不會去檢查,而第一次有人檢查,就是需要這些檔案的那天。
只有讀回過,你才知道備份是好的。USB 磁碟上的 Time Machine、定時執行的 rsync、同步到雲端的資料夾都是如此。真正有用的是一個能讀回副本、並在不再一致時告訴你的工具。
Copy Shelter 會按計畫這樣做:每個資料塊都用儲存時的雜湊檢查,不一致會作為事實報告,在它不知情時被刪除的資料塊會被報告為缺失。它可以寫入磁碟、NAS,或你已付費的雲端帳號中的資料夾,一個位置免費。如果你更想自己來,命令在這裡。
通常不是。失敗的檢查針對的是備份的內部一致性,大部分資料通常仍然可讀。在 Finder 中裝載磁碟,開啟 Backups.backupdb,在對它做任何其他操作之前,把你需要的東西拖出來。
沒有。Apple 沒有提供修復工具,也沒有受支援的方式重建索引。這就是為什麼你找到的每個答案都說從頭再來,這並不是大家太早放棄。
它只對網路共享上的備份顯示。按住 Option 鍵點按選單欄中的「時光機」圖示。對於本地 USB 或雷靂磁碟,macOS 不提供此選項,因為它根本不對本地磁碟執行這項檢查。
只有在確認硬體完好之後才可以。對它執行 diskutil verifyVolume 並檢查其 SMART 狀態。如果磁碟沒問題,抹掉它並開始新的備份是合理的。如果有問題,壞磁碟上的新備份一個月後會以同樣的方式失敗。
在網路共享上:備份期間保持 NAS 和 Mac 喚醒,給稀疏捆綁包留足空間,並把備份磁碟從任何殺毒掃描中排除。更普遍地說,一份備份就是一個單點故障。在別處的第二份副本,是唯一能把這從災難變成麻煩的東西。
它可能遇到同樣的底層問題,因為磁碟和共享對每個人的故障方式都一樣。區別在於你何時發現。驗證按計畫執行,它會指出不再一致的資料塊,並把真正檢查過的副本與未檢查的副本區分開。
相關:如何檢查備份確實可讀,以及 3-2-1 規則,它其實講的正是這樣一個早晨。