不多哔哔,先看效果 (MACOS13的系统也同样适用)
警告:没有linux基础知识不要搞!系统可能会搞崩!
图中状态是按住 option 触发的,这些软件都可以删除了,我只留了一些自己有用的应用。
配置成功后,你的 mac 将可以
- 拥有在根目录下创建文件的权限
- 随意删除自带软件的权限
- 引入新的配置文件(比如外接显示器)
不仅是 mac m1 , 只要修改几个操作,该教程同样适用于 Intel 芯片的用户,在下文中都会给出具体步骤。
原因
因为自己是 mac m1 丐版(256GB 内存),内存不太够用,就想办法腾出来点空间,于是就瞄上了几乎从来不用的那些自带软件(有几个内存占用还不小)。于是开始尝试挑战删除自带应用,但是我发现从启动台、访达中都没有权限删除它们,然后我尝试使用终端,终端的删除结果是这样的。
我尝试给应用加权限,结果还是一样
于是从网上找了一些解决方案,经过测试后,确定了下面的有效解决方案。
具体流程
关闭 SIP 和 SSV
- 如果你是搭载 Apple 芯片的 Mac
1. 关机
2. 按住开机键不松,直到您看到启动选项的齿轮图标时,松开电源按钮
- 如果你搭建的 Intel 芯片的 Mac
1. 重启
2. 按住 Command + R 不松 (如果不行,重启尝试按住Shift不松)
3. 选择 设置 -> 继续
4. 点击左上角的实用工具 -> 终端
5. 在终端中输入下面两行内容
csrutil disable
它将禁用系统完整性保护(SIP)
csrutil authenticated-root disable
它将禁用签名系统卷 (SSV)
6. 点击左上角苹果图标,选择重新启动
7. 重新开机后,进入终端,输入 (结果都应该是 disable)
csrutil status
csrutil authenticated-root status
挂载系统盘
1. 在本地新建一个文件夹,用来挂载系统盘
mkdir ~/mnt
2. 打开系统自带的磁盘工具.app ,找到硬盘的盘符(我们需要知道挂载哪个盘)。
从图中可以得到我们的盘符名称为 disk3s1
最后的一个 s1 代表的是快照,挂载快照是没用的。
如果你的系统中还没有这个工具,可以使用下面这个方法查找我们要挂载的盘符
mount
注意第一行 /dev/disk3s1s1 on /,这代表 /dev/disk3s1的快照(s1)映射到根目录,所以我们要挂载的盘符就是 /dev/disk3s1/,这和我们使用磁盘工具得到的结果是一致的。
3. 下面我们将系统盘挂载到本地已经创建好的目录(~/mnt)下
sudo mount -o nobrowse -t apfs /dev/disk3s1 /Users/apple/mnt
/Users/apple 改为自己的 /Users/***
4. 查看最新的挂载情况
mount
观察到最后一行,/dev/disk3s1 已经成功挂载到了 /Users/apple/mnt 上 (read-only的限制被去掉了)
5. 我们进入 mnt 文件夹,将所包含文件和根目录下包含文件比较
仔细比较发现,两个文件夹中包含的文件是一模一样的,不一样的地方在于,在 mnt 文件下,你拥有写权限。
6. 进入系统自带应用所在的文件夹,删除自己不需要的应用
cd ~/mnt/System/Application
以删除 Siri 为例
sudo rm -rf Siri.app
应用删除前后比较
此时,如果有需要的话,你可以进行一些其他的操作
- 在根目录下创建自己的文件夹
- 引入新的配置文件(如显示器色彩配置文件)
7. 操作完成后,我们要根据修改后的 mnt 文件夹生成一个新的快照,才能替代之前的内容
如果你没有生成快照,直接选择重新启动,你会发现实际上并没有发生任何变化,因为操作系统使用的启动快照还是之前的。但如果你根据新的挂载目录(mnt)生成新的快照,那么系统会自动从新的快照启动,你做的修改就都会生效了。
从映射角度分析
将物理盘/dev/disk3s1 挂载到 /users/apple/mnt
/dev/disk3s1 ----> /Users/apple/mnt
将/dev/disk3s1的快照内容映射到根目录
/dev/disk3s1s1 -----> /
最终的根目录的内容是取决于快照的内容,因此我们需要重新生成一个快照
- Apple 芯片执行
sudo bless --mount "$HOME/mnt/System/Library/CoreServices/" --setBoot --create-snapshot
- Intel 芯片执行 (如果执行不通过,尝试上面的命令)
sudo bless --folder /Users/apple/System/Library/CoreServices --bootefi --create-snapshot
执行成功的标志就是没有报错
8. 重启你的计算机
9. 查看之前做的修改是否生效
mount
系统磁盘的快照已经从 /dev/disk3s1s1 更新为 /dev/disk2s1s1
注意倒数第四行:/dev/disk3s1 on /System/Volumes/iSCPreboot
笔者理解是:/dev/disk3s1 现在已经变成备份快照了(Preboot), 可以从这个快照中恢复到以前的状态。(我没有尝试,感兴趣的可以根据它重新生成一个快照,启动看看)
补充: 如果你挂载时,路径输入错误该怎么办?
不用担心,有挂载就有卸载,只需要将刚才的挂载卸载掉,然后重新挂载即可(是不是很绕😄);比如你将 /dev/disk3s1 挂载到了 /Users/apple/mmt, 你想取消,就执行下面的语句
sudo umount /dev/disk3s1
再输入 mount 确认
mount
完成了这些操作,根目录权限问题告一段落,我们最好重新回到安全模式,打开 SSV,以防止系统失去安全防护。
注意:SIP 开启后,用户自定义快照会被清除,之前做的更改可能会还原,笔者是一直关闭 SIP,这取决于你自己。
进入安全模式后(见上文),输入
csrutil authenticated-root enable
结束语
笔者能力有限,有些地方是凭借自己的理解写的,很可能出现纰漏,请大家注意甄别,希望这篇文章能给您带来一点点帮助。