[華語, cmn-Hant-TW]
從 10.13 High Sierra 開始,macOS 預設的檔案系統就從 HFS+ 變成 APFS 了,雖然說怕踩地雷所以沒第一時間更新,不過手上幾台更新倒是沒遇到啥問題,更新後用起來順順的也沒特別注意,一直到最近在移虛擬磁碟的時候才發現 APFS 其實是蠻妙的東西,網路上找了些資料,再實測之後的心得大致上有這些:
- APFS 有類似 zfs snapshot 的 localsnapshot,似乎是一定時間系統就會產生一個,然後把太舊的刪掉,用
tmutil listlocalsnapshots /
可以列出目前根目錄下所有的 localsnapshot,還有一些操作例如手動新增或是刪除,也都是透過tmutil
操作 - 用 time machine 備份的時候,如果遇到 APFS 卷宗的話,會先產生一個 localsnapshot 再開始備份 (細節不確定,似乎還會比對前一次下的 localsnapshot)
- 在 Terminal 用 df 看到的剩餘空間跟 Finder 不一致,通常來講 Finder 看到的會比較多,因為 Finder 會把 localsnapshot 佔用的空間也算進去,實際上可以使用的空間也是以 Finder 下看到的為準,因為容間不夠的時候系統會自己刪 localsnapshot 吐空間出來,就算在 Terminal 下操作 (例如 dd 製作大檔案) 也是如此,要所有的 localsnapshot 都被刪光還沒空間的話系統才會警告空間不足
- 在同一個卷宗複製檔案的話並不會多佔用空間,所以那種幾十GB的大檔案拼命按複製貼上後,可用空間幾乎不會減少,這有點 dedup 的味道,不過 APFS 其實是不支援 dedup 的,這個特色叫 Clones,詳情可以參考官網的這篇