Jettisoning the Boot Cache – is it safe?

UPDATE – Apple released OS 10.10.3 on April 8, 2015 that addresses the boot lockout issue described below. Information on the release can be found at Apple’s support site.

You may have heard of this little problem with Yosemite some are giving the moniker “Login Lockout”. The problem, as described at AFP548.com, is that the computer will boot about 1/3 of the way and halt. It happens randomly, but more often after a hard reboot.

A community fix has been gaining traction at JAMFNation that suggests editing /etc/rc.server to run /usr/sbin/BootCacheControl jettison that seems to work. But is it safe to jettison the boot cache every boot?

In short, probably.

My friend @mikeymikey on Twitter spelunked into the issue at depths I’m not comfortable with and discovered, among other things, that the BootCache.kext has code that calls for a jettison on multiple occasions. The code is open sourced and available to browse at Apple’s open source site. Searching for “jettison” in the code will reveal some nice comments about different scenarios that would invalidate the cache. You can also see the command’s semi-hidden documentation by running /usr/sbin/BootCacheControl without an option. It will display the following, jettison being one option.


Usage: /usr/sbin/BootCacheControl [-vvv] [-f ] start
           Start recording history and play back .
       /usr/sbin/BootCacheControl [-vvv] [-f ] stop
           Stop recording history and write the playlist to .
       /usr/sbin/BootCacheControl mount
           Notify the boot cache of a new mount.
       /usr/sbin/BootCacheControl [-vvv] jettison
           Jettison the cache.
       /usr/sbin/BootCacheControl statistics
           Print statistics for the currently-active cache.
       /usr/sbin/BootCacheControl tag
           Insert the end-prefetch tag.
       /usr/sbin/BootCacheControl [-vvv] [-t batchnum] -f  merge  [...]
           Merge ... into .
           Playlist files after the first will be offset  batches, if provided
       /usr/sbin/BootCacheControl [-c] -f  print
           Print the contents of .
       /usr/sbin/BootCacheControl -f  unprint
           Read a playlist from standard input and write to .
       /usr/sbin/BootCacheControl -f  generate []
           Generate a playlist from standard input data for  and write to .
       /usr/sbin/BootCacheControl -f  truncate 
           Truncate  to  entries.
       /usr/sbin/BootCacheControl -f  generalize
           Modify  to apply to any root volume.

The result of running this on every boot just means that the computer may boot a smidge slower as the cache is not there to reference.

There are rumors of a fix coming from Apple but it’s unclear if that will be included in 10.10.3 or not. Adding the jettison to rc.server appears to be a valid workaround until the official fix is out. This temporary workaround is easily revertible by just removing the rc.server file and rebooting.

Advertisements
Tagged , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: