簡短回答:在網路目標上,Time Machine 不會把檔案複製到共享。它在共享上建立一個大型磁碟映像,並複製到其中。這一類錯誤都與該映像有關:無法建立、無法開啟,或仍有東西佔用著它。
這些訊息都不意味著你現有的備份已經沒了。抹掉磁碟幾乎從來不是解決辦法,卻是你最常看到的建議。
Time Machine 需要網路共享無法提供的檔案系統功能:硬連結、由它控制的所有權,以及在處理檔案時鎖定檔案的能力。使用 SMB 的 NAS 無法保證這些。
所以在任何網路目標上,Time Machine 都會建立一個稀疏捆綁包,即一個以 .sparsebundle 結尾、表現為磁碟映像的資料夾。它裝載該映像,備份就存放在其中一個完全由 Time Machine 控制的檔案系統上。共享只需儲存一個由編號資料塊(稱為 band)組成的資料夾。
這就是為什麼網路備份有一整類插入式磁碟所沒有的故障。插入式磁碟只有一處可能出錯的地方,這裡有兩處,而你收到的訊息通常與映像有關。
Time Machine 試圖建立稀疏捆綁包,但共享拒絕了。按順序逐一排查。
fruit:time machine = yes。沒有它,macOS 可能連接得好好的,卻仍然拒絕建立映像。映像已存在,但 macOS 無法掛接它。錯誤 45 是檔案鎖錯誤,所以通常的原因是已有東西開啟了該映像。
token 或 .lock 檔案。在沒有任何程式裝載映像時刪除它們是安全的,下次裝載時會重新建立。務必先確認映像未裝載,否則會損壞它。原因相同,只是說得更直白,同樣的四個步驟也能解決。先在 Finder 邊欄中查找一個以你的 Mac 命名的已裝載卷宗,因為最常見的答案是:它此刻就裝載在你面前這台機器上。
通常是備份過程中共享斷開了,原因可能是睡眠、Wi-Fi,或 NAS 為更新而重啟。檢查共享是否重新連接,然後在信任其中內容之前,用下面的驗證步驟檢查映像。
中斷的網路備份可能讓映像內部不一致,而螢幕上的每條訊息看起來都正常。裝載它並詢問系統:
hdiutil attach -readonly /Volumes/<share>/<YourMac>.sparsebundle
diskutil verifyVolume /Volumes/<the volume it mounted>
這是只讀的,所以查看不會改變任何東西。如果驗證報告錯誤,對同一卷宗執行 diskutil repairVolume。如果修復失敗,這個映像就完了,誠實的做法是在上面開始一條新的備份鏈,不再依賴舊映像中的內容。
這些錯誤全都是磁碟映像的特性,而磁碟映像之所以存在,是因為目標在網路上。把普通檔案寫入普通資料夾的備份不會有這些問題:沒有會建立失敗的映像,沒有會過期的鎖,也沒有一損壞就連帶其中所有備份的單個大對象。
最後一點值得細想。你在 NAS 上的全部 Time Machine 歷史記錄都在一個稀疏捆綁包里。它是一個對象。損壞發生在不該發生的地方,就會全部報廢。
它把一個包含普通檔案的資料夾寫入共享,所以沒有磁碟映像,沒有鎖定,也沒有一個儲存你所有版本的單一對象。備份途中離線的共享會被報告為無法訪問的目標,並注明上次出現的日期,下一次備份會從上次中斷的地方繼續。
每個資料塊都以其自身內容的雜湊儲存,並按計畫依據該雜湊讀回,因此鏈條中任何地方的損壞都會在一個普通的週二被指出並定位。把 Mac 備份到 NAS 介紹了設定方法,包括決定休眠中的共享算作錯誤還是缺席的超時行為。
可以,但這會丟掉其中的所有備份,因為它們都在那一個映像里。先試試上面的四個步驟。只有在 diskutil repairVolume 已經修復失敗時,刪除才是答案。
因為沒有磁碟映像檔。直接連接的硬碟擁有由 Time Machine 格式化和管理的獨立檔案系統,所以不需要映像檔,也不會有失效的鎖定。這是保留一份本機副本最有力的理由。
在大多數 NAS 軟體中,支援該功能和在特定共享上啟用它是兩個不同的設定。檢查共享,而不是產品頁面。另一個常見原因是配額:映像在建立時聲明瞭最大尺寸,較小的配額會拒絕它。
單獨出現一次不危險。它意味著 macOS 無法鎖定映像,因此什麼也沒寫入。危險的是一連串這樣的錯誤無人察覺,因為在一切看似正常時,最後一次成功的備份越來越舊。
不使用。它把普通檔案寫入共享上的一個資料夾,所以本頁的錯誤對它都不存在。代價是共享必須可訪問才能被計入,不可訪問時 App 會告訴你。