参考自 https://github.com/digoal/blog/blob/master/202212/20221207_01.md 这里备份记录一下
SIP 会导致你即使是 root 用户也会出 operation not permitted 的情况出现,尤其是操作一些系统底层的时候(比如 nvram、系统目录/服务等)
关闭方式(只测了我的 m1 mac,需要进入恢复模式):
- 关机
- 一直按着关机键,直到进入恢复模式
- 打开恢复模式的控制台
- 输入
csrutil dsiable
后就禁用 SIP 了 - 重启进入 mac 系统
先使用 sysctl -a vm.compressor_mode 来检查现在的内存模式,默认的数字应该是 4。
1 代表不压缩内存且不启用 swap。
2 代表压缩内存但不启用 swap。
3 代表不压缩内存但启动 swap。
4 代表着压缩内存并启用 swap。
然后建议设置为 2: sudo nvram boot-args="vm_compressor=2"
不过,有可能你之前已经有设置过 boot-args 了,这样可能会把你原来的 boot-args 覆盖掉,建议先 nvram -p 看看 boot-args 是不是有别的, 比如你可能有设置过 serverperfmode=1
那么这个时候就填 sudo nvram boot-args="vm_compressor=2 serverperfmode=1"
这样把之前的配置加上去(类似 $PATH 那样的处理)
当然也可以一行搞定:
# 我没试过这个核心是 $(nvram boot-args 2>/dev/null | cut -f 2-) 这个
nvram boot-args="vm_compressor=2 serverperfmode=1 $(nvram boot-args 2>/dev/null | cut -f 2-)"
$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
$ sudo rm /private/var/vm/swapfile*
重启, 检查swap是否已关闭:
$ sysctl -a vm.compressor_mode
预期返回 2
最后记得回到恢复模式重新启用 SIP