When I start my MacBook, I have an empty folder with a question mark. If I start Internet Recovery, I get stuck at a white or gray screen. I created a boot USB stick with El Capitan and I received a white screen. I tried several times and I received a blue screen, a gray screen, but most of the time I had a white screen.
I ran diagnostic tests from Apple (press D when the MacBook starts) and no problems were found. I reset NVRAM, but doing so did not help. Safe Mode does not work. Target mode worked. Also, I tried a USB stick with Yosemite and it does not work either. The white screen appears instead of showing the menu with Disk Utility, install OS X, etc.
I tried three different HDDs. All of them working on another Mac, but not this one. Also, I thought that I may have broken RAM and replaced it with another one, but I have the same white/gray screen issue every time. Also, I tried to create a bootable HDD via createinstallmedia (like a USB stick) and MacBook load from HDD without USB stick but I had a white screen too.
I tried running verbose mode and It's working https://www.youtube.com/watch?v=mOqs0li48mc
I tried running single-user mode and it's also working
Verbose Mode and Single-User mode is working only if USB stick with ELCapitan connected to mac (Also HDD connected to MacBook). USB stick locked to write.
some errors(NSLocalizedDescription = The bundle bSPDisplaysReporterb couldnbt be loaded because it is damaged or missing necessary resources.)
Hardware Overview: Model Name: MacBook Pro Model identifier: MacBookPro8,2 Processor Name: Intel Core i7 Processor Speed: 2GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6MB Memory: 8 GB Boot ROM Version: 87.0.0 Serial Number (system): C2QGW0BQDRJC Hardware UUID: 5589AB99-C00A-5637-BE0E-A2E8D95D7DDA
My MacBook has broken discrete GPU so I edit efivars to switch GPU from dGPU to iGPU
1: Create ArchLinux bootable USB stick (via Rufus, UniversalUSBInstaller etc.)
2: Load from your USB (hold Option while MacBook startup)
3: Mount efivars folder to root directory:
cd / umount /sys/firmware/efi/efivars/ mount -t efivarfs rw /sys/firmware/efi/efivars/ cd /sys/firmware/efi/efivars/
4: Delete previous gpu var if exists
rm gpu-power-prefs-[press TAB key]
5: Create new gpu-power-prefs var. This command changes the default GPU for use from discrete GPU to integrated GPU
printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
6: Lock write for this file
chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"
7: Unmount directory efivars and reboot
umount /sys/firmware/efi/efivars/ reboot
Also when your MacBook boot macOS It can stuck on 75% so you can do next:
1: Boot into Recovery by holding
2: Disable SIP
3: Disable dGPU on boot
4: Enable verbose boot mode (optional, for debug if your system doesn't boot)
5: Reboot into single user-mode by holding
6: Mount root partition writeable
/sbin/mount -uw /
7: Make a kext-backup directory
mkdir -p /System/Library/Extensions-off
8: Only move ONE offending kext out of the way:
mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/
9: let the system update its kextcache:
10: wait for the kextcache process to finish then
Also maybe another solution: