背景
mac monterey 12.5.1 关机后再开机出现报错
SOCD report detected: (iBoot panic)
关机重启更新系统都不管用
解决办法
按一下音量加,再按一下音量减再长按5秒关机键, 开机后没再出现自动重启和报错, 鬼知道这是个什么神仙bug, 估计可能是软件和系统不兼容卡死, 按我理解mac可能只需要长按关机键, 手机的话可能是三步一起操作才行, 悲催的是操作过一段时间后问题又重现了,而且这种方法也不在生效, 于是继续找到了置SMC与重置NVRAM(PRAM)的方法
重置 NVRAM 或 PRAM
NVRAM,全称 Non-Volatile Random Access Memory
,中文意思是非易失性随机访问存储器,是指断电后仍能保持数据的一种内存,Mac 使用这些内存来储存某些设置并对其进行快速访问。
PRAM,全称 Parameter Random Access Memory
,中文意思是参数内存,跟 NVRAM 储存着类似的信息,并且 NVRAM 和 PRAM 的重置步骤相同,下面统一称作 NVRAM。
可储存在 NVRAM 中的设置包括音量、显示屏分辨率、启动磁盘选择、时区,以及最近的内核崩溃信息。重置 NVRAM可以帮助解决这些问题,比如Mac 突然变卡顿、扬声器没有音量、显示器分辨率不正常、Mac 并非从「启动磁盘」偏好设置中选定的磁盘启动,或者在 Mac 启动前短暂地显示了一个问号图标等。
-
将 Mac 关机;
-
然后开机并立即同时按住以下四个按键:Option(⌥)、Command(⌘)、P 和 R。按住大约 20 秒后松开这些按键,在此期间你的 Mac 可能看似在重新启动;
-
如果 Mac 电脑发出启动声,你可以在第二次启动声过后松开这些按键。
-
在带有 Apple T2 安全芯片的 Mac 电脑上(查看是否带有 T2 安全芯片的方法,参照上面重置 SMC 的方法介绍),你可以在苹果图标第二次出现并消失后松开这些按键。
重置 SMC
如果重置NVRAM不生效的话还可以重置SMC系统管理控 制 器。重置 SMC 可以解决某些与电源(开机键和 USB 端口的电源)、电池和充电、风扇和其他热能管理功能、打开和合上笔记本电脑盖时的行为(睡眠、唤醒)、指示灯或感应器相关的问题,比如电脑开不了机、电池充不进电、键盘灯显示不正常等。
- 将 Mac 关机;
- 在 Mac 的键盘上,按住以下所有按键:
键盘左边的 Shift(⇧)键盘左边的 Control(⌃) 键盘左边的 Option (⌥) - 在按住上面全部三个按键的情况下,按住电源键(开机键);
- 按住全部四个按键 10 秒钟;
- 松开所有按键,然后按下电源键将 Mac 开机。查看问题是否得到解决。
检查mac自启动项和后台运行程序
在系统设置->通用->登录项 检查自己的启动项和后台运行程序,删除不必要的启动项,关闭不必要的后台运行程序
如图
命令行终端可以去下面几个路径检查下是否有无效启动项
/Library/LaunchDaemons:系统启动时运行,用户不登录也会运行
/Library/LaunchAgents:用户登录后运行。
~/Library/LaunchAgents:用户自定义的用户启动项/
/System/Library/LaunchDaemons:系统自带的启动项
/System/Library/LaunchAgents:系统自带的启动项
以删除深信服VPN后台启动项为例
sudo rm -rf /Library/LaunchDaemons/
sudo rm -rf /Library/LaunchAgents/
sudo rm -rf ~/Library/LaunchAgents/
删除后重新加载启动项或者重启系统
免重启方法如下
launchctl list | grep sangfor
- 78
launchctl remove
.plist文件属性
每个 .plist文件中,有 3 个属性控制着是否会开机自动启动。
KeepAlive
:决定程序是否需要一直运行,如果是 false 则需要时才启动。默认 falseRunAtLoad
:开机时是否运行。默认 false。SuccessfulExit
:此项为 true 时,程序正常退出时重启(即退出码为 0);为 false 时,程序非正常退出时重启。此项设置时会隐含默认 RunAtLoad = true,因为程序需要至少运行一次才能获得退出状态。
所以其实针对这三项,不同的值有不同的表现:
- 如果
KeepAlive = false
:
当RunAtLoad = false
时:程序只有在有需要的时候运行。当RunAtLoad = true
时:程序在启动时会运行一次,然后等待在有需要的时候运行。当SuccessfulExit = true / false
时:不论 RunAtLoad 值是什么,都会在启动时运行一次。其后根据SuccessfulExit
值来决定是否重启。 - 如果
KeepAlive = true
:
不论RunAtLoad/SuccessfulExit
值是什么,都会启动时运行且一直保持运行状态。
其他原因
可能是mac sleep睡眠设置导致,可以将睡眠设置全部关闭试试
参考
Mac各种问题的万能解决方法:重置SMC与重置NVRAM(PRAM)
苹果panic+base故障分析
Mac上有些软件无法禁止开机启动怎么办?在“登陆项”里面没有它的选项,无法删去,比如Junos Pulse。