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