Boot hangs on grey screen (even when booting from USB drive with fresh OS X install)

My MacBook Pro 15" Late 2011 (MacBookPro8,2) with AMD Radeon 6770M exhibited display corruption and associated system crashes/resets over a period of two weeks before it entirely failed to boot. The boot would progress through the grey screen with the Apple logo and spinner, but just when it seems it should have switched to the login screen the Apple logo and spinner would disappear and hang on a blank grey screen.

Initially I suspected hard-drive corruption and went about trying to remedy that. Unsuccessfully, I tried the following, with each continuing to hang as described above:

  • Safe boot
  • Boot into recovery (including Internet Recovery)
  • Boot from install media on USB drive
  • Boot from OS X installation on USB drive
  • Clear NVRAM
  • Reset SMC

I also ran the Apple Hardware Test many times without it finding any issues.

Verbose safe boot (Cmd+Shift+V) output everything that I'd expect to see but would then hang as described above.

After coming across more posts online of GPU related problems I revisited this as the cause:

  • https://discussions.apple.com/message/22751155#22751155
  • https://discussions.apple.com/thread/4766577?start=210&tstart=0

Attempting to boot Ubuntu from a USB flash drive, I could only get as far as Grub. When trying to boot Ubuntu Desktop or run the graphicstest in Grub the system would hang.

At this point, running Apple Hardware Test hung right before the end of the standard test, possibly [guessing] when doing a video test.

Based on the advice in the Apple Discussions posts above I did the following:

  • Boot into Single-User mode
  • Execute the following commands:
    /sbin/fsck -fy /
    /sbin/mount -uw /
    mkdir /Disabled_System_Library_Extensions
    cd /Disabled_System_Library_Extensions
    mv /System/Library/Extensions/ATI* .
    mv /System/Library/Extensions/AMD* .
    touch /System/Library/Extensions
    exit

This time the machine booted all the way through. However, graphics are extremely slow, even just transitions when minimizing windows. I will be taking my MBP to Apple to demand a replacement as the large number of reports of others facing similar issues makes it look like a recurrence of a similar GPU-related failure that resulted in them doing a recall.


Solved: Booted to Single-User mode and disabled Radeon GPU.

Details of investigation:

Initially I suspected hard-drive corruption and went about trying to remedy that. Unsuccessfully, I tried the following, with each continuing to hang as described above:

  • Safe boot
  • Boot into recovery (including Internet Recovery)
  • Boot from install media on USB drive
  • Boot from OS X installation on USB drive
  • Clear NVRAM
  • Reset SMC

I also ran the Apple Hardware Test many times without it finding any issues.

Verbose safe boot (Cmd+Shift+V) output everything that I'd expect to see but would then hang as described above.

After coming across more posts online of GPU related problems I revisited this as the cause:

  • https://discussions.apple.com/message/22751155#22751155
  • https://discussions.apple.com/thread/4766577?start=210&tstart=0

Attempting to boot Ubuntu from a USB flash drive, I could only get as far as Grub. When trying to boot Ubuntu Desktop or run the graphicstest in Grub the system would hang.

At this point, running Apple Hardware Test hung right before the end of the standard test, possibly [guessing] when doing a video test.

Based on the advice in the Apple Discussions posts above I did the following:

  • Boot into Single-User mode
  • Execute the following commands:
    /sbin/fsck -fy /
    /sbin/mount -uw /
    mkdir /Disabled_System_Library_Extensions
    cd /Disabled_System_Library_Extensions
    mv /System/Library/Extensions/ATI* .
    mv /System/Library/Extensions/AMD* .
    touch /System/Library/Extensions
    exit

This time the machine booted all the way through. However, graphics are extremely slow, even just transitions when minimizing windows. I will be taking my MBP to Apple to demand a replacement as the large number of reports of others facing similar issues makes it look like a recurrence of a similar GPU-related failure that resulted in them doing a recall.


The solutions given so far are only good enough advice to get the machine booting far enough to make a backup and move on. Following the advice here will only give you a booting Mac with colour where you can login but without proper acceleration of the GUI. That makes the MacBook almost unusable. Here is an alternative that disables the faulty AMD chip but gives you properly accelerated Intel graphics and much better thermal management than simply removing all AMD/Ati-related kernel extensions.

Background and explanations

The Apple Repair Extension program is not available anymore. The only real way to fix this problem is to replace the AMD chip alone. Not the logic board. Not "re-balling", not "reflowing", not "baking". Apple replaced a failed chip with a failing chip. Time and time again. Only replacing the graphics chip is still a costly hardware procedure for such a vintage laptop.

The only known way – that is: with software alone – to get a 2011 MacBook Pro (8,2) with 'only' a failed AMD graphics chip to almost reliably turn on again and be quite useable with an accelerated GUI is this guide or a variation of it. Most previous tips just removed all AMD-kexts and this results in a horrible user experience.

It is necessary to know your exact OS version. The following guide will be simpler for Yosemite but assumes El Capitan or newer. El Capitan, Sierra and High Sierra need SIP (System Integrity Protection) disabled. On previous systems (10.6–10.10) these steps are unnecessary.

This guide assumes that all kexts are still in their default location /System/Library/Extensions. Having all AMD-kexts there except one is beneficial for 'proper' operation.

To get some display acceleration back it will be necessary to force the machine to not boot in discrete graphics (dGPU) but directly into integrated graphics (iGPU). This will give you back your laptop – but you will lose some features: e.g. the ability to drive an external display. Thunderbolt data connections should work.

The initial procedure:

– To start from a clean slate: reset SMC and PRAM/NVRAM:

shutdown, unplug everything except power, now hold

<leftShift>+<Ctrl>+<Opt>+<Power>

release at the same time;

– Now power on again and hold

<Cmd>+<Opt>+<p>+<r> 

at the same time until you hear the startup chime two times.

– Boot into Recovery by holding

<Cmd>+<r>+<s> 

– Disable SIP:

csrutil disable

– disable dGPU on boot

nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

– enable verbose boot mode:

nvram boot-args="-v"

– reboot into single user-mode by holding

<Cmd>+<s> 

on boot

– mount root partition writeable

/sbin/mount -uw /                        

– make a kext-backup directory

mkdir -p /System/Library/Extensions-off  

– only move ONE offending kext out of the way:

mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/     

– let the system update its kextcache:

touch /System/Library/Extensions/   

– wait for the kextcache process to finish

reboot normally: you will have an accelerated iGPU display, but the system doesn't know how to power-management the failed AMD-chip. For that you have to either manaully load the kext after boot by:

sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

Automate this with the following LoginHook:

sudo mkdir -p /Library/LoginHook

sudo nano /Library/LoginHook/LoadX3000.sh

with the following content:

#!/bin/bash
kextload  /System/Library/Extensions-off/AMDRadeonX3000.kext
exit 0

then make it executable and active:

sudo chmod a+x /Library/LoginHook/LoadX3000.sh

sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh 

Preventive measures for future use

There are two further caveats to know: This is reversible when the SMC/PRAM/NVRAM is reset. If that happens the GPU-power-pref nvram can/has to be set again to force the use of the iGPU from boot-time.

Since this can happen quite easily (and is often erroneously recommended way too many times than it is actually useful), you should probably prepare for such a scenario and create a simple script to greatly speed up the process and also make entering the necessary variable much less error prone:

 sudo nano /force-iGPU-boot.sh

– Enter the following content to this file:

#/bin/sh
sudo nvram boot-args="-v"
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
exit 0

– Now make that executable:

sudo chmod a+x /force-iGPU-boot.sh

In the future, when the SMC/PRAM/NVRAM gets reset to default values it is now possible to boot into SingleUser with:

<Cmd>+<s>

– And after mounting your boot-volume read-write to execute just:

sh /force-iGPU-boot.sh

This setup has now one kext in a place Apple's installers do not expect. That is why in this guide SIP has not been reenabled. If an update that contains changes to the AMD drivers is about to take place it is advisable to move back the AMDRadeonX3000.kext to its default location before the update process. Otherwise the updater writes at least another kext of a different version to its default location or at worst you end up with an undefined state of partially non-matching drivers.

After any system update the folder /System/Library/Extensions has to be checked for the offending kext. Its presence there will lead to e.g. a boot hang on Yosemite and Sierra, an overheating boot-loop in High Sierra.

Further: this laptop is overheating, no matter what you do. The cooling system is inadequate and the huge number of failing AMD chips are just proof of that.

To prolong the life of this now hacked machine it is advisable to abstain from really heavy lifting over prolonged stretches of time. Strictly follow the usual recommendations for laptops: use on hard surfaces, keep the fans and fins inside it clean. Using any fancontrol software with relatively aggressive settings should also help: like smcFanControl, MacsFanControl, or TGPro (both commercial).

Disclaimer: This answer is a duplicate from here repeated for this question since for this question there are so many so suboptimal answers given.