MacBook – Can’t boot Macbook Pro 2018 (possibly Little Snitch/Mojave related)

bootmacbook pro

I have a Macbook Pro 2018 15" running Mojave (latest update). After updating to the latest Little Snitch and restarting my machine it now fails to boot.

I boot up and can enter my password (I'm running FileVault so I'm not sure if this is the HD unlock login or actual account login). Once I've entered my password the loading bar appears and gets to about 75% before the screen goes blank (black but with backlight), with no cursor.

If I try to boot in safe mode, the same thing happens, but instead of a completely blank screen I see the white loading spinner (on black background). After a few seconds a see the cursor blink briefly but then then it reverts to a blank screen and the process starts again (with the spinner showing, curosr blinking briefly etc. ).

I've tried:

  • Reinstalling the OS from recovery
  • Starting in verbose mode (no useful info I can make out)
  • Starting in safe mode (above)
  • Clearing PRAM/NVRAM
  • Clearing SMC
  • Running first-aid on the boot drive
  • Removing the Little Snitch kext file via this link: https://forums.obdev.at/viewtopic.php?f=1&t=11217&start=15

It feels like there is something wrong with the Windows Server (which is mentioned in the above Little Snitch article) and that there has been an issue building the kernel while updating Little Snitch but I'm not sure how to diagnose further and/or fix it.

Best Answer

SOLVED: MacBook Will Not Start Up After macOS Update

I have a MacBook pro running MacOS Mojave.

For the past year or so, every time a new MacOS update rolls out, and is attempted to be installed on my MacBook, it ends up displaying the circle slash (Prohibitory Symbol). Rebooting still produces a prohibitory symbol. I’m still able to boot into recovery mode (command-R at startup), however running disk repair on my MacBook HD does NOT solve the problem. I have also tried:

  • specifying the startup disk (problem still persists);
  • attempting to start in safe mode (problem persists);
  • doing the NVRAM reset (problem persists).

In the past, the only way I was able to get around the problem, is by re-formatting my HD, installing latest version of Mojave OS, and then migrating all my data from my Time Machine backup.

This happened again the other day with the recent Mojave 10.14.2 update. My computer automatically installed the update overnight, and in the morning, my screen was showing circle slash. This time I did some more research, and discovered that the issue may be caused by unsigned kernel extension (KEXT) files existing on my HD.

Kernel Extensions are pieces of code that extends the capability of the base kernel of an operating system. The kernel typically manages Input / Output (I/O) requests, and in macOS the file ends in .kext.

Starting with Yosemite, kernel extensions must be code-signed by the developer with Apple authorization or macOS won’t load them. Sometimes these un-signed kernel extensions cause this headache after a macOS update.

Using terminal command in Recovery Mode, you should be able to resolve this problem by removing unsigned kext extensions from location:/Volumes/<your system's drive name>/Library/Extensions/ [not to be confused with /System/Library/Extensions/].

After I removed the following KEXT files from the /Volumes/<your system's drive name>/Library/Extensions/ directory, my MacBook booted up properly, and finished installing the Mojave update:

  • BJUSBLoad.kext (Creator: Canon)
  • CIJUSBLoad.kext (Creator: Canon)
  • ParagonSnapshot.kext (Creator: Paragon)
  • ufsd_NTFS.kext (Creator: Paragon)
  • VDMounter.kext (Creator: Paragon)
  • LittleSnitch.kext (Creator: LittleSnitch)

FURTHER DETAILS:

This article (MacBook Will Not Start Up After macOS Update, How-To Fix) provides some helpful information regarding:

In that article, the section titled “Un-Assigned Kernel Misfiring” explains how to boot into Recovery Mode and launch Terminal utility. However, one problem with that article is that the kextstat command is not available in Terminal utility running in Recovery Mode.

As a work-around, these are the steps I took to solve the problem:

  1. Boot to Recovery (with command-R or command-shift-R if you don't have recovery partition)
  2. First, pick Disk Utility, select your main disk and Mount it; this is required if your disk is encrypted and requires a password to be mounted
  3. Now select Disk Utility -> Quit; then Utilities -> Terminal
  4. Begin typing in Terminal following commands:
    • cd /Volumes/
    • cd <your system's drive name> (Note: If your system drive has any spaces in it’s name, then put the name in single quotes. For example, my MacBook boot drive is called “MacBook HD”, so the command I would type is: cd ‘MacBook HD’
    • cd library
    • cd extensions
    • cd ls (Note: first letter is a lower case L)

After you type ‘ls’, you should see a list of KEXT extensions like this:

ACS6x.kext                CIJUSBLoad.kext
ATTOCelerityFC8.kext      CalDigitHDProDrv.kext
ATTOExpressSASHBA2.kext   HighPointIOP.kext
ATTOExpressSASRAID2.kext  HighPointRR.kext
ArcMSR.kext               PromiseSTEX.kext
BJUSBLoad.kext            SoftRAID.kext

The KEXT extensions listed above are all ones properly signed by Apple. These KEXT extensions can remain, but if you have other KEXT extensions listed, chances are that some or all of those others are causing the issue.

If you see any of these extensions (listed below), you should be able to safely delete them in order to fix your problem. I’d recommend removing each extension, one at a time, then rebooting to see if it worked, and if not, repeat steps above and delete next one. Based on my limited research, the ones I’d recommend deleting first are:

  • ParagonSnapshot.kext (Creator: Paragon)
  • VDMounter.kext (Creator: Paragon)
  • LittleSnitch.kext (Creator: LittleSnitch)
  • ufsd_NTFS.kext (Creator: Paragon)

While in Terminal (in Recovery mode), to delete (or remove) a desired KEXT extension (eg., LittleSnitch.kext) type:

rm -r <full name of extension>

(eg, rm -r LittleSnitch.kext)

Once complete, quit Terminal and restart your Mac.

Related Question