Depois de tentar mover algumas extensões do kernel, o instalador falha: "IOCDStorageFamily.kext não é autêntico; omitindo do kernel pré-vinculado."

Depois de tentar mover algumas extensões do kernel, o instalador falha: "IOCDStorageFamily.kext não é autêntico; omitindo do kernel pré-vinculado."

Tenho um problema semelhante a outros neste StackExchange, mas acredito que minha causa subjacente e a solução necessária são diferentes. Aqui está o meu problema:

Sempre que tento instalar alguns programas, incluindo XCode e drivers de hardware, a instalação falha. O log do instalador contém este erro:

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

Muitos outro pessoastiveram esse problema e, no caso deles, o problema é que eles têm uma extensão de kernel de terceiros que está causando problemas. A solução deles foi tentar remover as extensões do kernel até que o problema desapareça.

No entanto, ao contrário dessas pessoas, acho que estou tendo problemas porque movi algumas extensões do kernel que vieram pré-instaladas com a Apple, e não porque instalei extensões do kernel que causam problemas. Em particular, há algum tempo, eu queria desabilitar a unidade de CD da minha máquina sem ter que removê-la fisicamente, então segui o conselho deesta resposta, que diz:

Ok, se você quiser desabilitar completamente o superdrive sem brincar com o controle dos pais, você pode fazer isso descarregando o arquivo kext. Basta ir para /System/Library/Extensionsa pasta e encontrar IODVDStorageFamily.kexto arquivo. Mova este arquivo para qualquer local alternativo ou crie uma nova pasta lá, coloque-o lá e reinicie. Você não verá o superdrive em seus dispositivos conectados novamente.

Para usar o superdrive novamente, você precisa colocar esse arquivo novamente no mesmo local e inserir um drive USB, para que o OSX comece a procurar pelos dispositivos conectados e encontre o seu superdrive. Faça o backup do seu arquivo kext corretamente e não o exclua.

Assim, tentei mover IODVDStorageFamily.kexte IOCDStorageFamily.kextpara outro local no meu computador. Depois de movê-los, tive problemas ao executar o instalador.

Desde então, movi os arquivos de volta para seus locais originais. Também executei sudo chown root:wheel IOCDStorageFamily.kext/e sudo chown root:wheel IODVDStorageFamily.kext/verifiquei se as permissões de arquivo estavam definidas corretamente. Agora, nos logs do instalador, recebo os seguintes erros:

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)

Parece-me que desde que me mudei e toquei IOCDStorageFamily.kextalgumas IODVDStorageFamily.kextvezes, minha máquina não confia mais nesses arquivos. Como posso resolver esse problema? Existe uma maneira de convencer minha máquina de que os arquivos são "autênticos" ou de obter e instalar cópias "autênticas" desses arquivos?


Aqui estão mais algumas informações do meu arquivo de log do instalador:

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

Responder1

Execute os utilitários de disco e use as opções “Verificar permissões de disco” e “Reparar permissões de disco”.

insira a descrição da imagem aqui

Feito isso, suas extensões de kernel serão configuradas corretamente e você poderá instalar seus programas e drivers.


Lembre-se, uma das etapas que executei em minha pergunta foi pegar as extensões do kernel que havia removido /System/Library/Extensionse colocá-las de volta naquele local. Se você mesmo moveu as extensões do kernel, certifique-se de movê-las de volta antes de reparar as permissões do disco.

Se você excluiu permanentemente as extensões do kernel, pode ser necessário copiar as extensões do kernel originais da partição do Recovery HD. Veja esta resposta para mais detalhes:https://apple.stackexchange.com/a/43019/43284.

informação relacionada