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.
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.
- 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:
- 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.