序言
本来上周Mac给推送了Big Sur的更新包,周五吃完饭的空档就喜滋滋的更新了,更新完发现是真的好看~然后就休周末了,也没太去看具体的更新内容。
周一上班来了本地一跑项目才发现之前根目录下放的一些配置文件全都无了,害,这时我还没意识到问题的严重性,就认为是系统更新给覆盖了,再挂载一遍就行了呗。
我又按着之前Catalina的挂载方式去写文件夹,发现mount挂载不了了,没权限,开始慌了,赶紧查了一下Big Sur的更新日志,发现苹果在SIP上又加了一个SSV的东西,直接把系统放在了只读卷下,当然不能重新挂载为读写了。。
在网上找了半天,终于发现了几个大佬的解释和方案,大体上就是重写一下系统快照。
参考:
forums.macrumors.com/threads/dis…
解决方案
- 先确认一下自己的Mac上的FileVault是不是关闭状态,如果是开启状态后边步骤会有问题;
- 重启Mac,按住
command+r
进入恢复模式,在终端输入csrutil authenticated-root disable
,如果第一步没有关闭FileVault的话,会报这个错误Failed to disable the authenticated root requirement,FileVault must be disabled for "Macintosh HD"
,然后再重启一次正常开机; - 重启之后打开终端,输入
sudo mount -o nobrowse -t apfs /dev/diskNsM /path/to/mntpoint
去挂载系统,diskNsM 为 系统盘的设备名,在磁盘工具可以看到: - 注意最后的 s 和之后的内容要截取掉,比如我的系统盘设备名为 disk1s1s1,则 diskNsM 为 disk1s1。
/path/to/mntpoint
为需要挂载的路径,可以为任意路径,我挂载到了localData。我的整个命令为:sudo mount -o nobrowse -t apfs /dev/disk1s1 /Users/xxx/Desktop/localData/
; - 挂载完成之后,你挂载的那个文件夹就成为了系统的根目录,然后就可以把你需要的文件复制进去了;
- 然后需要重建系统快照,使用到的命令为:
sudo bless --folder /path/to/mntpoint/System/Library/CoreServices --bootefi --create-snapshot
,我的情况用到的命令为:sudo bless --folder /Users/xxx/Desktop/localData/System/Library/CoreServices --bootefi --create-snapshot
; - 重启电脑,大功告成!
害
前前后后整了俩多小时,以后更新系统之前一定要在TimeMachine备份一下自己之前的系统!!!