BigSur Kext's mysteriously disappears in recovery terminal but shows up from user terminal
i noticed a strange behavior after upgrading to Big Sur on my INTEL cpu gpu MacBook 2015.
The below amd kext's show up in /System/Library/Extensions while logged in as a regular user, but, they mysteriously dont show up when logged on from recovery terminal !!
AMD10000Controller.kext
AMD7000Controller.kext
AMD8000Controller.kext
AMD9000Controller.kext
AMD9500Controller.kext
AMDFramebuffer.kext
AMDMTLBronzeDriver.bundle
AMDRadeonServiceManager.kext
AMDRadeonVADriver.bundle
AMDRadeonVADriver2.bundle
AMDRadeonX4000.kext
AMDRadeonX4000GLDriver.bundle
AMDRadeonX4000HWServices.kext
AMDRadeonX5000.kext
AMDRadeonX5000GLDriver.bundle
AMDRadeonX5000HWServices.kext
AMDRadeonX5000MTLDriver.bundle
AMDRadeonX5000Shared.bundle
AMDRadeonX6000.kext
AMDRadeonX6000Framebuffer.kext
AMDRadeonX6000GLDriver.bundle
AMDRadeonX6000HWServices.kext
AMDRadeonX6000MTLDriver.bundle
AMDRadeonX6000Shared.bundle
AMDRawCounterPlugin.bundle
AMDShared.bundle
AMDSupport.kext
I disabled System Integrity Protection (SIP)
and mounted with the command mount -uw /
, and searched for those entries in every possible extensions folder, but, they were gone via recovery terminal.
#Debugging Attempt #2: This time, while my SIP was disabled, i enabled root login on my mac: https://support.apple.com/en-us/HT204012
after logging in as root, i went back to /System/Library/Extensions and found entries to all those drivers. ls -l /System/Library/Extensions | grep AMD
sudo mount -uw /
led to error 66, unable to mount. permission denied
rm -rf <some_name>.kext
resulted in read-only file system error
kextunload <some_name>.kext
resulted in the same read only error
can anyone figure out:
why are those drivers disappearing from recovery terminal
why am i unable to delete those kext's ?
IMPORTANT: i noticed those drivers came back once while I had Catalina and i was able to successfully delete them. but after upgrading to BigSur, its not letting me delete the kext's
On Catalina and Big Sur these system files are located on a seperate, read-only system volume. On Big Sur that separate volume is also signed to prevent unauthorized modifications.
When you're booting from the Recovery terminal, you're essentially using a different file system and not seeing the contents of the actual sealed system volume that would see when booting normally.
You cannot delete the kext's from a normal boot as the volume is read-only.
I would really advise against modifying the sealed system volume, however if you really want - then ensure you have backups and time on your hands, and then you can use the following command in Recovery mode to turn off the verification of the seal:
csrutil authenticated-root disable
Afterwards you can mount the sealed system volume and remove the kexts you want. Then to make the system bootable again, you run this command:
bless --folder mountpoint/System/Library/CoreServices --bootefi --create-snapshot
(all in one line)
Note that "mountpoint" should be the name of the folder, where you have mounted the sealed system volume in read-write mode.