When you upgrade your installation of OS X, the OS X installer will attempt to detect and remove any incompatible software that may destabilize your system. However, there are times when such software may slip past Apple’s detection routines and affect your system. While often you can use troubleshooting routines after installation to manage such problems, on rare occasion these issues may prevent your Mac from booting altogether, leaving you with no ability to use your machine.
In such cases, you might find yourself trying to reinstall your upgrade from Recovery Mode, or reverting to a recent backup (hopefully you made one before upgrading) and then attempting the upgrade again. However, these attempts may result in the same behavior, indicating the problem is persistent for your system’s setup. These may include filesystem errors and incompatible kernel extension software, and each will require different steps to fix, but overall you should eventually be able to get your system upgraded properly.
Filesystem errors
A problem with your Mac’s drive formatting may cause a hangup or two at boot, so first be sure to check your drive for errors and repair them:
- Reboot your Mac and hold Command-R at the boot chimes to load Recovery Mode.
- Select Disk Utility from the main window.
- Select your boot volume in the device list.
- If the drive is grayed out, choose Unlock from the File menu (it will require an unlock password).
- Click the First Aid button to repair your drive.
Incompatible kernel extensions
A second option is if your Mac has incompatible kernel extensions installed that have bypassed the OS X Installer’s detection routines. In general, these will be placed in an Incompatible Software folder at the root of your boot drive, but if not then they may affect your system’s ability to boot.
First try booting your Mac while holding the Command-V keys (for Verbose mode) to view a progressive log of your system’s boot process. In this mode, you might see what file or process the system is hanging up on during boot, and then be able to troubleshoot it more specifically; however, this may not always be doable since at some point the OS X GUI will load and cover the logging of additional boot routines.
A second option you can try is a little more invasive, but should ensure your Mac boots without loading any potentially incompatible third-party kernel extensions. Quite often, hangs at bootup stem from conflicts with kernel extensions (system add-ons that provide low-level functionality, such as drivers for special hardware handling, or implementation of robust software security layers). Since kernel extensions load before you can interact with your system, there is likely little you can do to overcome such conflicts when they occur. However, you can troubleshoot them by two means:
First Approach: Safe Mode
Boot your Mac in Safe Mode by restarting and holding the Shift key when you hear the boot chimes. Release the key when you see a progress indicator, and when you log in you should see “Safe Mode” in red text in the menu bar. If you can boot in this mode, then you can tackle kernel extension problems through several means, including running uninstaller software for suspected incompatible programs, or seeking guidance online to see what kernel extensions in the following two folders may be potential problems:
Macintosh HD > Library > Extensions Macintosh HD > System > Library > Extensions
Second Approach: Recovery Mode
Instead of manually picking through your system’s components, another approach is to simply remove all non-Apple extensions. To do this, first make a note of this Web page’s URL so you can access it later. Then boot your Mac into Recovery Mode by restarting and holding Command-R at the boot chimes.
When in Recovery mode, ensure you have an Internet connection and then open Safari and return to this Web page. Now select all eight lines of the following command and press Command-C to copy them:
mkdir /Volumes/"$BOOTDRIVE"/UnusedExtens\ ions; mv `/Volumes/"$BOOTDRIVE"/usr/sbin\ /kextfind -case-insensitive /Volumes/"$B\ OOTDRIVE"/Library/Extensions /Volumes/"$\ BOOTDRIVE"/System/Library/Extensions -no\ t -bundle-id -substring 'com.apple.' | g\ rep -v 'kext/'` /Volumes/"$BOOTDRIVE"/Un\ usedExtensions/
With the command copied, perform the following steps:
- Quit Safari and open Disk Utility.
- If your boot drive is grayed out, select it and choose Unlock from the File menu.
- Provide your password to unlock the drive.
- Quit Disk Utility.
- Select Terminal from the Utilities menu.
- Type the following command, replacing “Macintosh HD” with the exact name of your boot drive (ensure proper capitalization and spaces, and be sure the name is within the quotes, just as shown here). Press Enter to execute the command.
BOOTDRIVE="Macintosh HD"
- Check the command you just entered by running the following command. If all is well, the output of this will be “Macintosh HD” or whatever your boot drive is named. If there is no output or the name is not right, then repeat step 6 above:
echo $BOOTDRIVE
- Now press Command-V to paste the long command above that you previously copied from this Web page, followed by pressing Enter to execute the command.
This process will search for all non-Apple kernel extensions in the /Library and /System/Library/ folders on your Mac, and then place them in a new folder at the root of your boot drive called UnusedExtensions.
Migrate instead of upgrade
If you made a full backup of your Mac using either Time Machine or a system cloning tool before upgrading OS X, then you can use this to migrate your data to a new OS X installation, instead of trying to upgrade an existing installation. This is a different approach for upgrading, but should give you the same result: An upgraded OS, with all of your files and data intact. The difference is that this starts your drive fresh and bypasses attempting to keep all system files as they currently are (the issue that allowed the incompatible software to remain on your drive in the first place).
This process does require you having successfully run the OS X upgrade installer that you downloaded from the App Store, but then are just simply not able to boot the system once the installation has completed:
- Reboot your Mac and hold Command-R at the boot chimes to enter Recovery Mode.
- Choose Disk Utility.
- Select your boot drive, and choose the option to erase the drive.
- Quit Disk Utility and select the option to install OS X.
- Proceed with the installation, following the on-screen instructions.
- At the Setup Assistant, choose the option to migrate your data.
- Attach your backup drive, and choose the option to migrate your data from this drive.
- Allow the migration to complete.
After the migration is finished, OS X should load with your data and applications as they were on your previous installation. Do keep in mind some programs may need to be reinstalled or re-activated, but you should now have a fresh OS installation to work with.
I ran into problems with my upgraded iMac 27 Retina El Capitan system. The update went fine, but whenever I tried to install a application (non-App Store), the install would run, but then the system would not reboot. Safe Boot usually worked – but sometimes that also failed – and I could only get the system to Safe Boot by disconnecting all my external drives. And, when I did get a normal boot, I found UserEventAgent and launchd and ds_stores processes running, burning through about 150% of my (i5) CPU resources. Apple recommended reinstalling El Capitan, which I did – but it didn’t help. The fact that I had to disconnect external drives was the hint; I found that unmounting my Time Machine backup drive solved all my problems! I saw no TM error messages, the volume passed all the disk utility checks and the hardware passed all tests. Yet, it was causing problems. I removed the drive and connected a new drive and restarted TM pointing to the new drive and all is well. This is a situation where there was a serious problem, but no errors or other symptoms to use to diagnose the problem. I have two other Macs which upgraded to El Capitan without problems (both using TM) – it was just this one system in which something happened to the TM process, database or drive during the El Capitan update. Very strange and I have seen no other reports of this kind of issue.
David
Well that was interesting. I could only start my MAC in safe mode since otherwise it was stuck in an endless boot loop. I then undocked my backup drive and turned off time machine. I turned off the computer and booted it back up the normal way and Voila! it worked just fine. Just to make sure that I wasn’t hallucinating, I turned the computer off again and booted up normally again. I can’t figure it out. I really am not smart enough, confident enough, or patient enough to try all the other things mentioned on this page. I guess I will run out and buy a brand new backup drive now. Until the next OS X. Darn it.
This is extremely helpful although I wonder whether it applies to the problem that I encountered last evening. Since installing El Capitan on Sept. 30, I have had occasional problems with the screen failing to respond to my mouse and keyboard, and have solved this by pressing the power button and then restarting the computer.
However, yesterday when this happened and I tried to restart the computer, when I got to the log-in page, the computer remained unresponsive. Safe mode had the same result. Recovery initially had the same result, but after waiting some time became responsive. After a reinstall of OS X, things seem fine, but I am concerned about whether I’ll be back at square one if I try to restart the machine.
Does this sound like either of the problems discussed in Mr. Kessler’s article?
Thanks
Just posted a link to this article on Apple Support Communities, where a lot of people are looking for a solution.
Lost keyboard today on a rMBP. After about two mins, it came back. Mouse (trackpad) was fine though. First time it happened, even with seeds…
i’ve had the same experience twice today. Odd.
For me, it was an iMac. On the upside, so far the machine is now booting without incident.
It would be great to have Conflict Catcher back on Mac OS X
https://en.wikipedia.org/wiki/Conflict_Catcher
Was a great tool in it’s day…
I am experiencing a similar problem, after updating my mid 2014 macbook retina from Yosemite to El capitan i cant seem to go pass the apple logo. it loads a bit then gives me the prohibitory sign. what should i do i really need to get a project done.
Thank you so much! This worked for me!! I hope it helps other people too!
Brilliant – was not aware of /usr/bin/kextfind, so your solution for moving the non Apple kexts was inspired! Was stuck in an endless booting loop, could not boot to safe mode, but could get to recovery – all tests showed this was not a hardware issue, as did running fine after reinstalling OS X until the next reboot. Moving the kexts from recovery mode solved the problem!
One question – I wonder what I broke by moving them… do you recommend putting them back where they came from one by one until it starts crashing again? If so, that’s going to be tricky since there is no way now to see where they came from… although I DO have a time machine backup, so that might give me a clue… Or would you recommend just leaving them where they were moved to?
Thanks again!
MrBB.