いくつかのカーネル拡張機能を移動しようとすると、インストーラーが失敗します: 「IOCDStorageFamily.kext は本物ではありません。事前リンクされたカーネルから省略されます。」

いくつかのカーネル拡張機能を移動しようとすると、インストーラーが失敗します: 「IOCDStorageFamily.kext は本物ではありません。事前リンクされたカーネルから省略されます。」

私もこの StackExchange の他の人たちと似たような問題を抱えていますが、根本的な原因と必要な解決策は異なると思います。私の問題は次のとおりです。

XCode やハードウェアのドライバーなどのプログラムをインストールしようとすると、インストールが失敗します。インストーラー ログには次のエラーが含まれます。

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"
        );
    }

多くの 他の 人々この問題に遭遇したことがある人は多く、彼らの場合、サードパーティのカーネル拡張機能が問題を引き起こしていることが問題でした。彼らの解決策は、問題が解決するまでカーネル拡張機能を削除することでした。

しかし、これらの人々とは異なり、私が問題を抱えている理由は、Appleにプリインストールされていたカーネル拡張機能を移動したためであり、問​​題を引き起こすカーネル拡張機能をインストールしたためではないと考えています。特に、しばらく前に、物理的に取り外すことなくマシンのCDドライブを無効にしたかったので、この答えそこにはこう書かれています。

ペアレンタルコントロールを利用せずにスーパードライブを完全に無効にしたい場合は、kext ファイルをアンロードすることで実行できます。/System/Library/Extensionsフォルダーに移動してIODVDStorageFamily.kextファイルを見つけるだけです。このファイルを別の場所に移動するか、そこに新しいフォルダーを作成してそこに置いて再起動します。接続されたデバイスにスーパードライブが再び表示されなくなります。

スーパードライブを再度使用するには、そのファイルを同じ場所に再度配置し、USB ドライブを挿入する必要があります。そうすることで、OSX は接続されたデバイスの検索を開始し、スーパードライブを見つけます。kext ファイルのバックアップを適切に作成し、削除しないでください。

したがって、IODVDStorageFamily.kextと をIOCDStorageFamily.kextコンピューター上の別の場所に移動してみました。移動後、インストーラーの実行に問題が発生しました。

その後、ファイルを元の場所に戻しました。また、ファイルのアクセス許可が正しく設定されていることを確認するためにsudo chown root:wheel IOCDStorageFamily.kext/、 とを実行しましたsudo chown root:wheel IODVDStorageFamily.kext/。インストーラー ログに次のエラーが表示されます。

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)

何度か移動したり触ったりしたせいで、私のマシンはそれらのファイルを信頼しなくなったようですIOCDStorageFamily.kextIODVDStorageFamily.kextこの問題を解決するにはどうすればいいでしょうか? ファイルが「本物」であるとマシンに納得させる方法、またはそれらのファイルの「本物」のコピーを入手してインストールする方法はありますか?


インストーラー ログ ファイルからの詳細情報は次のとおりです。

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"
        );
    }

答え1

ディスク ユーティリティを実行し、「ディスク アクセス権の検証」および「ディスク アクセス権の修復」オプションを使用します。

ここに画像の説明を入力してください

これが完了すると、カーネル拡張機能が正しく構成され、プログラムとドライバーをインストールできるようになります。


覚えておいてください、私の質問で実行した手順の 1 つは、削除したカーネル拡張機能/System/Library/Extensionsをその場所に戻すことでした。カーネル拡張機能を自分で移動した場合は、ディスクのアクセス許可を修復する前に必ず元に戻してください。

カーネル拡張機能を完全に削除した場合は、Recovery HD パーティションから元のカーネル拡張機能をコピーする必要がある場合があります。詳細については、次の回答を参照してください。https://apple.stackexchange.com/a/43019/43284

関連情報