2 Replies Latest reply: Apr 1, 2008 11:38 AM by Linc Davis
Linc Davis Level 10 Level 10 (169,465 points)
For about the last week I've been getting a series of messages in the system log, once every few minutes:

kextd\[10\]: kextcache error updating / (error count: 202)

The count increases by one each time, and resets to 1 on reboot. Does anyone have a clue what causes this?

Mac OS X (10.5.2)
  • Mark Jalbert Level 5 Level 5 (4,595 points)
    kextd loads kexts on demand from kernel or client processes. kextcache creates or updates kext caches. You have a misbehaving kernel extension. Start you computer in Safe Mode. Safe Mode will only load Apple supplied kernel extensions. Check for the error message. If there are no error messages then it's a third party kernel extension causing the issue. At this point open the Terminal application and type this command:

    kextstat -l > safemodekext.txt

    This will produce a text file with the kernel extensions loaded in Safe Mode. Reboot your computer. Then open the Terminal application and type this command:

    kextstat -l > regbootkext.txt

    Compare the two text files to identify your third party extensions. You can use the command line tools kextunload and kextload to find the culprit.
  • Linc Davis Level 10 Level 10 (169,465 points)
    For the benefit of anyone else reading this thread, the right way to find out what third-party kernel extensions are installed is this:

    kextstat -kl | awk '{ print $6 }' | grep -v apple

    Rebooting isn't necessary. However, this is irrelevant to my problem, which has nothing to do with extensions. The answer is in the output of

    kextcache -v 5 -u /

    which is, in part,

    kextcache: //System/Library/CoreServices/BootX: No such file or directory
    kextcache: error updating helper partition disk1s3, state 2: Unlinking and copying BootX booter

    See the man page for kextcache(8). I had deleted the BootX file from the system on my Intel Mac, thinking (correctly) that it wasn't needed and that it interefered with using rsync to make mirror backups, because the file is normally locked. Apparently the update routine to which kextcache is a front end expects that file to be there, regardless of architecture. So the message is harmless, and can be suppressed by creating a new BootX file using bless(8).