macOS 使用OCLP打补丁之后无法进入系统怎么撒销补丁
方法一:
引导加一条-igfxvesa
方法二:
-VX后进入安全模式启动,进去卸载
方法三:
PE修改Config,把ig-platform-id改成0x11111111,然后开机就可以进系统了。o。进系统之后重新用OCLP打补丁
终极方法:
此方法可以在Recovery下或者别的系统下使用(最好是Recovery下使用,因为不同的系统命令效果可能不同,我只在Ventura和Sonoma进行了
测试。别说没有Recovery,除了恢复方式安装的想要安装都得进Recovery)
1.进入Recovery,打开实用工具->终端
2.找到要撤销补丁的分区标识:diskutil list
-bash-3.2# diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *120.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_APFS Container disk3 119.8 GB disk0s2
/dev/disk1 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.2 GB disk1
1: Apple_APFS Container disk2 1.2 GB disk1s1
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +1.2 GB disk2
Physical Store disk1s1
1: APFS Volume macOS Base System 945.0 MB disk2s1
2: APFS Volume Preboot 81.3 MB disk2s2
/dev/disk3 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +119.8 GB disk3
Physical Store disk0s2
1: APFS Volume Macintosh HD - 数据 24.9 GB disk3s1
2: APFS Volume Preboot 10.4 GB disk3s2
3: APFS Volume Recovery 3.0 GB disk3s3
4: APFS Volume Ventura - 数据 16.6 GB disk3s4
5: APFS Volume Macintosh HD 15.3 GB disk3s5
6: APFS Volume Ventura 9.3 GB disk3s7
7: APFS Volume Sonoma - 数据 13.9 GB disk3s8
8: APFS Volume Applications 1.9 GB disk3s9
9: APFS Volume Sonoma 10.0 GB disk3s10
10: APFS Volume VM 1.1 GB disk3s11
例如我这里想要撤销Sonoma分区的补丁,就是disk3sl0(注意不要选择Sonoma-数据,要选Sonoma,不要选带数据那个;另外这个名字不
一定是系统版本的名称,要取决于你自己取的名字,例如有的人用macos或者Macintosh)。
3.卸载这个分区:diskuitl unmount diskXsY
-bash-3.2#diskutil unmount disk3s10
Volume Sonoma on disk3s10 unmounted
由于系统默认的挂载方式是只读的,不能进行下一步操作,所以需要先卸载再以适当的方式挂载。
这里的diskXsY就是上一步找到的标识,我这里就是disk3s10。
注意这里如果卸载错了也不要紧,重启后系统会自动挂载,只要继续卸载上一步找到的分区就行。
注意命令的结果,要卸载成功才能进行后续操作。
4.创建临时挂载点:mkdir dir
-bash-3.2#mkdir dir
默认是在/var/root下创建di文件夹,在别的地方创建也行,但是后续使用要注意路径
使用s命令查看是否创建成功
-bash-3.2# ls
.bash_history Desktop Downloads dir
.forward Documents Library
5.挂载要撤销补丁的分区:mount-o nobrowse-t apfs diskXsY dir
-bash-3.2# mount -o nobrowse -t apfs disk3s10 dir
这里的diskXsY就是第2步找到的标识,我这里就是disk3s10。
通过命令Is dir查看挂载是否成功
-bash-3.2# ls dir
.VolumeIcon.icns Users opt
.file Volumes private
.vol bin sbin
Applications cores tmp
Library dev usr
System etc var
-bash-3.2#1s dir
6.预检查分区:diskutil info diskXsY
-bash-3.2# diskutil info disk3s10
Device Identifier: disk3s10
Device Node: /dev/disk3s10
Whole: No
Part of Whole: disk3
Volume Name: Sonoma
Mounted: Yes
Mount Point: /System/Volumes/Data/private/var/root/dir
...
APFS Snapshots are defined upon this APFS Volume. Snapshot list:
Snapshot UUID: 68FEEBDB-4C03-45E5-B957-B82869F95009
Name: com.apple.os.update-2EC73C0A30C4B87F8DA7553A83D8D5A028BEA8C7939287594B2C906F0C309D55
XID: 7924228
Snapshot UUID: 1A88BED2-CE3F-497B-B0B4-8781A33ECED5
Name: com.apple.bless.1F7F6042-D9F0-41E5-A0B5-93CA8592676B
XID: 8041363
这里的diskXsY就是第2步找到的标识,我这里就是disk3s10。
查看结果应该有一个或多个Name开头为com.apple.bless的快照,最后一个就是要撤销的快照。有一个Name开头为com.apple.os.install或
com.āpple.os.updatel的快照,这个是最初没打补丁之前的快照。如果没有上述的两种快照,那么可能是别的方式更改的快照(例如直接删除了最
基础的快照,这样撤销后会导致没有快照无法开机或者干脆就无法撤销快照),此方法可能不适用。
7.撤销补丁:bless-mount dir-bootefi-last-sealed-snapshot
-bash-3.2# bless --mount dir --bootefi --last-sealed-snapshot
如果第4步在别的地方创建的挂载点,那么命令中替换di
此命令没有返回结果,如果有结果则是失败了的失败原因
8.清理补丁残留
三代CPU:
rm -rf dir/Library/Extensions/AppleIntelFramebufferCapri.kext
rm -rf dir/Library/Extensions/AppleIntelHD4000Graphics.kext
四代CPU:
rm -rf dir/Library/Extensions/AppleIntelFramebufferAzul.kext
rm -rf dir/Library/Extensions/AppleIntelHD5000Graphics.kext
五代CPU:
rm -rf dir/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext
rm -rf dir/Library/Extensions/AppleIntelBDWGraphics.kext
六代CPU:
rm -rf dir/Library/Extensions/AppleIntelSKLGraphicsFramebuffer.kext
rm -rf dir/Library/Extensions/AppleIntelSKLGraphics.kext
9.重启:reboot
备注:
(1)在别的系统下也可以完成上述操作,如果执行命令提示没有权限,则在命令前加上sudo即可。
(2)理论上Non-Metal补丁(Nvidia Tesla、Maxwell、Pascal,AMD TeraScale 1、TeraScale2,Intel Ironlake、Sandy Bridge),Nvidia
Kepler补丁,AMD GCN 1-3、Polaris、Vega补丁都可以用,但是我没有测试过,不确定除了撤销快照还要进行哪些操作(源码中是有一些命令
的),各位可以研究一下
https://www.imacosx.cn/115125.html