일부 커널 확장을 이동하려고 시도한 후 설치 프로그램이 실패합니다. "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파일을 찾으세요. 이 파일을 다른 위치로 이동하거나 거기에 새 폴더를 만들어 거기에 넣고 재부팅하십시오. 연결된 장치에 슈퍼드라이브가 다시 표시되지 않습니다.

슈퍼드라이브를 다시 사용하려면 OSX가 연결된 장치 검색을 시작하고 슈퍼드라이브를 찾을 수 있도록 해당 파일을 동일한 위치에 다시 넣고 USB 드라이브를 삽입해야 합니다. 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해당 위치에 다시 넣는 것이었습니다. 커널 확장을 직접 이동한 경우 디스크 권한을 복구하기 전에 다시 이동해야 합니다.

커널 확장을 영구적으로 삭제한 경우 복구 HD 파티션에서 원래 커널 확장을 복사해야 할 수도 있습니다. 자세한 내용은 이 답변을 참조하세요.https://apple.stackexchange.com/a/43019/43284.

관련 정보