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.