У меня есть проблема, аналогичная другим в этом 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 ответ1

-1

Запустите Дисковые утилиты и используйте параметры "Проверка прав доступа к диску" и "Восстановление прав доступа к диску".

Как только это будет сделано, ваши расширения ядра будут настроены правильно, и вы сможете установить свои программы и драйверы.


Помните, одним из шагов, которые я выполнил в своем вопросе, было то, что я взял расширения ядра, которые я удалил из /System/Library/Extensions и поместил их обратно в это место. Если вы самостоятельно переместили расширения ядра, обязательно восстановите их перед восстановлением прав доступа к диску.

Если вы окончательно удалили расширения ядра, вам может потребоваться скопировать исходные расширения ядра из раздела Recovery HD. Смотрите этот ответ для более подробной информации: https://apple.stackexchange.com/a/43019/43284.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .