Диагностика и «лечение» критических ошибок системы (kernel panic)

SysteminfoМногие читатели встречались или хотя бы слышали о таком явлении, как «синий экран смерти» (BSOD), который появляется в операционных системах семейства Windows при возникновении критических ошибок системы, с которыми она не может справиться без полной перезагрузки. В OS X есть нечто похожее. Критические ошибки на уровне ядра Mac OS X называются «kernel panic». Ядро — сердце системы, отвечающее за взаимодействие как комплектующих и периферии, так и программного обеспечения вашего компьютера. Поэтому, если в работе ядра возникает критическая ошибка, часто для восстановления после неё требуется перезапуск ядра, а следовательно и системы.

Чаще всего такие критические ошибки проявляются в виде серого экрана, на фоне которого на разных языках вас просят принудительно завершить работу компьютера в связи с возникновением ошибки.kernelpanicscreen

Однако так происходит не всегда. Иногда ошибки ядра приводят к полному зависанию системы или спонтанным перезагрузкам и выключениям компьютера. В этом случае основным признаком «kernel panic» будет появление соответствующей записи в логах системы с названием вида «Kernel_YYYY-MM-DD-HHMMSS_ComputerName.panic», где YYYY-MM-DD-HHMMSS — это последовательно указанные год, месяц, дата и время возникновения ошибки с точностью до секунд, а ComputerName — имя компьютера.

К подобного рода ошибкам могут привести многие неисправности оборудования, как внутреннего (например, оперативной памяти), так и периферии (такой, как внешние накопители), а также сбои в работе ПО. К сожалению, при диагностике критических ошибок системы «круг подозреваемых» очень велик, так как ядро взаимодействует с каждым процессов и сервисом в системе, не говоря уже о каждом внешнем и внутреннем устройстве. Как и в многих других случаях с Mac OS X, при возникновении критических ошибок, намного проще опробовать несколько общих подходов для решения проблемы, чем при помощи отчетов и логов пытаться вычислить виноватого.

Возможные причины и решения.

Неисправность или сбои оперативной памяти (RAM)

Проблемы с оперативной памятью являются одной из самых распространенных причин возникновения критических сбоев. Если вам не удается проследить зависимость появления «kernel panic» от подключения каких-либо конкретных устройств или запуска определенных процессов, стоит проверить именно оперативную память.

Для этого вы можете воспользоваться Функциональным тестом оборудования Apple (AHT) или, если ваш Mac выпущен после 2013 года, Apple Diagnostics. Если к компьютеру прилагался диск с программным обеспечением системы, вставьте его в оптический привод, выключите компьютер и нажмите клавишу D при следующем включении.

Устройства, поставлявшиеся с OS X 10.7 и выше также поддерживают запуск интернет-версии тестов. Для этого убедитесь, что ваш Mac подключён к сети Интернет и при запуске зажмите сочетание клавиш ⌥Alt + D.

Для теста оперативной памяти также можно воспользоваться и сторонними утилитами, например, Rember или Memtest.

Стоит также заметить, что некоторые версии системы или прошивок могут быть более (или менее) совместимы с тем или иным видом оборудования, в связи с чем их обновления могут привести к возникновению конфликтов с оборудованием и критических сбоев. Такое бывает редко и чаще случается наоборот, но все же вероятность есть.

Сбои NVRAM и SMC

В небольшом секторе памяти вашего компьютера под названием «энергонезависимое ОЗУ», или NVRAM, сохраняются определенные настройки, к которым OS X может быстро получить доступ.  В настройки, сохраняемые в NVRAM, могут закрасться ошибки, которые в определенных случаях могут привести к появлению kernel panic. Для того чтобы устранить возможные ошибки памяти NVRAM стоит произвести её сброс. Для этого выключите компьютер и при следующем его включении зажмите клавиши ⌘Command + ⌥Alt/Option + P + R и удерживайте их до тех пор, пока компьютер не перезагрузится и вы не услышите сигнал загрузки во второй раз.

На более старых компьютерах Mac подобная информация сохранялась в параметрическом ОЗУ (PRAM). Сброс NVRAM на компьютерах Mac с процессорами Intel выполняется с помощью такой же комбинации клавиш и аналогичен сбросу PRAM.

Если вы пользуетесь беспроводной клавиатурой, есть небольшая вероятность, что компьютер не будет реагировать на нажатия клавиш на ней. В этом случае стоит подключить USB клавиатуру (не имеет значения, будь то клавиатура Apple или Windows) и повторить попытку с ней.

Помимо этого на компьютерах Mac с процессором Intel установлен контроллер управления системой (SMC), который отвечает за многие низкоуровневые функции, такие как управление ресурсами аккумулятора, управление температурой, реакция на закрытие крышки портативных компьютеров и многие другие аспекты, связанные с питанием вашего Mac. В случае возникновения проблем с работой компьютера параметры SMC также стоит сбросить.

На ноутбуках с несъёмным аккумулятором:

  1. Выключите компьютер.
  2. Подключите адаптер питания MagSafe или USB-C к источнику питания и к компьютеру.
  3. Нажмите на встроенной клавиатуре одновременно клавиши ⇧Shift + Control + ⌥Alt/Option (слева) и кнопку питания.
  4. Одновременно отпустите клавиши и кнопку питания.
  5. Нажмите кнопку питания, чтобы включить компьютер.

На ноутбуках Mac со съемным аккумулятором:

  1. Выключите компьютер.
  2. Отключите адаптер питания MagSafe от компьютера, если он подключен.
  3. Выньте аккумулятор.
  4. Нажмите и удерживайте кнопку питания в течение пяти секунд.
  5. Отпустите кнопку питания.
  6. Снова подключите аккумулятор и адаптер питания MagSafe.
  7. Нажмите кнопку питания, чтобы включить компьютер.

На Mac Pro, iMac, Mac mini и Xserve:

  1. Выключите компьютер.
  2. Отсоедините шнур питания компьютера.
  3. Подождите 15 секунд.
  4. Присоедините шнур питания.
  5. Подождите 5 секунд, а затем нажмите кнопку питания, чтобы включить компьютер.

Сбои в работе внешних устройств (периферии)

Устройства Firewire, Tunderbolt и USB — также очень вероятные виновники возникновения критических сбоев. Причины могут самые разные, но основная заключается в том, что эти устройства очень часто обращаются к контроллеру вашего компьютера, обмениваясь с ним пакетами данных, и, если контроллер получит некорректный пакет, это может вызвать сбой.

В этом случае «kernel panic» могут возникать сразу при подключении устройства, при запуске системы, если устройство уже было подключено к Mac и в момент выхода компьютера из спящего режима.

В последнем случае одним из обходных вариантов может быть отключение перехода компьютера в спящий режим в меню Системные настройки → Экономия энергии.

Более же распространенный подход к данной проблеме обычно заключается в отключении всех внешних устройств и последовательном их подключении. Таким образом, методом перебора вариантов можно определить, какое устройство вызывает сбои, хотя это в некоторых случаях бывает довольно сложно, так как иногда проблема может проявляться не сразу, а через несколько минут, или даже часов.

Выяснив, какое устройство вызывает сбои, стоит проверить обновления прошивки этого устройства и драйверов для него, а также обновления самой системы. Есть вероятность, что проблема скорее программного характера и обновления её устранят.

Если вы пользуетесь концентраторами или разветвителями, позволяющими подключать одновременно несколько устройств к одному физическому порту на вашем компьютере, стоит хотя бы временно от них отказаться, так как они также могут вызывать критические ошибки.

Наконец, если ничего из описанного выше не помогло, стоит попробовать подключить аналогичное устройство другой модели или от другого производителя. К сожалению, так случается, что некоторые периферийные устройства могут быть несовместимы с вашим компьютером по той или иной причине.

Сбои в работе комплектующих

Регулярно повторяющиеся сбои могут быть вызваны неисправными, поврежденными или некорректно настроенными комплектующими, такими как встроенные Airport и Bluetooth контроллеры и прочие сетевые устройства, жесткие диски и твердотельные накопители, а иногда и неисправные или некорректно работающие процессоры.

Часто подобные проблемы могут решаться простым переподключением соответствующих комплектующих. Если вы недавно делали апгрейд своего Mac (особенно, если своими силами), стоит убедиться, что все PCI, PCI Express, AirPort и прочие платы расширения корректно подключены к соответствующим разъемам.

Ошибки кэша

Временные файлы, созданные системой и пользовательскими приложениями, играют важную роль в работе OS X, именно поэтому если в них появится какая-то ошибка, последующие обращения к ним могут привести к сбою. Перед тем, как приступить к подробной диагностике проблемы, стоит начать с очистки кэша, так как это может сэкономить ваше время и силы. Вы можете воспользоваться специализированными утилитами, вроде Onyx или Cocktail, или удалить временные файлы вручную. Какой бы вариант вы ни выбрали, настоятельно рекомендуем предварительно сделать полную резервную копию вашей системы!

  1. Откройте Finder и нажмите сочетание клавиш ⌘Command + ⇧Shift + G
  2. В открывшемся окне введите /System/Library
  3. Нажмите кнопку «Перейти»
  4. В открывшейся папке найдите файлы с названиями «Extensions.kextcache» и «Extensions.mkext» и удалите их.
  5. В этой же директории найдите папку «Caches» выделите все её содержимое и удалите.
  6. Снова нажмите сочетание ⌘Command + ⇧Shift + G и введите в открывшемся окне /Library/Caches/
  7. Снова выделите и удалите все содержимое папки.
  8. Наконец, ещё раз нажмите сочетание ⌘Command + ⇧Shift + G и введите в открывшемся окне ~/Library/Caches
  9. Удалите содержимое этой папки.
  10. Перезагрузите систему и проверьте, не возникают ли критические ошибки.

Некорректно работающее компоненты Mac OS X и расширения ядра

Компоненты Mac OS X и расширения ядра — это очень обширная тема, не только из-за того, что они уязвимы для огромного количества различных неисправностей, в числе которых повреждение данных, несовместимость оборудования, некорректная настройка прав доступа и многие другое, но и за счет своей многочисленности. Для примера можно заглянуть в папку /System/Library/Extensions, каждый файл в которой расширяет функционал ядра Mac OS X и может оказаться причиной причиной возникновения «kernel panic». В среднем система насчитывает около 250-300 расширений ядра (и это далеко не предел), что может превратить диагностику ошибки в поиск иголки в стоге сена.

В данном случае, если вы уверены, что проблема действительно кроется в системных файлах, может быть проще и эффективней провести повторную установку системы поверх существующей из раздела восстановления (попасть в который можно, зажав сочетание клавиш ⌘Command + R при включении компьютера), что оставит нетронутыми пользовательские данные, но заменит системные файлы на заведомо рабочие.

В некоторых случаях критические ошибки могут появиться после обновления или апгрейда системы, что также чаще всего относится к проблемам с системными файлами. Самым простым способом решения подобных проблем было бы восстановление из резервной копии на момент до обновления, однако есть у другие способы, которых мы писали в одной из наших предыдущих статей.

Некорректные настройки

Некорректные настройки вашей системы или повреждение самих файлов, в которых они хранятся также могут послужить причиной критических сбоев. Часто поведение системы может подсказать, какие параметры настроены неверно. Например, если проблема возникает при переходе компьютера или дисков (ввиду неактивности) в спящий режим или выходе из него, вероятно вам сможет помочь отключение функций в меню  Системные настройки → Экономия энергии.

Если же определить источник проблемы не удается, можно использовать один из общих подходов и создать новую учётную запись. Таким образов вы сбросите для новой учётной записи все пользовательские настройки и сможете проверить, не решит ли это проблему. Если в новой учётной записи проблема устранилась, но её причину вам установить так и не удалось, возможно будет удобнее перенести все нужные вам данные в нового пользователя, а старого удалить.

Помимо этого может помочь запуск системы в безопасном режиме. Для этого выключите компьютер и при следующем включении зажмите клавишу ⇧Shift. Таким образом вы не только временно отключите все сторонние расширения ядра, дополнения системы и настройки, которые могут привести к сбоям, но и очистите некоторые временные файлы, которые также могут послужить причиной возникновения проблемы.

И, наконец, если у вас есть внешний носитель (флешка или внешний диск), вы можете провести чистую установку системы на него, затем перезагрузить компьютер и при включении зажать клавишу ⌥Alt/Option. В результате на экране отобразится список устройств, с которых можно осуществить загрузку системы. Выберите свой внешний диск и нажмите ⏎Enter.  Таким образом вы сможете проверить работу компьютера с чистой системой без стороннего ПО и дополнительных пользовательских настроек.

Если описанные выше способы не дали положительного результата, можно почти с полной уверенностью сказать, что проблема имеет аппаратный характер. В этом случае попытки самостоятельного решения проблемы имеют мало шансов на успех. Стоит рассмотреть возможность обращения в сервисный центр для получения квалифицированной помощи при дальнейшей диагностике и устранения неисправности.

О Дмитрий Архипов

Специалист технической поддержки пользователей.
Метки , , , , , , , , , . Закладка постоянная ссылка.