嘗試移動某些核心擴充後,安裝程式失敗:“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.kext幾次IODVDStorageFamily.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

運行磁碟實用程式並使用“驗證磁碟權限”和“修復磁碟權限”選項。

在此輸入影像描述

完成此操作後,您的核心擴充將被正確配置,並且您可以安裝程式和驅動程式。


請記住,我在問題中執行的步驟之一是,我取出了已刪除的內核擴充/System/Library/Extensions並將它們放回該位置。如果您自己移動了核心擴展,請確保在修復磁碟權限之前將其移回原處。

如果您永久刪除了核心擴展,則可能需要從 Recovery HD 分割區複製原始核心擴展。請參閱此答案以了解更多詳細資訊:https://apple.stackexchange.com/a/43019/43284

相關內容