參考:https://www.zhihu.com/question/403361335
已出坑) 解決思路是: 將系統重新掛載在到一個有讀寫權限的新目錄下,在該目錄下操作即可。
補充具體方法:
- 開機按住Commond+R,進入系統Recovery模式,從terminal中將系統保護SIP關掉(csrutil authenticated-root disable;csrutil disable);
- 重啟開機進入系統,可以在終端查看是否已將SIP關掉(csrutil status;csrutil authenticated-root status),都顯示Disable即可;
- 通過 sudo mount -o nobrowse -t apfs /dev/diskNsM /xxx/xx 重新將系統盤掛載到本地。/xxx/xx 是可以在任意地方新建的目錄(例如:/Users/mac/Desktop/aaa)。diskNsM 為系統盤的設備名,這個在"磁盤工具-設備" 里可以看到(例如:disk1s5s1),注意要把后面的s1去掉,因為磁盤工具里面里顯示的是系統盤的快照,掛載成這個snapshot是沒用的!!
- 如果是上述例子的情況的話,就執行 sudo mount -o nobrowse -t apfs /dev/disk1s5 /Users/mac/Desktop/aaa,這樣系統盤就重新掛載到了桌面的aaa文件夾下面,從這個文件夾進去就是系統根目錄了。而且這個文件夾是可讀可寫的,我們把要修改的系統配置文件夾/文件 復制到相應的系統目錄里就OK。
- 最后需要重建系統 snapshot,使用到的命令為:sudo bless --folder /xxx/xx/System/Library/CoreServices --bootefi --create-snapshot,其中/xxx/xx是最初設置的目錄;如果是上述例子的情況的話,就執行:sudo bless --folder /Users/mac/Desktop/aaa/System/Library/CoreServices --bootefi --create-snapshot
- 重啟系統,會發現掛載的磁盤消失,而修改的設置已經寫入到原先不能更改的系統文件中了。Over……
過程中省略了一些簡單的步驟,可自行baidu/ google。解決問題后,不要忘記再次重啟進入Recovery模式,打開terminal,輸入:
csrutil enable
csrutil authenticated-root enable
重新開啟SIP以免系統失去安全防護。(ps: 有反饋說重新開啟SIP會遇到問題,我是沒有重新打開系統防護的,所以目前一切正常……大佬們視自己情況決定enable or disable!
對了,如何評價蘋果這次更加閉環的更改: 道高一尺,魔高一丈hh。
3-7,換顯示器重走了一遍,再次成功。更新遇到的新問題:如遇到 “mount_apfs: volume could not be mounted: Resource busy”問題,try this: “diskutil unmountDisk force /dev/disk#” ( whatever your disk# is)
