Вчера при выключении системы OS X Yosemite мне было предложено установить обновления и выключить компьютер, что я и сделал. Сегодня был непрятно удивлен не загружающейся системой. При загрузке системы на последнем этапе как-то кривился экран. Есть предположение, что обновление затронуло какие-то кексты.
Хорошо, что у меня осталась еще на диске старая инсталляция OS X 10.8.5. Сейчас загрузимся и посмотрим в /System/Library/Extensions/
Похоже, что есть зацепка. Как видно были обновлены следующие кексты:
- System.kext // описание
- IOGraphicsFamily.kext // описание
- IONDRVSupport.kext // legacy; apparently for very old graphics chips
- IOPCIFamily.kext // описание
- AudioAUUC.kext // описание
- AppleBacklightExpert.kext // описание
Кексты выделенные красным входят в набор минимально необходимых кекстов.
Кексты выделенные оранжевым входят в проект IOGraphics.
Странно, но очень трудно найти описания кекстов. Некоторые я так и не нашел.
Для начала сделаем бэкап того что есть:
$ cd /Volumes/OS\ X\ 10.10.2/System/Library/Extensions
$ sudo cp -R System.kext ~/Documents/Backup/
$ sudo cp -R IOGraphicsFamily.kext ~/Documents/Backup/
$ sudo cp -R IONDRVSupport.kext ~/Documents/Backup/
$ sudo cp -R IOPCIFamily.kext ~/Documents/Backup/
$ sudo cp -R AudioAUUC.kext ~/Documents/Backup/
$ sudo cp -R AppleBacklightExpert.kext ~/Documents/Backup/
Странно, но очень трудно найти описания кекстов. Некоторые я так и не нашел.
Для начала сделаем бэкап того что есть:
$ cd /Volumes/OS\ X\ 10.10.2/System/Library/Extensions
$ sudo cp -R System.kext ~/Documents/Backup/
$ sudo cp -R IOGraphicsFamily.kext ~/Documents/Backup/
$ sudo cp -R IONDRVSupport.kext ~/Documents/Backup/
$ sudo cp -R IOPCIFamily.kext ~/Documents/Backup/
$ sudo cp -R AudioAUUC.kext ~/Documents/Backup/
$ sudo cp -R AppleBacklightExpert.kext ~/Documents/Backup/
Теперь надо восстановить кексты с загрузочной флэшки. Для этого надо сначала удалить то что есть, а потом установить исходные кексты. Не думаю, что надо восстанавливать сразу все. Попробуем начать с IOGraphicsFamily.kext.
$ sudo rm -rf IOGraphicsFamily.kext
$ sudo cp -R /Volumes/Yosemite/System/Library/Extensions/IOGraphicsFamily.kext ./
$ sudo chmod -R 755 IOGraphicsFamily.kext
$ sudo chown -R root:wheel IOGraphicsFamily.kext
Перезагружаемся... не проканало :(
Попробуем восстановить IOPCIFamily.kext и IONDRVSupport.kext. заодно:
$ sudo rm -rf IOPCIFamily.kext
$ sudo cp -R /Volumes/Yosemite/System/Library/Extensions/IOPCIFamily.kext ./
$ sudo chmod -R 755 IOPCIFamily.kext
$ sudo chown -R root:wheel IOPCIFamily.kext
$ sudo rm -rf IONDRVSupport.kext
$ sudo cp -R /Volumes/Yosemite/System/Library/Extensions/IONDRVSupport.kext ./
$ sudo chmod -R 755 IONDRVSupport.kext
$ sudo chown -R root:wheel IONDRVSupport.kext
Перезагрузка... неудача :(
Восстановим, что осталось:
$ sudo rm -rf System.kext
$ sudo cp -R /Volumes/Yosemite/System/Library/Extensions/System.kext ./
$ sudo chmod -R 755 System.kext
$ sudo chown -R root:wheel System.kext
$ sudo rm -rf AudioAUUC.kext
$ sudo cp -R /Volumes/Yosemite/System/Library/Extensions/AudioAUUC.kext ./
$ sudo chmod -R 755 AudioAUUC.kext
$ sudo chown -R root:wheel AudioAUUC.kext
$ sudo rm -rf AppleBacklightExpert.kext
$ sudo cp -R /Volumes/Yosemite/System/Library/Extensions/AppleBacklightExpert.kext ./
$ sudo chmod -R 755 AppleBacklightExpert.kext
$ sudo chown -R root:wheel AppleBacklightExpert.kext
$ sudo rm -rf /Volumes/OS\ X\ 10.10.2/System/Library/Caches/com.apple.kext.caches
Перезагрузка... снова неудача :(
Посмотрим какие файлы были изменены со времени последнего обновления:
$ find /Volumes/OS\ X\ 10.10.2/System -mtime -1 -ls
Миллионы файлов... так я ничего не найду.
Я заметил перед тем как экран начнет кривить выводится сообщение [AGPM Controller] unknownPlatform. Тут советуют такое решение:
$ sudo cp -R AppleIntelHDGraphics.kext ~/Documents/Backup/
$ sudo rm -rf AppleIntelHDGraphics.kext
$ sudo rm -rf /Volumes/OS\ X\ 10.10.2/System/Library/Caches/*
Перезагрузка... неудача :(
Попробуем добавить флаги при загрузке:
CPUS=1 PCIROOTUID=1 GRAPHICSENABLER=YES NPCI=0X2000
Перезагрузка... нет, не грузится :(
В общем пришлось переустановить ОС. И отключить автоматические обновления.
- Описание некоторых кекстов
- iHackintosh: How to Remove KEXT file in MAC OSX.
- How to manually install kexts
- How to Install Kernel Extensions in Mac OS X Manually
- copy kexts manually to extensions folder | MacBook Mini
- notes.app - Where do my notes written in the Notes application on my Mac get saved? - Ask Different