Что означает ошибка KEXT_ERR
Сообщение о конфликте расширений ядра появляется, когда macOS обнаруживает несовместимость между загружаемыми драйверами и текущей версией ядра. Система может зависнуть на этапе загрузки, выдать экран паники (kernel panic) или отобразить в консоли ошибку вида kextd: invalid signature for kext или Kext with invalid signature failed to load.
KEXT — это низкоуровневые модули, которые работают в пространстве ядра. Если два драйвера пытаются управлять одним аппаратным ресурсом или используют устаревшие системные вызовы, ядро блокирует их загрузку для защиты оборудования и стабильности системы.
Причины возникновения
- Установка несовместимых драйверов. ПО для антивирусов, виртуальных дисков, работы с NTFS или хаков часто использует старые API, которые перестали поддерживаться в современных версиях macOS.
- Повреждение кэша ядра. Сбой во время обновления системы или принудительное выключение питания нарушают целостность файлов в
/System/Library/Caches/com.apple.kext.caches/. - Конфликт версий. В папке
/Library/Extensions/остались файлы от предыдущей установки программы, которые пересекаются с новой версией драйвера. - Отсутствие цифровой подписи. Apple требует валидной подписи разработчика. Если сертификат просрочен или не соответствует требованиям Gatekeeper, система помечает расширение как небезопасное и блокирует его.
Способы решения
Способ 1: Быстрая изоляция через безопасный режим
Безопасный режим загружает macOS только с системными расширениями и автоматически очищает кэши ядра, что часто снимает блокировку.
- Для Mac на Intel: перезагрузите устройство, сразу зажмите
Shiftи держите до появления окна входа. - Для Mac на Apple Silicon: выключите компьютер, зажмите кнопку питания до появления окна «Параметры загрузки», выберите диск, зажмите
Shiftи нажмите «Продолжить в безопасном режиме». - Авторизуйтесь. Если система загрузилась, конфликтующий драйвер временно отключён.
💡 Совет: в безопасном режиме графику и сеть могут работать медленнее. Это нормально — ваша цель добраться до настроек или Терминала.
- Перейдите в
Системные настройки→Конфиденциальность и безопасность→Разрешитьрядом с предупреждением о заблокированном ПО, если оно отображается.
Способ 2: Ручная выгрузка через Terminal
Если безопасный режим не помог, удалите проблемное расширение вручную.
- Откройте
Терминал(через Spotlight илиПрограммы → Утилиты). - Найдите Bundle ID конфликтующего модуля:
kextstat | grep -i <название_вендора>
- Выгрузите расширение из оперативной памяти:
sudo kextunload -b com.vendor.example.kext
- Удалите файлы драйвера из пользовательской директории:
sudo rm -rf /Library/Extensions/Example.kext
- Удалите остатки из системной папки (если они там есть):
sudo rm -rf /System/Library/Extensions/Example.kext
⚠️ Важно: не используйте
rm -rf /System/Library/Extensions/*— это удалит критические системные компоненты и приведёт к неработоспособности macOS.
Способ 3: Очистка кэша и переустановка
Иногда файлы драйвера остаются в кэше даже после удаления, вызывая повторный конфликт при загрузке.
- Очистите кэш ядра и пересоберите его:
sudo kextcache -i /
sudo touch /System/Library/Extensions /Library/Extensions
- Перезагрузите Mac:
sudo shutdown -r now
- Скачайте последнюю версию драйвера с официального сайта разработчика. Убедитесь, что в описании указана прямая поддержка вашей версии macOS (например, «macOS 15 Sequoia compatible»).
- Запустите установщик
.pkg, следуйте инструкциям и перезагрузите компьютер. Если появится запрос на разрешение, подтвердите его в настройках безопасности.
Профилактика
- Устанавливайте только драйверы, подписанные разработчиками с идентификатором Apple Developer ID.
- Перед обновлением macOS проверяйте раздел «Совместимость» на сайтах используемого ПО (виртуализация, периферия, антивирусы).
- Регулярно создавайте резервные копии через Time Machine. Это позволит быстро откатить изменения, если новый kext вызовет сбой.
- Избегайте ручного копирования
.kextфайлов через Finder. Всегда используйте официальные установщики, которые правильно настраивают права доступа и регистрируют расширения в системе.