0

I have a problem similar to others on this StackExchange, but I believe my underlying cause and the necessary solution are different. Here is my problem:

Whenever I try to install some programs, include XCode and drivers for hardware, the installation fails. The installer log contains this error:

NSLocalizedDescription=An error occurred while updating system extension information., arguments=(
        "-update-volume",
        "/",
        "-Installer"
    )} {
        NSLocalizedDescription = "An error occurred while updating system extension information.";
        NSUnderlyingError = "Error Domain=kextcache Code=71 \"The operation couldn\U2019t be completed. (kextcache error 71.)\"";
        arguments =     (
            "-update-volume",
            "/",
            "-Installer"
        );
    }

Many other people have had this problem, and in their cases, the problem is that they have a third-party kernel extension that is causing problems. Their solution has been to try removing kernel extensions until the problem goes away.

However, unlike these people, I think the reason I'm having problems is because I moved some kernel extensions that came preinstalled with Apple, not because I've installed kernel extensions that cause problems. In particular, a while ago, I wanted to disable my machine's CD drive without having to phyiscally remove it, so I followed the advice from this answer, which says:

Ok if you want to do completely disable the superdrive without playing with parental control you can do it by unloading the kext file. Just go to /System/Library/Extensions folder and find IODVDStorageFamily.kext file. Move this file to any alternate location or create a new folder there itself and put it there and reboot. You won't see the superdrive in your connected devices again.

To use the superdrive again, you need to put that file again on the same location and insert a USB drive, so that OSX starts searching for connected devices and it'll find your superdrive. Do take the backup of you kext file properly and do not delete it.

Accordingly, I tried moving the IODVDStorageFamily.kext and IOCDStorageFamily.kext to another location on my computer. After moving them, I have had problems running the installer.

I have since moved the files back into their original locations. I also ran sudo chown root:wheel IOCDStorageFamily.kext/ and sudo chown root:wheel IODVDStorageFamily.kext/ to make sure that their file permissions are set correctly. Now, in the installer logs, I get the following errors:

Sep 17 16:04:02 pcp257716pcs.unl.edu installd[1062]: kextcache: IODVDStorageFamily.kext has incorrect permissions; omitting.
Sep 17 16:04:02 pcp257716pcs.unl.edu installd[1062]: kextcache: IOCDStorageFamily.kext has incorrect permissions; omitting.
(snip)
Sep 17 16:04:12 pcp257716pcs.unl.edu installd[1062]: kextcache: /System/Library/Extensions/IOCDStorageFamily.kext is not authentic; omitting from prelinked kernel.
Sep 17 16:04:12 pcp257716pcs.unl.edu installd[1062]: kextcache: /System/Library/Extensions/IODVDStorageFamily.kext is not authentic; omitting from prelinked kernel.
Sep 17 16:04:14 pcp257716pcs.unl.edu installd[1062]: kextcache: Can't use IODVDStorageFamily.kext - not linked.
(snip)
Sep 17 16:04:14 pcp257716pcs.unl.edu installd[1062]: kextcache: Can't use IODVDStorageFamily.kext - not linked.
(snip)

It looks to me like since I moved and touched IOCDStorageFamily.kext and IODVDStorageFamily.kext a couple of times, my machine no longer trusts those files. How can I resolve this issue? Is there a way to convince my machine that the files are "authentic," or to obtain and install "authentic" copies of those files?


Here is some more information from my installer log file:

Sep 17 16:03:50 pcp257716pcs.unl.edu installd[1062]: PackageKit: kextcache -system-caches
Sep 17 16:03:50 pcp257716pcs.unl.edu installd[1062]: kextcache: /usr/sbin/kextcache -system-caches
Sep 17 16:03:53 pcp257716pcs.unl.edu installd[1062]: PackageKit: kextcache -update-volume / -Installer
Sep 17 16:03:53 pcp257716pcs.unl.edu installd[1062]: kextcache: /usr/sbin/kextcache -update-volume / -Installer
Sep 17 16:03:53 pcp257716pcs.unl.edu installd[1062]: kextcache: kextcache -arch x86_64 -local-root -all-loaded -kernel /System/Library/Kernels/kernel -prelinked-kernel /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -volume-root / /System/Library/Extensions /Library/Extensions
Sep 17 16:03:57 pcp257716pcs.unl.edu installd[1062]: kextcache: SRXDisplayCard.kext has invalid signature; omitting.
Sep 17 16:03:57 pcp257716pcs.unl.edu installd[1062]: kextcache: kext file:///System/Library/Extensions/Soundflower.kext/ is in hash exception list, allowing to load
Sep 17 16:03:58 pcp257716pcs.unl.edu installd[1062]: kextcache: kext file:///System/Library/Extensions/ProcasterAudioRedirector.kext/ is in hash exception list, allowing to load
Sep 17 16:03:58 pcp257716pcs.unl.edu installd[1062]: kextcache: kext file:///System/Library/Extensions/JMicronATA.kext/ is in hash exception list, allowing to load
Sep 17 16:04:02 pcp257716pcs.unl.edu installd[1062]: kextcache: IODVDStorageFamily.kext has incorrect permissions; omitting.
Sep 17 16:04:02 pcp257716pcs.unl.edu installd[1062]: kextcache: IOCDStorageFamily.kext has incorrect permissions; omitting.
Sep 17 16:04:07 pcp257716pcs.unl.edu installd[1062]: kextcache: AppleMobileDevice.kext has invalid signature; omitting.
Sep 17 16:04:12 pcp257716pcs.unl.edu installd[1062]: kextcache: /System/Library/Extensions/IOCDStorageFamily.kext is not authentic; omitting from prelinked kernel.
Sep 17 16:04:12 pcp257716pcs.unl.edu installd[1062]: kextcache: /System/Library/Extensions/IODVDStorageFamily.kext is not authentic; omitting from prelinked kernel.
Sep 17 16:04:14 pcp257716pcs.unl.edu installd[1062]: kextcache: Can't use IODVDStorageFamily.kext - not linked.
Sep 17 16:04:14 pcp257716pcs.unl.edu installd[1062]: kextcache: Prelink failed for com.apple.iokit.IOBDStorageFamily; omitting from prelinked kernel.
Sep 17 16:04:14 pcp257716pcs.unl.edu installd[1062]: kextcache: Can't use IODVDStorageFamily.kext - not linked.
Sep 17 16:04:14 pcp257716pcs.unl.edu installd[1062]: kextcache: Prelink failed for com.apple.iokit.IOSCSIMultimediaCommandsDevice; omitting from prelinked kernel.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Can't use IOSCSIMultimediaCommandsDevice.kext - not linked.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Prelink failed for com.apple.driver.PioneerSuperDrive; omitting from prelinked kernel.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Can't use IOSCSIMultimediaCommandsDevice.kext - not linked.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Prelink failed for com.apple.driver.MKE_SR_8171; aborting prelink.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Failed to generate prelinked kernel.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Child process /usr/sbin/kextcache[3232] exited with status 71.
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: kextcache: Error 107 rebuilding /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
Sep 17 16:04:17 pcp257716pcs.unl.edu install_monitor[3217]: Re-included: /Applications, /Developer, /Library, /System, /bin, /private, /sbin, /usr
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: PackageKit: releasing backupd
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: PackageKit: allow user idle system sleep
Sep 17 16:04:17 pcp257716pcs.unl.edu installd[1062]: PackageKit: Install Failed: Error Domain=PKInstallErrorDomain Code=121 "An error occurred while updating system extension information." UserInfo=0x7fad64c06840 {NSUnderlyingError=0x7fad64c06810 "The operation couldn’t be completed. (kextcache error 71.)", NSLocalizedDescription=An error occurred while updating system extension information., arguments=(
        "-update-volume",
        "/",
        "-Installer"
    )} {
        NSLocalizedDescription = "An error occurred while updating system extension information.";
        NSUnderlyingError = "Error Domain=kextcache Code=71 \"The operation couldn\U2019t be completed. (kextcache error 71.)\"";
        arguments =     (
            "-update-volume",
            "/",
            "-Installer"
        );
    }
Kevin
  • 712

1 Answers1

-1

Run Disk Utilities and use the "Verify Disk Permissions" and "Repair Disk Permissions" options.

enter image description here

Once this is done, your kernel extensions will be configured correctly, and you can install your programs and drivers.


Remember, one of the steps I performed in my question was, I took the kernel extensions I had removed from /System/Library/Extensions and put them back into that location. If you have moved kernel extensions yourself, make sure to move them back before repairing disk permissions.

If you permanently deleted the kernel extensions, you may need to copy the original kernel extensions from the Recovery HD partition. See this answer for more details: https://apple.stackexchange.com/a/43019/43284.

Kevin
  • 712