Ошибка ядра kernel

Ошибка Kernel Power 41 в Windows 10Если, заглянув в «Просмотр событий» Windows 10 (Win+R — eventvwr.msc) в журнале «Система» вы обнаружили множество ошибок, для которых указано уровень «Критический», источник — Kernel-Power, Код 41, а Категория задачи — 63, то вы не единственный такой пользователь. Обычно, разобравшись в том, о чем говорит эта ошибка и изучив предоставляемый подробности о событии мы можем разобраться в причинах и исправить проблему.

В этой инструкции подробно о том, что чаще всего вызывает ошибку Kernel Power 41 в Windows 10 и о том, какие сведения для диагностики проблемы может предоставить нам информация об ошибке в «Просмотре событий». Примечание: если события с кодом 41 у вас встречаются редко, переживать и что-то предпринимать обычно не стоит, но ознакомиться с теорией может быть полезным.

  • Простые причины ошибок Kernel-Power 41
  • Диагностика причин ошибки Kernel Power 41 (63)
  • Видео

Простые причины ошибок Kernel-Power код события 41

Ошибки Kernel Power 41 в просмотре событий Windows 10

Сообщениях о сбоях Kernel Power 41 (63) регистрируются при тех или иных сбоях, связанных с управлением электропитанием компьютера. При этом пользователь может этого никак не замечать, а может, наоборот, сталкиваться с проблемами: например, полностью зависшим и не отвечающим на команды компьютером.

Начнем с первого варианта, когда с точки зрения пользователя всё работает относительно нормально (или пользователь так считает), но в просмотре событий регистрируются ошибки Kernel Power с кодом события 41. Причинами в данном случае могут быть:

  1. Выключение компьютера долгим удержанием кнопки питания, выключение кабеля питания из розетки (или внезапное отключение электричества). Для ноутбука — отключение вследствие полного разряда или отключения аккумулятора. В описании ошибки будет почти стандартное: «Система перезагрузилась, завершив работу с ошибками. Возможные причины ошибки: система перестала отвечать на запросы, произошел критический сбой или неожиданно отключилось питание».
  2. Выключение компьютера или ноутбука, находящегося в режиме сна или гибернации. Очень распространенный вариант в случае с Windows 10 и вот почему: при «Завершении работы» компьютер с Windows 10 по умолчанию не выключается полностью, а переходит в особый режим, схожий с гибернацией. Если его после этого выключить из розетки, может быть зарегистрирована ошибка Kernel Power Если вы намеренно выключаете компьютер из розетки (или иным образом прекращаете подачу электропитания) после каждого завершения работы, отключите функцию Быстрый запуск в Windows 10 — после её отключения «Завершение работы» будет действительно выключать ваш ПК и его можно будет безопасно обесточивать.
  3. Неправильная работа драйверов, связанных с управлением электропитанием (драйверы чипсета, Intel ME, отдельные драйверы управления электропитанием некоторых ноутбуков), часто в следствие отсутствия оригинальных драйверов (вместо них — те, которые нашла сама Windows 10). Часто при этом наблюдаются странности в цикле завершения работы и включения, например: продолжающие работать вентиляторы после завершения работы, включение компьютера или ноутбука со второго раза или с подобием перезагрузки вначале (еще до входа в систему). Примечание: эти же признаки бывают симптомом неисправности блока питания компьютера, которая в свою очередь, тоже может приводить к ошибкам Kernel Power Для некоторых таких случаев (когда речь именно о драйверах), помимо установки оригинальных драйверов производителя помогает быстрое решение в виде отключения быстрого запуска, как в предыдущем случае, а также отказ от использования режимов сна и гибернации.

Для случаев проблем, связанных с отключением питания в режиме сна или «Connected Standby» (то, что происходит при завершении работы с включенным «Быстрым запуском») вследствие обесточивания или неправильной работы системы управления электропитанием, на вкладке «Подробности» в сведениях об ошибке в разделе EventData параметры SleepInProgress или ConnectedStandbyInProgress будут 1 или true соответственно.

При принудительном отключении кнопкой питания обычно (но не всегда) там же вы увидите параметр LongPowerButtonPressDetected равным true.

Диагностика причин ошибки Kernel Power 41

Всё описанное выше можно отнести к относительно простым случаям появления ошибки Kernel Power 41 с категорией задачи 63. Однако, нередки и более сложные случаи, проявляющиеся в дополнительных (помимо записи в просмотре событий) проблемах и не всегда легко диагностируемые, например:

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

Сведения с кодом ошибки Kernel Power 41

В этих случаях следует попробовать разобраться, а что именно является причиной такого поведения. Если в подробностях об ошибке в разделе EventData параметр BugcheckCode отличается от 0 (ноль), это нам может помочь в диагностике:

  1. Запустите встроенный калькулятор Windows 10 (можно использовать поиск или нажать клавиши Win+R, ввести calc и нажать Enter). Откройте меню калькулятора и включите режим «Программист».
  2. Введите число из BugcheckCode а затем переключите представление из десятичной в шестнадцатеричную систему, нажав HEX в калькуляторе.
  3. Например, самый частый такой код — 159. Если его перевести в HEX, получим 9F. Это будет соответствовать коду ошибки 0x0000009F — мы подставляем полученный на 2-м шаге результат таким образом, чтобы получилось 0x + несколько нулей + наш результат, а общее число знаков после x равно 8. Если выполнить поиск в Интернете по 0x0000009F мы выясним, что этот код соответствует ошибке DRIVER_POWER_STATE_FAILURE и сможем отдельно ознакомиться с причинами и методами исправления этой ошибки.

К сожалению, код не всегда регистрируется, остальные значения в сведениях об ошибке Kernel Power 41 также бывают не определены (равны 0 или false), в этом случае останется лишь наблюдать за закономерностями этой ошибки, а также попробовать следующее:

  1. Отключить любой разгон памяти, процессора, если они используются.
  2. Исключить проблемы с блоком питания. Особенно если спонтанные зависания и отключения происходят под нагрузкой. Выходящий из строя блок питания может «продолжать работать», но быть неспособным выдавать необходимую мощность. При этом это не всегда приводит к полному выключению компьютера, например, возможен вариант полной остановки изображения на экране и любой реакции на любые действия.
  3. Проверить RAM (оперативную память) на ошибки.
  4. Выполнить проверку системных файлов Windows и жесткого диска на ошибки.
  5. Иногда причиной может оказаться стороннее ПО, тесно интегрированное с системой, например, сторонние антивирусы.

Видео

Надеюсь, статься помогла разобраться с тем, что вызывает ошибку Kernel Power 41 в вашем случае и предпринять необходимые действия для её устранения.

Ошибка Kernel-Power код: 41 в Windows – причины возникновения и все способы устранения

Если ваш компьютер часто перезагружается без какой-либо причины, вы можете столкнуться с критической ошибкой Kernel Power 41. Ядро является центральной частью операционной системы, и его сбой вызывает перезагрузку ПК. Вы можете проверить наличие ошибки в журнале событий вашего ПК. Она чаще всего возникает при запуске игр и других требовательных процессов. Иногда эта ошибка также вызывает BSOD (синий экран смерти) с ошибкой 0x8000400000000002. Также многие пользователи получают сообщение «Система перезагрузилась без предварительной полной остановки. Эта ошибка может быть вызвана тем, что система перестала отвечать, произошёл сбой или неожиданное отключение питания». Такая проблема затрагивает не только Windows 10, но и предыдущие версии ОС.

Причины и решение ошибки «Kernel-Power код: 41»

Как устранить ошибку «Kernel-Power код: 41».

В сообщении об ошибке Kernel-Power (ID 41) говорится, что система была перезагружена без предварительного полного выключения. Это может быть вызвано тем, что ОС перестаёт отвечать на запросы, происходит сбой или неожиданное отключение питания. Точнее, ошибка возникает, когда компьютер неожиданно выключается или перезагружается. Критическая ошибка Kernel-Power Event ID 41 генерируется, когда компьютер под управлением Windows запускается после его последнего выключения, и ОС обнаруживает, что предыдущее выключение было выполнено неправильно. Событие с кодом 41 сообщает, что произошло нечто неожиданное, что не позволяет корректно завершить работу Windows.

Ошибка Kernel-Power код: 41

Причины неисправности и способы устранения

Само сообщение об ошибке предоставляет много информации, и поэтому важно знать, что компьютер делал непосредственно перед событием, и определить потенциальное решение. Недостаточное или неисправное электропитание может быть одной из основных причин. Например, если вы недавно добавили оперативную память (RAM), дополнительные устройства или жёсткие диски, после чего столкнулись с ошибкой, причиной может быть источник питания. Среди других популярных причин появления ошибки Kernel-Power 41 в Windows 10 и других:

  • Некорректные, повреждённые или устаревшие драйвера.
  • Неправильные настройки BIOS.
  • Антивирусное ПО.
  • Настройки электропитания.

Вот ещё несколько примеров этой проблемы:

  • Ошибка питания ядра при игре – Ошибка питания ядра 41 обычно возникает при запуске игр.
  • Событие питания ядра 41, задание 63 Windows 10 – ещё один вариант ошибки питания ядра 41.
  • Ошибка BSOD 0x8000400000000002 – Kernel Power 41 обычно вызывает BSOD, за которым следует код ошибки 0x8000400000000002.

В приведённом ниже руководстве есть несколько возможных решений для исправления ошибок Kernel-Power. Они касаются операционной системы Windows и параметров, которые могут вызывать проблемы.

Обновление драйверов

Microsoft постоянно выпускает различные обновления для улучшения общего впечатления пользователей Windows. Но такое событие может принести много боли, поскольку некоторые из них делают систему полностью непригодной для использования. Итак, проверьте, не возникает ли после установки последнего обновления проблема Kernel-Power 41, и стоит ли его удалять. Следуйте инструкциям, чтобы сделать это:

  • Нажмите Windows+I, откройте приложение «Настройки».
  • Выберите «Обновление и безопасность», нажмите «Просмотр истории установленных обновлений».
  • Выберите «Удалить обновления».

Теперь проверьте, исправлена ли ошибка или нет.

Просмотр истории установленных обновлений

Проверка оперативки

Ещё одной распространённой причиной неисправности ядра в Windows является оперативная память (RAM), когда она не подключена должным образом или слот (или сама планка) запылён. Чтобы отсоединить оперативную память, достаточно отогнуть специальные зажимы по бокам слота. Извлеките чип, удалите пыль и грязь и верните его на место. Не делайте этого, когда ваш компьютер включён или подключён к источнику питания. По окончании снова подключите компьютер к источнику питания и включите его. Проверьте систему на работоспособность. Следующим шагом будет использование встроенного в Windows инструмента диагностики памяти. Чтобы добраться до него, откройте панель управления и нажмите «Администрирование». Вы также можете открыть пуск и ввести «память» в поле поиска. Вы увидите ссылку для диагностики проблем с памятью вашего компьютера.

Затем вас спросят, хотите ли вы перезагрузить компьютер немедленно или запустить тест при следующей перезагрузке. Компьютер загрузится в диагностический инструмент и начнёт выполнение теста, который разбит на два отдельных этапа. Внизу вы увидите поле «Состояние», в котором будут отображаться обнаруженные проблемы. Вы также можете нажать клавишу F1 и изменить несколько параметров, таких как тип теста (базовый, стандартный или расширенный), настройки кэша и счётчик проходов.

Проверка оперативки

Диагностика с memtest86

memtest86 на сегодняшний день является самым популярным среди инструментов проверки оперативки, который существует с 1990-х годов. Чтобы использовать его, вы должны записать ISO-образ на компакт-диск, а затем настроить компьютер для приоритетной загрузки с диска. После загрузки с компакт-диска вы увидите меню с несколькими различными параметрами. По умолчанию будет автоматически выбран первый вариант. Начнётся тест памяти, и при наличии ошибок в правом нижнем углу появится сообщение. Memtest86 имеет несколько тестов памяти, поэтому процесс занимает немного больше времени, чем инструмент проверки памяти Windows. Это отличный помощник каждого администратора и в значительной степени промышленный стандарт для диагностики памяти. Существуют и другие инструменты, которые выполняют аналогичные проверки памяти, но memtest86 является наиболее исчерпывающим и точным из всех.

Критическая ошибка Kernel-Power обычно связана с питанием и указывает на то, что что-то не так с блоком питания компьютера. Причиной может быть окисление на задней панели переключателя устройства. В этом случае обратитесь к специалисту для проверки блока питания – замена может решить проблему. Другая возможная причина этой критической ошибки – перегрев. Компьютер обычно выключается, когда температура слишком высокая. Вы можете скачать программу SpeedFan, которая контролирует температуру и проверяет, не перегреваются ли компоненты ПК при включении компьютера. Убедитесь, что все провода подключены правильно (внутри и снаружи компьютерного блока), и проверьте, правильно ли подключены разъёмы питания для графического процессора и основной (материнской) платы. Кроме того, удалите процессор и переустановите его (если у вас есть практические навыки и опыт подобной процедуры).

Диагностика с memtest86

Изменение настроек BIOS

BIOS (Basic Input Output System) – это программное обеспечение, хранящееся на небольшом чипе памяти на материнской плате. Чтобы обновить BIOS, перейдите на веб-сайт производителя материнской платы и загрузите последнюю версию BIOS для материнской платы. Там должно быть руководство, описывающее, как обновить BIOS — убедитесь, что вы внимательно прочитали это. Имейте в виду, что обновление BIOS — это процедура для опытных пользователей, и, если она не выполняется должным образом, может привести к необратимому повреждению оборудования. Если вы не знаете, как обновить BIOS, найдите эксперта, чтобы избежать повреждения вашего компьютера. Большинство IT-специалистов пришли к выводу, что изменение определённых фоновых режимов в BIOS и в ОС Windows 7 и других также может помочь при устранении проблемы. Для этого выполните следующие шаги:

  • Выключите компьютер.
  • Теперь включите ПК и войдите в BIOS, нажав клавишу BIOS во время загрузки системы. Ключ BIOS обычно отображается на экране загрузки с надписью «Нажмите ___, чтобы войти в программу установки». Обычными кнопками запуска BIOS являются F1, F2, Del, Esc и F10. Обратите внимание, что действовать нужно сразу после включения ПК, так как сообщение исчезает довольно быстро.
  • Найдите раздел Power. Он находится на разных вкладках инструментов прошивки BIOS, в зависимости от производителя, и уникального способа найти его не существует. Обычно он находится в разделе «Параметры питания» или что-то похожее на это, и называется «Настройки ACPI».
  • Найдите параметр «Включить спящий режим» или «Функции ACPI» и убедитесь, что они включены. Ниже вы должны увидеть варианты состояния сна ACPI или состояния ожидания ACPI, поэтому убедитесь, что вы изменили их с S1 на S3.
  • Перейдите в раздел «Выход» и выберите «Сохранить изменения и выйти».

После перезагрузки проверьте, появляется ли ошибка.

Изменение настроек BIOS

Устранение конфликта двух звуковых карт

Некоторые пользователи получают критическую ошибку питания ядра kernel-41 из-за звукового драйвера, поэтому обязательно проверьте дубликаты драйверов и отключите драйверы. Следуйте шагам:

  • Нажмите клавишу Windows+X, выберите Диспетчер устройств и откройте его.
  • Теперь найдите аудио драйверы в контроллерах звука, видео и игр.
  • Если есть какие-либо повторяющиеся записи, щёлкните правой кнопкой мыши одну из них и выберите «Отключить» в меню.

Если в вашей системе нет дублирующих аудио драйверов, попробуйте отключить аудио драйверы из списков. Некоторые пользователи сообщают, что отключение ATI High Definition Audio Device из диспетчера устройств решило проблему. Однако вы также можете попытаться отключить любой другой драйвер аудиоустройства, чтобы устранить проблему, и проверить, помогает ли это исправить ошибку.

Устранение конфликта двух звуковых карт

Другие способы избавиться от ошибки

Возможно, вы столкнулись с критической ошибкой Kernel-Power, связанной с идентификатором события 41. Она обычно наблюдается в средстве просмотра событий Windows, в котором отображается журнал системных сообщений и сообщений приложения, включая предупреждения, информационные сообщения и ошибки. Часто в средстве просмотра событий отображается много ошибок, но, если ваш компьютер работает нормально, вы можете их игнорировать. Однако не следует игнорировать критическую ошибку Kernel-Power, так как она может повлиять на стабильность Windows. Щёлкните правой кнопкой мыши на ярлыке Мой компьютер и выберите Свойства-Дополнительные параметры системы-Параметры запуска и восстановления, и отключите параметр «Автоматически перезагружать» в разделе «Сбой системы». Откройте редактор реестра, набрав «regedit» в строке поиска или в диалоговом окне «Выполнить», и перейдите к следующему ключу:

HKEY_LOCAL_MACHINE/СИСТЕМА/ CurrentControlSetControlPower

Найдите REG_DWORD с именем «HibernateEnabled» в правой части окна, щёлкните его правой кнопкой мыши и выберите «Изменить». Измените его значение на 0.

Мы надеемся, что это руководство было полезным и помогло исправить критическую ошибку Kernel-Power (ID 41). Если ни один из методов, упомянутых выше, не решил проблему, это может быть связано с аппаратным обеспечением, и вам следует обратиться к специалисту по компьютерам для проверки системы. Если же вы уже сталкивались с подобной проблемой и смогли исправить ошибку, поделитесь с нашими читателями в комментариях под этой статьёй.

Обычно, критическую ошибку «kernel power» с кодом события «41» и категорией задачи «63» вызывают неисправные комплектующие или поврежденные системные файлы. В результате этого компьютер намертво зависает, выдает синий экран или автоматически перезагружается. Чаще всего это происходит при запуске требовательных игр или приложений. Стоит разобраться, по какой причине возникает ошибка «kernel power 41», и какие действия следует предпринять для ее устранения.

Содержание статьи

  1. Причины возникновения ошибки
  2. Разбираемся с драйверами
  3. Автоматическое обновление
  4. Ручное обновление
  5. Откат драйвера
  6. Настройка плана электропитания
  7. Отключение гибернации в Windows 10
  8. Проверка целостности файлов
  9. Устранение конфликта 2 звуковых карт
  10. Проверка оперативной памяти
  11. Сброс параметров BIOS
  12. Отключение автоматического перезапуска
  13. Другие варианты решения
  14. Видео по теме:
  15. Комментарии пользователей

Причины возникновения ошибки

К основным причинам появления «kernel power 41» можно отнести следующее:

  • Неправильные настройки Windows 10, 7.
  • Поврежденные драйвера или системные файлы.
  • Конфликты между комплектующими.
  • Сбившиеся настройки Биос.
  • Неисправность комплектующих «железа».
  • Программные сбои.
  • Перегрев компьютера.
  • Неудачный «разгон» системных компонентов (в особенности, это касается видеокарты).
  • Деятельность вредоносных программ.
  • Единовременное использование нескольких аудиокарт.

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

Разбираемся с драйверами

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

Автоматическое обновление

В этом случае все действия выполняются с помощью диспетчера устройств.

  1. Откройте «Выполнить» (Сделать этом можно нажатием клавиш «Win+R»), введите «msc», щелкните «ОК».
    devmgmt msc
  2. В списке установленного оборудования найдите ветку «Сетевые адаптеры» и откройте ее.
  3. Найдите наименование оборудования, кликните по названию правой кнопкой мыши и выберите «Обновить».обновление realtek для устранения kernel power 41
  4. В следующем окошке выберите «Автоматический поиск».автоматический поиск драйверов для исправления ошибки kernel power 41

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

Внимание! Альтернативным способом станет использование соответствующих программ.

Ручное обновление

Для этого потребуется предварительно загрузить свежую версию ПО с сайта материнской платы (если речь идет о сетевом оборудовании, например, «Realtek»).

  1. Перейдите в каталог загрузок и найдите скачанный файл.
  2. Дважды щелкните по файлу с расширением EXE.
  3. Следуйте указаниям мастера.

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

Откат драйвера

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

  1. Запустите диспетчер устройств.
  2. Кликните ПКМ по названию оборудования и выберите «Свойства».свойства realtek
  3. Перейдите на вкладку «Драйвер» и щелкните «Откатить».kernel power 41 вызывает обновленный драйвер
  4. Подтвердите действие и перезагрузите ПК.

Таким образом будет возвращена прежняя версия.

Совет: если кнопка «Откатить» неактивна, то попробуйте применить «Удалить устройство». Это действие напрочь удаляет устройство из системы. После рестарта вы сможете беспрепятственно установить более подходящую версию. Или Windows инсталлирует наиболее подходящее ПО с официального сайта Microsoft. Сделать оно должно это самостоятельно при повторном запуске компьютера.

Настройка плана электропитания

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

  1. Нажмите Win+R, введите control и щелкните «ОК».control в строке
  2. В панели кликните по пункту «Электропитание».электропитание в панели управления
  3. Зайдите в «Действие кнопок питания» и снимите галочку с быстрого запуска.действие кнопок питания
  4. Вернитесь в предыдущий раздел и отметьте пункт «Высокой производительности».в качестве решения проблемы kernel power 41 изменяем схему питания
  5. Щелкните по «Настройка схемы электропитания».
  6. Отключите функцию перехода в спящий режим.kernel power 41 появляется из-за спящего режима
  7. Далее кликните «Изменить дополнительные параметры».
  8. Разверните раздел с жестким диском и укажите в графе «Состояние» значение «0».причиной ошибки kernel power 41 становится выключение жесткого диска
  9. Выставите значение «99%» для максимального состояния процессора.регулируем мощность процессора для исправления kernel power 41
  10. Нажмите «ОК», закройте окна.

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

Отключение гибернации в Windows 10

Эта опция также влияет на работу компьютера (иногда в неприятном ключе). Особенно, если перед нами классический ПК, который на ночь отключается от электрической сети. В этом случае гибернацию действительно лучше выключить, поскольку она является генератором подобных ошибок. Для этого:

  1. Откройте редактор реестра через меню «Пуск» или найдите его в «Поиске», введя соответствующий запрос.редактор реестра
  2. Переместитесь в ветку HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPower.включенная гибернация способствует появлению kernel power 41
  3. Дважды кликните по параметру HibernateEnabled.
  4. Присвойте ему значение 0 и нажмите «ОК».
  5. Перезагрузите компьютер.

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

Проверка целостности файлов

Если важные файлы, были повреждены в результате деятельности вирусов, аппаратных проблем или сбоев, то проблемы типа kernel power 41 не заставят себя долго ждать. Нужно проверить целостность объектов и восстановить их.

  1. Откройте инструмент «Выполнить» (Win+R), введите в строке cmd и нажмите «CTRL + SHIFT + ENTER».пишем cmd
  2. В консоль вставьте команду «sfc /scannow» и щелкните «Enter». Это действие запустит процесс автоматической проверки.сканируем системные файлы на предмет ошибок для устранения kernel power 41
  3. После окончания процедуры и выдачи результатов выполните другую команду DISM.exe/Online/Cleanup-image/Restorehealth. Эта еще одна программа по восстановлению важных данных, требующая для работы доступ в интернет.избавляемся от ошибки kernel power 41 утилитой DISM
  4. Следом выполните chkdsk C: /f. Подтвердите действие, введя «Y» и щелкнув «Enter». Сканирование начнется автоматически после перезапуска.предотвращаем появление kernel power 41 командой chkdsk

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

Если поврежденные данные восстановить не удается, то выполните откат Windows 10 к начальной конфигурации. Зажмите Win+I, войдите «Обновление и безопасность», кликните по вкладке «Восстановление», найдите блок «Вернуть компьютер в исходное состояние». Нажмите кнопку «Начать». Для семерки можно воспользоваться классическим восстановлением с ранее созданными точками. Потребуется последовательно выполнить несколько действий: одновременно нажать клавиши «Win + R» – «rstrui.exe» – «ОК» – «Далее»).

Устранение конфликта 2 звуковых карт

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

  1. В строке «Выполнить» введите команду «devmgmt.msc» и нажмите Enter.
  2. Разверните раздел «Звуковые, игровые и видеоустройства».
  3. Найдите в списке повторяющееся оборудование и отключите его (ПКМ по имени устройства, далее «Отключить»).устраняем конфликт звуковых карт для предотвращения сбоя kernel power 41
  4. Выполните перезагрузку компьютера.

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

Проверка оперативной памяти

Ошибки в работе RAM приводят к появлению неполадок. Чаще всего такое наблюдается в играх или ресурсоемких приложениях, когда используется максимальное количество ресурсов. Нужно проверить оперативку на наличие ошибок.

В Windows 10 и 8 это делается следующим образом:

  1. В поиске введите «памяти» и откройте средство проверки.диагностика памяти
  2. В следующем окошке выберите «Выполнить перезагрузку и проверку».kernel power 41 появляется из-за поврежденной памяти

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

Для информации! Для проверки RAM можно использовать популярную утилиту «Memtest86». Скачать данную утилиту можно совершенно бесплатно, перейдя на официальный сайт разработчика. Единственный минус программы – она не поддерживает русский язык.

Сброс параметров BIOS

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

  1. Войдите в BIOS по инструкции.
  2. С помощью мышки, стрелок на клавиатуре или клавиш нажмите по опции «Load Setup Defaults» или «Optimized Defaults». В некоторых версиях она может иметь другие похожие названия.сброс конфигурации биос для исправления kernel power 41
  3. Подтвердите действие.

ПК сразу же перезагрузится и будет стартовать со стандартной конфигурацией BIOS.

Совет: если нет желания возиться с настройками, то есть другой способ их сбросить. Обесточьте ПК и вскройте корпус. Найдите на плате батарейку типа «таблетка», помечается маркировкой «CR2032» и аккуратно извлеките ее из держателя на 10 секунд. Затем верните обратно, закройте крышку и подключите питание. Конфигурация будет сброшена.

Отключение автоматического перезапуска

Радикальный способ, который следует использовать только в крайнем случае. Он не устранит ошибку kernel power 41, но избавит от постоянного перезапуска.

  1. Войдите в «Свойства» компьютера.свойства значка
  2. Выберите «Изменить параметры».изменение параметров
  3. Переместитесь во вкладку «Дополнительно» и в «Загрузке и восстановлении» кликните «Параметры».вкладка дополнительно
  4. Снимите галочку с «Автоматической перезагрузки».деактивация автоматического перезапуска избавит от kernel power 41

Другие варианты решения

Если ничего из рассмотренного ранее не помогло, то можно предложить альтернативные методы.

  • Переустановите драйвера на чипсет. Загрузить их можно с официального сайта материнской платы. Название своего чипсета можно увидеть в диспетчере устройств в разделе «Системные устройства».обновляем чипсет материнской платы для устранения kernel power с кодом 41
  • Установите актуальную версию BIOS.
  • Проверьте жесткий диск на битые сектора. При необходимости замените его.
  • Иногда ОС ведет себя так потому, что контакты планок оперативной памяти загрязнились или окислились. Рекомендуется их очистить при помощи обычного ластика. Откройте корпус, извлеките модули памяти и протрите контакты ластиком. Удалите остатки стирки, вставьте модули на место и включите компьютер.

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

  • Если в BIOS были применены определенные профили для разгона процессора или памяти (или же эти параметры менялись вручную), рекомендуется их отключить. Вероятно, оборудование не подходит для разгона или переусердствовали с конфигурацией. Отсюда и постоянные сбои при работе.
  • Если проблема появилась после инсталляции обновлений Windows 10, то нужно удалить все, что было установлено. Нажмите Win+I, перейдите в раздел «Обновление и безопасность», кликните по пункту «Просмотр журнала». Выберите кнопку «Удалить».
  • Некоторые защитные продукты умеют влиять на системные файлы. Проверить этот момент можно, временно отключив антивирус. В дальнейшем стоит установить менее агрессивный продукт.
  • Проверьте температуру процессора, видеокарты и прочих компонентов под нагрузкой и в простое. Лучше это делать в программе AIDA64 (скачать с официального сайта). Потребуется в программе перейти в раздел «Компьютер», категория «Датчики». Если температура зашкаливает, то нужно поменять термоинтерфейс между радиатором охлаждения и крышкой центрального процессора.
  • Не стоит исключать проблемы с блоком питания. Это оборудования выходит из строя постепенно, не дотягивая до максимально выдаваемой мощности. Именно поэтому неполадка проявляется только под нагрузкой. Выбирайте надежные БП с определенным цветом сертификата 80 PLUS.
  • Также возможна неисправность материнской платы. Тогда следует ее заменить.

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

Видео по теме:

Что такое критическая ошибка Kernel-Power

Kernel-Power — это достаточно непредсказуемая ошибка, информацию о которой можно увидеть журнале событий Windows. Windows описывает эту ошибку как результат перезагрузки системы ненадлежащим образом. В нем также указано, что эта ошибка может быть связана со сбоями системы, потерей питания и другими неожиданными проблемами, которые возникают по необъяснимым причинам. В подробных сведениях об ошибке пользователи могут увидеть ряд показателей, помогающих выявить проблему. Ошибка Kernel-Power обозначается Кодом 41, который указывает на неправильное завершение работы системы. Обычно такая ошибка появляется, когда Windows не может правильно завершить сеанс и принудительно перезагружается после последнего завершения работы. Как правило, такие проблемы возникают из-за сбоев в питании ПК. Это может быть связано с жесткими дисками, памятью и другими компонентами. Чтобы исправить это, есть несколько основных решений, которые помогли многим людям решить проблему. Следуйте нашим подробным инструкциям ниже.

kernel-power critical error

Скачать средство восстановления Windows

Скачать средство восстановления Windows

compatible with microsoft

Существуют специальные утилиты для восстановления Windows, которые могут решить проблемы, связанные с повреждением реестра, неисправностью файловой системы, нестабильностью драйверов Windows. Мы рекомендуем вам использовать Advanced System Repair Pro, чтобы исправить «Критическая ошибка ядра» в Windows 10.

1. Измените настройки питания

Лучше всего исправить проблему Kernel-Power путем изменения параметров питания. Поскольку можно изменить способ подачи питания Windows на каждое из устройств, это один из способов избавиться от проблемы. Ниже мы покажем вам изменения, которые необходимо внести, чтобы ваша система не завершала работу таким образом, как упоминалось ранее.

  1. Тип Параметры питания и спящего режима в строке поиска рядом с Меню Пуск.
  2. Откройте их и перейдите в Дополнительные параметры питания.
  3. Найдите выбранный вами план и нажмите Настройка схемы электропитания.
  4. Теперь нажмите Изменить дополнительные параметры питания.
  5. Найдите Жесткий диск . Щелкните по нему и затем выберите Отключать жесткий диск через.
  6. Измените оба От батареи и От сети варианты на Никогда и сохраните изменения, нажав Применить.
  7. Наконец, следует повторить предыдущий шаг, только с Сон после. Вы можете найти его, развернув вкладку Спящий режим из списка.

2. Обновите или откатите драйверы

Частью проблемы могут стать драйверы, которые не обновлялись очень давно. Из-за новых обновлений оборудования и программного обеспечения старые драйверы устаревают и становятся несовместимыми. Иногда драйверы могут быть установлены новые, но работать со сбоями из-за различных багов, которые упустили разработчики до выпуска обновлений. Windows может автоматически обновлять драйверы и информировать пользователей о низ в панели уведомлений. Вы можете обновить драйверы или откатить их, если ошибка возникла после недавнего обновления. Вы можете сделать это вручную, однако, если вы не хотите делать это самостоятельно, можно доверить эту задачу IOBIT Driver Booster — популярной утилите, специально разработанной для автоматической установки и замены неисправных драйверов. Вот ссылка для ее скачивания.

Driver Booster start screen

Стартовый экран Driver Booster

Driver Booster scan results

Результаты сканирования Driver Booster

Driver Booster tools section

Раздел инструментов Driver Booster

Скачать Driver Booster

Чтобы обновить драйверы вручную:

  1. Щелкните правой кнопкой мыши по значку Меню Пуск и выберите Диспетчер устройств.
  2. В открывшейся вкладке найдите неисправный драйвер (отмечен желтым треугольником) и откройте раскрывающееся меню.
  3. Найдите драйвер, щелкните на него правой кнопкой мыши, выберите Обновить драйвер и следуйте инструкциям на экране. Также вы можете выбрать Предложения и нажмите Откатить чтобы вернуть предыдущую версию устройства.
  4. Windows начнет поиск доступных обновлений и автоматически установит их на ваш компьютер.

3. Отключите одинаковые аудиодрайверы.

Еще одна часто встречающаяся причина ошибок Kernel-Power — одновременная работа идентичных аудиодрайверов. Некоторые пользователи говорят, что отключение ATI High Definition Audio Device может помочь решить проблему. Чтобы узнать, есть ли у вас одинаковые драйверы, выполните следующие действия.

  1. Как мы делали выше, откройте Диспетчер устройств.
  2. Из списка найдите Звуковые, игровые и видеоустройства .
  3. Разверните его и проверьте, есть ли там идентичные аудиодрайверы.
  4. Если да, нажмите на один из них правой кнопкой мыши и выберите Отключить.
  5. Некоторым людям удалось решить возникающую проблему после выполнения этих шагов. Если никакого результата это не дало, перейдите к другим методам ниже.

4. Отключите Быстрый запуск.

Быстрый запуск — это функция Windows, которая включена у каждого пользователя системы по умолчанию. Данная функция очень полезно, поскольку сокращает время запуска вашей системы. Другими словами, если эта опция включена, пользователи могут загружать свой компьютер быстрее, чем обычно. Когда эта функция включена, Windows не закрывается полностью, а перемещается в состояние между спящим режимом и выключением. К сожалению, если у вас включена функция быстрого запуска, это может вызвать конфликт между некоторыми устройствами. Это не означает, что все пользователи должны отключить эту функцию. Как мы уже упоминали ранее, данная функция не несет намеренного вреда вашей системы, однако у некоторых ПК пользователей она может вызывать соответствующие проблемы. Если вы все так же продолжаете сталкиваться с ошибкой Kernel-Power, стоит попробовать эти шаги:

  1. Перейдите на Параметры питания и спящего режима и Дополнительные параметры питания как мы делали в самом первом способе.
  2. Нажмите на Действия кнопок питания.
  3. Чуть выше Настроек кнопок питания и сна, выберите Изменение параметров, которые сейчас недоступны.
  4. Уже открытое окно обновится и откроет доступ к изменению необходимых значений.
  5. Снимите галочку с Включить быстрый запуск (рекомендуется) и нажмите Сохранить изменения.
  6. Как только вы завершите эти шаги, перезагрузите компьютер и проверьте, исчезла ли ошибка Kernel-Power.

5. Обновите BIOS

BIOS — это микросхема материнской платы, которая хранит настройки многих устройств. Такие вещи, как блок питания, оперативная память и процессор, работают исправно благодаря настройкам BIOS. Другими словами, он отвечает за правильную работу множества компонентов в вашей системе. К сожалению, иногда конфигурация BIOS может сбиться с правильных настроек, что приведет к различным проблемам. Дабы исправить это, пользователям рекомендуется обновить BIOS. Это можно сделать, посетив страницу производителя материнской платы и загрузив с нее нужные обновления. Обратите внимание, что это достаточно сложная и ответственная процедура, требующая внимания и необходимых навыков. Обязательно следуйте инструкциям по обновлению, прилагаемым на веб-сайте производителя. Если вы не делали этого раньше и не хотите рисковать, рекомендуем обратиться за профессиональной помощью квалифицированных специалистов.

6. Проверьте оборудование на наличие физических проблем.

Иногда устранить ошибки с помощью программной составляющей невозможно. Мы рекомендуем убедиться в том, что все компоненты правильно подключены к вашему ПК. Такие вещи, как Оперативная память, Процессор, Видеокарта и другие важные компоненты, могут быть плохо подключены к необходимым портам. Также проблема может возникнуть из-за скопления пыли на некоторых компонентах. Сильный слой пыли и другие элементы иногда могут препятствовать правильной работе оборудования. Поэтому стоит почистить компьютер от пыли, особенно если вы не делали этого очень давно.

Еще одна важная вещь, которую стоит упомянуть, — это температура. Если компоненты сильно греются, Windows намеренно вызывает аварийное отключение. Такой механизм был создан разработчиками с целью предотвращения возможных повреждений аппаратных компонентов. Вы можете проверить температуры с помощью утилит, которые отслеживают температуру во время использования вашего ПК или игры в видеоигры. Отличные и бесплатные программы для этого — Open Hardware Monitor, AIDA64 Extreme и многие другие, которые можно найти в Интернете.

Кроме всего упомянутого, есть такая важная вещь, как PSU (Блок питания). Очевидно он предназначен для подачи питания на внутренние компоненты вашего ПК. В некоторых случаях пользователи замечали, что их блок питания окислен из-за чего он не мог работать должным образом. Поэтому стоит проконсультироваться с ПК специалистами, которые помогут определит и исправить найденную проблему. Вместо ремонта, в большинстве случаев пользователи просто заменяют старый блок питания новым, поскольку это самый простой способ решения проблемы.

Итоги

Kernel-Power (номер 41) — довольно серьезная проблема, которая указывает на проблемы, связанные с питанием. Иногда их можно решить путем изменения определенных настроек, однако в других случаях такие ошибки могут вызвать довольно много хлопот. Предсказать, что такие ошибки появятся когда-нибудь в будущем невозможно. Важнее, как вы реагируете на эти проблемы в момент их возникновения. Мы надеемся, что вам удалось исправить ошибку в конце концов. Если ни один из шагов не помог, вы также можете просканировать свой компьютер на наличие вредоносных программ, поскольку они тоже могут вызывать на такие изменения.

Ядро Linux, как и другие программы может и выводит различные информационные сообщения и сообщения об ошибках. Все они выводятся в буфер сообщения ядра, так называемый kernel ring buffer. Основная причина существования этого буфера — надо сохранить сообщения, которые возникают во время загрузки системы пока сервис Syslog ещё не запущен и не может их собирать.

Для получения сообщений из этого буфера можно просто прочитать файл /var/log/dmesg. Однако, более удобно это можно сделать с помощью команды dmesg. В этой статье мы рассмотрим как пользоваться dmesg. Разберемся с опциями утилиты, а также приведем примеры работы с ней.

Синтаксис команды dmesg очень простой. Надо набрать имя команды и если необходимо, то опции:

$ dmesg опции

Опции позволяют управлять выводом, добавлять или скрывать дополнительную информацию и делать просмотр сообщений более удобным. Вот они:

  • -C, —clear — очистить буфер сообщений ядра;
  • -c, —read-clear — вывести сообщения из буфера ядра, а затем очистить его;
  • -d, —show-delta — выводит время прошедшее между двумя сообщениями;
  • -f, —facility — выводить только сообщения от подсистем определенной категории;
  • -H, —human — включить вывод, удобный для человека;
  • -k, —kernel — отображать только сообщения ядра;
  • -L, —color — сделать вывод цветным, автоматически включается при использовании опции -H;
  • -l, —level — ограничить вывод указанным уровнем подробности;
  • -P, —nopager — выводить информацию обычным текстом, не добавлять постраничную навигацию;
  • -r, —raw — печатать сообщения как есть, не убирая служебные префиксы;
  • -S, —syslog — использовать Syslog для чтения сообщений от ядра, по умолчанию используется файл /dev/kmsg;
  • -T, —ctime — выводить время в удобном для человека формате;
  • -t, —notime — не выводить время поступления сообщения;
  • -u, —userspace — показывать только сообщения от программ из пространства пользователя;
  • -w, —follow — после вывода всех сообщений не завершать программу, а ждать новых;
  • -x, —decode — выводить категорию и уровень журналирования в удобном для чтения формате.

Это далеко не все опции, а только самые интересные. Если вы хотите посмотреть другие, воспользуйтесь такой командой:

man dmesg

Поддерживаемые категории журналирования:

  • kern — сообщения от ядра;
  • user — сообщения от программ пространства пользователя;
  • mail — сообщения от сервисов почты;
  • daemon — сообщения от системных служб;
  • auth — сообщения безопасности и информации об авторизации пользователей;
  • syslog — сообщения, отправляемые сервисом Syslogd;
  • lpr — сообщения от служб печати.

А вот доступные уровни журналирования:

  • emerg — ошибка привела к неработоспособности системы;
  • alert — требуется вмешательство пользователя;
  • crit — критическая ошибка;
  • err — обычная ошибка;
  • warn — предупреждение;
  • notine — замечание;
  • info — информация;
  • debug — отладочное сообщение.

Примеры использования dmesg

Как вы уже поняли команда dmesg показывает не только сообщения от ядра, но и другие сообщения от системных служб, например, от системы инициализации systemd. Чтобы вывести вообще все сообщения выполните команду без опций:

dmesg

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

dmesg -T

Во время загрузки ядро тестирует оборудование и выводит подробную информацию о нём в буфер сообщений ядра. Таким образом, с помощью dmesg можно посмотреть информацию об оборудовании, просто отфильтруйте нужные данные, например CPU:

dmesg | grep CPU

Для того чтобы выводить только сообщения от ядра, а не всё под ряд, используйте опцию -k:

dmesg -k

Теперь в выводе утилиты не будет сообщений от Systemd. Если вы хотите выводить все сообщения ядра в реальном времени, используйте опцию -w:

dmesg -w

Для того чтобы добавить цвет к выводу и включить постраничную навигацию вместо вывода текста одним большим куском используйте опцию -H:

dmesg -H

Для того чтобы вывести категорию сообщения и его уровень логирования используйте опцию -x:

dmesg -x

Если вас интересуют только ошибки, можно отсеять их по уровню журналирования:

dmesg -l crit,err

Или только информационные сообщения:

dmesg -l warn

Можно вывести только сообщения, которые попали сюда из пространства пользователя, для этого используйте опцию -u:

dmesg -u

Или же отфильтруйте категории user и daemon с помощью опции -f:

dmesg -f user,daemon

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

dmesg -C

Выводы

В этой небольшой статье мы разобрали как пользоваться dmesg. Теперь вы знаете за что отвечает эта утилита, а также какие опции можно использовать.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Ядро Linux — это ядро ​​операционной системы, которое контролирует доступ к системным ресурсам, таким как процессор, устройства ввода-вывода, физическая память и файловые системы. Ядро записывает различные сообщения в кольцевой буфер ядра в процессе загрузки и во время работы системы. Эти сообщения содержат различную информацию о работе системы.

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

dmesg - Утилита командной строки используется для печати и управления кольцевого буфера ядра в Linux и других Unix-подобных операционных систем. Это полезно для изучения загрузочных сообщений ядра и устранения проблем, связанных с оборудованием.

Использование dmesg команды

Синтаксис dmesg команды следующий:

При вызове без каких-либо параметров dmesgзаписывает все сообщения из кольцевого буфера ядра в стандартный вывод:

dmesg

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

dmesg: read kernel buffer failed: Operation not permitted

    Параметр ядра kernel.dmesg_restrict указывает, могут ли непривилегированные пользователи dmesg просматривать сообщения из буфера журнала ядра. Чтобы снять ограничения, установите его на ноль:

sudo sysctl -w kernel.dmesg_restrict=0

    Обычно выходные данные содержат много строк информации, так что только последняя часть выходных данных является видимой. Чтобы увидеть одну страницу за раз, перенаправьте вывод в утилиту пейджера, такую ​​как less или more:

dmesg --color=always | less

--color=always Используется для сохранения цветного вывода.

    Если вы хотите фильтровать сообщения буфера, используйте grep. Например, чтобы просмотреть только сообщения, связанные с USB, вы должны набрать:

dmesg | grep -i usb


dmesg 
читает сообщения, сгенерированные ядром, из /proc/kmsg виртуального файла. Этот файл предоставляет интерфейс к кольцевому буферу ядра и может быть открыт только одним процессом. Если syslogв вашей системе запущен процесс, и вы пытаетесь прочитать файл с помощью cat, или less, команда зависнет.

syslog Демон отвалов сообщения ядра /var/log/dmesg, так что вы можете использовать этот файл журнала:

cat /var/log/dmesg

Форматирование dmesg вывода

Команда dmesgпредоставляет ряд опций, которые помогут вам отформатировать и отфильтровать вывод.

Одна из наиболее часто используемых опций dmesg— это -H ( --human), которая обеспечивает удобочитаемый вывод. Эта опция направляет вывод команды в пейджер:

dmesg -H

    Для печати удобочитаемых временных меток используйте опцию -T ( --ctime):

dmesg -T
[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

   Формат --time-format <format> отметок времени также может быть установлен с помощью параметра, который может быть ctime, reltime, delta, notime или iso. Например, чтобы использовать дельта-формат, введите:

dmesg --time-format=delta

    Вы также можете объединить два или более вариантов:

dmesg -H -T


    Чтобы просмотреть вывод dmesg команды в режиме реального времени, используйте параметр -w ( --follow):

dmesg --follow

Фильтрация dmesgвывода

Вы можете ограничить dmesg вывод данными объектами и уровнями.

Средство представляет процесс, который создал сообщение. dmesg поддерживает следующие возможности журнала:

  • kern — сообщения ядра
  • user — сообщения уровня пользователя
  • mail — почтовая система
  • daemon — системные демоны
  • auth — сообщения безопасности / авторизации
  • syslog — внутренние сообщения syslogd
  • lpr — подсистема линейного принтера
  • news — подсистема сетевых новостей

Опция -f( --facility <list>) позволяет ограничить вывод определенными объектами. Опция принимает одно или несколько разделенных запятыми объектов.

Например, для отображения только сообщений ядра и системных демонов вы должны использовать:

dmesg -f kern,daemon


    Каждое сообщение журнала связано с уровнем журнала, который показывает важность сообщения. dmesgподдерживает следующие уровни журнала:

  • emerg — система неработоспособна
  • alert — действие должно быть предпринято немедленно
  • crit — критические условия
  • err — условия ошибки
  • warn — условия предупреждения
  • notice — нормальное, но значимое состояние
  • info — информационный
  • debug — сообщения уровня отладки

Опция -l( --level <list>) ограничивает вывод определенными уровнями. Опция принимает один или несколько уровней, разделенных запятыми.

Следующая команда отображает только сообщения об ошибках и критические сообщения:

dmesg -l err,crit

Очистка кольцевого буфера

Опция -C( --clear) позволяет очистить кольцевой буфер:

sudo dmesg -C


    Только root или пользователи с привилегиями sudo могут очистить буфер.

Чтобы распечатать содержимое буфера перед очисткой, используйте параметр -c( --read-clear):

sudo dmesg -c

    Если вы хотите сохранить текущие dmesg журналы в файле перед его очисткой, перенаправьте вывод в файл:

dmesg > dmesg_messages

Вывод

Команда dmesgпозволяет вам просматривать и контролировать кольцевой буфер ядра. Это может быть очень полезно при устранении проблем с ядром или оборудованием.

Введите man dmesg в своем терминале информацию о всех доступных dmesg опциях.

Introduction

The dmesg command is a Linux utility that displays kernel-related messages retrieved from the kernel ring buffer. The ring buffer stores information about hardware, device driver initialization, and messages from kernel modules that take place during system startup.

The dmesg command is invaluable when troubleshooting hardware-related errors, warnings, and for diagnosing device failure.

In this tutorial, you will learn how to use the dmesg command in Linux.

How to use the dmesg Linux command.

Prerequisites

  • A computer system running Linux.
  • A user account with administrator privileges.

The basic dmesg command syntax is:

dmesg [options]

The table below lists the most commonly used dmesg options:

Option Description
-C, --clear Clears the ring buffer.
-c, --read-clear Prints the ring buffer contents and then clears.
-f, --facility [list] Restricts output to the specified comma-separated facility [list].
-H, --human Enables a human-readable output.
-L, --color[=auto|never|always] Adds color to the output. Omitting the [auto|never|always] arguments defaults to auto.
-l, --level [list] Restricts the output to the specified comma-separated level list.
--noescape Disables the feature of automatically escaping unprintable and potentially unsafe characters.
-S, --syslog Instructs dmesg to use the syslog kernel interface to read kernel messages. The default is to use /dev/kmsg instead of syslog.
-s, --buffer-size [size] Uses the specified buffer size to query the kernel ring buffer. The default value is 16392.
-T, --ctime Prints human-readable timestamps.
-t, --notime Instructs dmesg not to print kernel’s timestamps.
--time-format [format] Prints timestamps using the specified [format]. The accepted formats are ctime, reltime, delta, and iso (a dmesg implementation of the ISO-8601 format).
-w, --follow Keeps dmesg running and waiting for new messages. The feature is available only on systems with a readable /dev/kmsg file.
-x, --decode Decodes the facility and level numbers to human-readable prefixes.
-h, --help Displays the help file with all the available options.

Linux dmesg Command Examples

The examples are common dmesg command use cases.

Display All Messages from Kernel Ring Buffer

Invoking dmesg without any options outputs the entire kernel buffer, without stops, and with no way to navigate the output.

sudo dmesg

A partial output of the Linux dmesg command.

The example above is a partial dmesg command output. For easier navigation and better readability, pipe the dmesg output into a terminal pager such as less, more, or use grep.

For example:

sudo dmesg | less

Piping dmesg into less for easier navigation.

Piping dmesg into less allows you to use the search function to locate and highlight items. Activate search by pressing /. Navigate to the next screen using the Space bar, or reverse using the B key. Exit the output by pressing Q.

Display Colored Messages

By default, dmesg produces a colored output. If the output isn’t colored, use the -L option to colorize it.

sudo dmesg -L

Adding color to dmesg output.

To turn off colored outputs, append the --color=never option to dmesg. Run the following command:

sudo dmesg --color=never

Removing color from dmesg output.

The default dmesg output is now uniform in color.

Display Messages as They Arrive

Monitor the kernel ring buffer in real-time using the --follow option. The option instructs the command to wait for new messages related to hardware or kernel modules after system startup.

Run the following dmesg command to enable real-time kernel ring buffer monitoring:

sudo dmesg --follow

The command displays any new messages at the bottom of the terminal window. Stop the process using Ctrl+C.

Search for a Specific Term

When searching for specific issues or hardware messages, pipe the dmesg output into grep to search for a particular string or pattern.

For example, if you are looking for messages about memory, run the following command:

dmesg | grep -i memory

Searching for a specific term in the dmesg log.

The output shows all the lines from the buffer containing the memory string. The -i (ignore case) switch ignores care sensitivity.

Alternatively, if you are looking for buffer messages about USB, serial ports, network, or hard drives, run the following commands:

USB

dmesg | grep -i usb

Serial Ports

dmesg | grep -i tty

Network

dmesg | grep -i eth

Hard Drives

sudo dmesg | grep -i sda

Search for multiple terms at once by appending the -E option to grep and providing the search terms encased in quotations, separated by pipe delimiters. For example:

sudo dmesg | grep -E "memory|tty"

Searching for multiple terms in the dmesg log.

The output prints all the messages containing any of the search terms.

Read and Clear dmesg Logs

The -c (--read-clear) option lets you clear the dmesg log after printing it. Clearing the buffer ensures you have only valid messages from the latest reboot.

Note: To save the entire log in a file before clearing it, redirect the output to a file with sudo dmesg > log_file.

Run the following command:

sudo dmesg -c

Rerunning dmesg has no output since the log has been cleared.

Clearing the dmesg log.

Enable Timestamps in dmesg Logs

Enable timestamps in dmesg output by appending it with the -H (--human) option, which produces a human-readable output and automatically pipes the output into a pager (less).

Run the following command:

sudo dmesg -H

Enabling log message timestamps in the dmesg output.

The command adds a timestamp with the date and time resolved in minutes. The events in the same minute are labeled with seconds and nanoseconds.

Quit the pager by pressing Q.

Enable Human-Readable Timestamps

Enable human-readable timestamps using the -T (--ctime) option. The option removes the nanosecond accuracy from the output, but the timestamps are easier to follow.

sudo dmesg -T

Generating human-readable timestamps in the dmesg command output.

The timestamps in the output are standard dates and time, and the resolution is in minutes. The same timestamp is prepended to each action that occurred in the same minute.

Note: Unlike the -H option, the -T option doesn’t automatically invoke less.

Choose Timestamp Format

Use the --time-format [format] option to choose the timestamp format. The available formats are:

  • ctime
  • reltime
  • delta
  • notime
  • iso

For example, to use the iso format, run:

sudo dmesg --time-format=iso

Changing the format of dmesg timestamps.

The timestamp format is now YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC>.

Note: The iso and ctime may show inaccurate time when the system is suspended and resumed.

Limit dmesg Output to a Specific Facility

Filter the dmesg output to a specific category using the -f option. The system groups messages in the kernel ring buffer into the following facilities (categories):

  • kern. Kernel messages.
  • user. User-level messages.
  • mail. Mail system messages.
  • daemon. Messages about system daemons.
  • auth. Authorization messages.
  • syslog. Internal syslogd messages.
  • lpr. Line printer subsystem messages.
  • news. Network news subsystem messages.

For example, the following command limits the output to messages related to the syslog facility:

sudo dmesg -f syslog

Showing log messages from a single facility in dmesg output.

To list messages from more than one facility, specify a comma-separated list of facilities. For example:

sudo dmesg -f syslog,daemon

Showing log messages from multiple facilities in dmesg.

Filter Log Levels

The dmesg command associates each buffer message with a log level characterizing message importance. The available levels are:

  • emerg. Emergency messages.
  • alert. Alerts requiring immediate action.
  • crit. Critical conditions.
  • err. Error messages.
  • warn. Warning messages.
  • notice. Normal but significant conditions.
  • info. Informational messages.
  • debug. Debugging-level messages.

Instruct dmesg to print only the messages matching a certain level using the -l option, followed by the level name. For example:

sudo dmesg -l info

Filtering dmesg output to print only a certain log level messages.

The example above extracts only informational messages from the log.

Combine multiple levels in a comma-separated list to retrieve messages from those levels. For example:

sudo dmesg -l notice,warn

Filtering dmesg output to print messages from multiple log levels.

The output combines messages from the specified log levels.

Combining Facility and Level

Explicitly show each buffer message’s facility and log level at the start of each line using the -x (decode) option.

For example:

sudo dmesg -x

Using the decode option in dmesg.

In the example above, each line is prepended with the appropriate facility and log level.

Read dmesg Log File

Each time the system boots up, the messages from the kernel ring buffer are stored in the /var/log/dmesg file. The dmesg command shows the log file contents. If you have issues using the dmesg command, open the log file in a text editor to view the contents.

In the example below, we use the cat command to view the log file and pipe it into grep to search for a particular string occurring in the log:

cat dmesg | grep amd

Reading the dmesg log file using the cat command.

The command outputs all amd string instances in the log file.

Check for a CD Drive

Check if a remote machine is equipped with a CD drive by inspecting the buffer message log. For example, the following command shows all messages about CD devices initialized on startup:

sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'

Determining device types

The results display information about the available CD-ROM drives, including the virtual CD-ROM drive on this machine.

Remove sudo Requirement

Removing the requirement for superuser privileges allows any user to run dmesg and view kernel ring buffer messages. Run the following command to remove the sudo requirement:

sudo sysctl -w kernel.dmesg_restrict=0

Remove the sudo requirement

After setting the restrictions to 0, any user on the system can run dmesg.

Conclusion

This guide explained how to use the Linux dmesg command to view and control the kernel ring buffer. The utility is convenient when troubleshooting kernel or hardware issues.

For further reading, we recommend our tutorial on updating the Linux kernel in Ubuntu or checking the Kernel version in Linux.

Kdump

Хотя в современных Linux-системах ядро отличается достаточно высоким уровнем стабильности, вероятность серьезных системных ошибок, тем не менее, имеется всегда. Когда происходит неисправимая ошибка, имеет место состояние, называемое паникой ядра (kernel panic): стандартный обработчик выводит на экран информацию, которая должна помочь в устранении неисправности, и входит в бесконечный цикл.

Для диагностики и анализа причин сбоев ядра разработчиками компании RedHat был разработан специализированный инструмент — kdump. Принцип его работы можно кратко описать следующим образом. Создается два ядра: основное и аварийное (именно оно используется для сбора дампа памяти). При загрузке основного ядра под аварийное ядро выделяется определенный размер памяти. При помощи kexec во время паники основного ядра загружается аварийное и собирает дамп.

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

Установка и настройка kdump

Установим kdump с помощью команды

$ sudo apt-get install linux-crashdump kdump-tools

Настройки kdump хранятся в конфигурационном файле /etc/default/kdump-tools

# kdump-tools configuration
# ---------------------------------------------------------------------------
# USE_KDUMP - controls kdump will be configured
#     0 - kdump kernel will not be loaded
#     1 - kdump kernel will be loaded and kdump is configured
# KDUMP_SYSCTL - controls when a panic occurs, using the sysctl
#     interface.  The contents of this variable should be the
#     "variable=value ..." portion of the 'sysctl -w ' command.
#     If not set, the default value "kernel.panic_on_oops=1" will
#     be used.  Disable this feature by setting KDUMP_SYSCTL=" "
#     Example - also panic on oom:
#         KDUMP_SYSCTL="kernel.panic_on_oops=1 vm.panic_on_oom=1"
#
USE_KDUMP=1
# KDUMP_SYSCTL="kernel.panic_on_oops=1"

Чтобы активировать kdump, отредактируем этот файл и установим значение параметра USE_KDUMP=1.
Также в конфигурационном файле содержатся следующие параметры:

  • KDUMP_KERNEL — полный путь к аварийному ядру;
  • KDUMP_INITRD — полный путь к initrd аварийного ядра;
  • KDUMP_CORE — указывает, где будет сохранен файл дампа ядра. По умолчанию дамп сохраняется в директории /var/crash (KDUMP_CORE=/var/crash);
  • KDUMP_FAIL_CMD — указывает, какое действие нужно совершить в случае ошибки при сохранении дампа (по умолчанию будет выполнена команда reboot -f);
  • DEBUG_KERNEL — отладочная версия работающего ядра. По умолчанию используются /usr/lib/debug/vmlinux-$. Если значение этого параметра не установлено, утилита makedumpfile создаст только дамп всех страниц памяти;
  • MAKEDUMP_ARGS — содержит дополнительные аргументы, передаваемые утилите makedumpfile. По умолчанию этот параметр имеет значение ‘-c -d 31’, указывающую, что необходимо использовать сжатие и включать в дамп только используемые страницы ядра.

Установив все необходимые параметры, выполним команду update-grub и выберем install the package maintainer’s version.

Затем перезагрузим систему и убедимся в том, что kdump готов к работе:

$ cat/proc/cmdline

BOOT_IMAGE=/boot/vmlinuz-3.8.0-35-generic root=UUID=bb2ba5e1-48e1-4829-b565-611542b96018 ro crashkernel=384 -:128M quiet splash vt.handoff=7

Обратим особое внимание на параметр crashkernel=384 -:128M. Он означает, что аварийное ядро будет использовать 128 Мб памяти при загрузке. Можно прописать в grub параметр crashkernel = auto: в этом случае память под аварийное ядро будет выделяться автоматически.

Для того, чтобы мы могли анализировать дамп с помощью утилиты crash, нам понадобится также файл vmlinux, содержащий отладочную информацию:

$ sudo tee /etc/apt/sources.list.d/ddebs.list << EOF
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)          main restricted universe multiverse
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-updates  main restricted universe multiverse
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-proposed main restricted universe multiverse
EOF
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01
$ sudo apt-get update
$ sudo apt-get install linux-image-$(uname -r)-dbgsym

По завершении установки еще раз проверим статус kdump:

$ kdump-config status

Если kdump находится в рабочем состоянии, на консоль будет выведено следующее сообщение:

current state: ready to kdump

Тестируем kdump

Вызовем панику ядра при помощи следующих команд:

echo c | sudo tee /proc/sysrq-trigger

В результате их выполнения система «зависнет».

После этого в течение нескольких минут будет создан дамп, который будет доступен в директории /var/crash после перезагрузки.

Информацию о сбое ядра можно просмотреть с помощью утилиты crash:

$ sudo crash /usr/lib/debug/boot/vmlinux-3.13.0-24-generic /var/crash/201405051934/dump.201405051934
crash 7.0.3
Copyright (C) 2002-2013  Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
Copyright (C) 1999-2006  Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011  NEC Corporation
Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions.  Enter "help copying" to see the conditions.
This program has absolutely no warranty.  Enter "help warranty" for details.

GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu"...

      KERNEL: /usr/lib/debug/boot/vmlinux-3.13.0-24-generic
    DUMPFILE: /var/crash/201405051934/dump.201405051934  [PARTIAL DUMP]
        CPUS: 4
        DATE: Mon May  5 19:34:38 2014
      UPTIME: 00:54:46
LOAD AVERAGE: 0.14, 0.07, 0.05
       TASKS: 495
    NODENAME: Ubuntu
     RELEASE: 3.13.0-24-generic
     VERSION: #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014
     MACHINE: x86_64  (2675 Mhz)
      MEMORY: 8 GB
       PANIC: "Oops: 0002 [#1] SMP " (check log for details)
         PID: 7826
     COMMAND: "tee"
        TASK: ffff8800a2ef8000  [THREAD_INFO: ffff8800a2e68000]
         CPU: 2
       STATE: TASK_RUNNING (PANIC)

crash>

На основе приведенного вывода мы можем заключить, что системному сбою предшествовало событие «Oops: 0002 [#1] SMP», произошедшее на CPU2 при выполнении команды tee.
Утилита crash обладает также широким спектром возможностей для диагностики причин краха ядра. Рассмотрим их более подробно.

Диагностика причин сбоя с помощью утилиты crash

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

В утилите crash имеется свой набор команд:

$ crash> help
*              files          mach           repeat         timer          
alias          foreach        mod            runq           tree           
ascii          fuser          mount          search         union          
bt             gdb            net            set            vm             
btop           help           p              sig            vtop           
dev            ipcs           ps             struct         waitq          
dis            irq            pte            swap           whatis         
eval           kmem           ptob           sym            wr             
exit           list           ptov           sys            q              
extend         log            rd             task           

crash version: 7.0.3    gdb version: 7.6
For help on any command above, enter "help <command>".
For help on input options, enter "help input".
For help on output options, enter "help output".

crash>

Для каждой этой команды можно вызвать краткий мануал, например:

crash> help set

Все команды мы описывать не будем (с детальной информацией можно ознакомиться в официальном руководстве пользователя от компании RedHat), а расскажем лишь о наиболее важных из них.

В первую очередь следует обратить внимание на команду bt (аббревиатура от backtrace — обратная трассировка). С ее помощью можно посмотреть детальную информацию о содержании памяти ядра (подробности и примеры использования см. здесь). Однако во многих случаях для определения причины системного сбоя бывает вполне достаточно команды log, выводящее на экран содержимое буфера сообщений ядра в хронологическом порядке.

Приведем фрагмент ее вывода:

[ 3288.251955] CPU: 2 PID: 7826 Comm: tee Tainted: PF          O 3.13.0-24-generic #46-Ubuntu
[ 3288.251957] Hardware name: System manufacturer System Product Name/P7P55D LE, BIOS 2003    12/16/2010
[ 3288.251958] task: ffff8800a2ef8000 ti: ffff8800a2e68000 task.ti: ffff8800a2e68000
[ 3288.251960] RIP: 0010:[<ffffffff8144de76>]  [<ffffffff8144de76>] sysrq_handle_crash+0x16/0x20
[ 3288.251963] RSP: 0018:ffff8800a2e69e88  EFLAGS: 00010082
[ 3288.251964] RAX: 000000000000000f RBX: ffffffff81c9f6a0 RCX: 0000000000000000
[ 3288.251965] RDX: ffff88021fc4ffe0 RSI: ffff88021fc4e3c8 RDI: 0000000000000063
[ 3288.251966] RBP: ffff8800a2e69e88 R08: 0000000000000096 R09: 0000000000000387
[ 3288.251968] R10: 0000000000000386 R11: 0000000000000003 R12: 0000000000000063
[ 3288.251969] R13: 0000000000000246 R14: 0000000000000004 R15: 0000000000000000
[ 3288.251971] FS:  00007fb0f665b740(0000) GS:ffff88021fc40000(0000) knlGS:0000000000000000
[ 3288.251972] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3288.251973] CR2: 0000000000000000 CR3: 00000000368fd000 CR4: 00000000000007e0
[ 3288.251974] Stack:
[ 3288.251975]  ffff8800a2e69ec0 ffffffff8144e5f2 0000000000000002 00007fff3cea3850
[ 3288.251978]  ffff8800a2e69f50 0000000000000002 0000000000000008 ffff8800a2e69ed8
[ 3288.251980]  ffffffff8144eaff ffff88021017a900 ffff8800a2e69ef8 ffffffff8121f52d
[ 3288.251983] Call Trace:
[ 3288.251986]  [<ffffffff8144e5f2>] __handle_sysrq+0xa2/0x170
[ 3288.251988]  [<ffffffff8144eaff>] write_sysrq_trigger+0x2f/0x40
[ 3288.251992]  [<ffffffff8121f52d>] proc_reg_write+0x3d/0x80
[ 3288.251996]  [<ffffffff811b9534>] vfs_write+0xb4/0x1f0
[ 3288.251998]  [<ffffffff811b9f69>] SyS_write+0x49/0xa0
[ 3288.252001]  [<ffffffff8172663f>] tracesys+0xe1/0xe6
[ 3288.252002] Code: 65 34 75 e5 4c 89 ef e8 f9 f7 ff ff eb db 0f 1f 80 00 00 00 00 66 66 66 66 90 55 c7 05 94 68 a6 00 01 00 00 00 48 89 e5 0f ae f8 <c6> 04 25 00 00 00 00 01 5d c3 66 66 66 66 90 55 31 c0 c7 05 be 
[ 3288.252025] RIP  [<ffffffff8144de76>] sysrq_handle_crash+0x16/0x20
[ 3288.252028] RSP <ffff8800a2e69e88>
[ 3288.252029] CR2: 0000000000000000

В одной из строк вывода будет указано событие, вызвавшее системную ошибку:

[ 3288.251889] SysRq: Trigger a crash

С помощью команды ps можно вывести на экран список процессов, которые были запущены на момент сбоя:

crash> ps
   PID    PPID  CPU       TASK        ST  %MEM     VSZ    RSS  COMM
      0      0   0  ffffffff81a8d020  RU   0.0       0      0  [swapper]
      1      0   0  ffff88013e7db500  IN   0.0   19356   1544  init
      2      0   0  ffff88013e7daaa0  IN   0.0       0      0  [kthreadd]
      3      2   0  ffff88013e7da040  IN   0.0       0      0  [migration/0]
      4      2   0  ffff88013e7e9540  IN   0.0       0      0  [ksoftirqd/0]
      7      2   0  ffff88013dc19500  IN   0.0       0      0  [events/0]

Для просмотра информации об использовании виртуальной памяти используется команда vm:

crash> vm
PID: 5210   TASK: ffff8801396f6aa0  CPU: 0   COMMAND: "bash"
       MM              		 PGD          RSS    TOTAL_VM
ffff88013975d880  ffff88013a0c5000  1808k   108340k
      VMA           START       END     FLAGS FILE
ffff88013a0c4ed0     400000     4d4000 8001875 /bin/bash
ffff88013cd63210 3804800000 3804820000 8000875 /lib64/ld-2.12.so
ffff880138cf8ed0 3804c00000 3804c02000 8000075 /lib64/libdl-2.12.so

Команда swap выведет на консоль информацию об использовании области подкачки:

crash> swap
FILENAME           TYPE         SIZE      USED   PCT  PRIORITY
/dm-1            PARTITION    2064376k       0k   0%     -1

Информацию о прерываниях CPU можно просмотреть с помощью команды irq:

crash> irq -s
           CPU0
  0:        149  IO-APIC-edge     timer
  1:        453  IO-APIC-edge     i8042
  7:          0  IO-APIC-edge     parport0
  8:          0  IO-APIC-edge     rtc0
  9:          0  IO-APIC-fasteoi  acpi
 12:        111  IO-APIC-edge     i8042
 14:        108  IO-APIC-edge     ata_piix

Вывести на консоль список файлов, открытых на момент сбоя, можно с помощью команды files:

crash> files
PID: 5210   TASK: ffff8801396f6aa0  CPU: 0   COMMAND: "bash"
ROOT: /    CWD: /root
 FD       FILE            DENTRY           INODE       TYPE PATH
  0 ffff88013cf76d40 ffff88013a836480 ffff880139b70d48 CHR  /tty1
  1 ffff88013c4a5d80 ffff88013c90a440 ffff880135992308 REG  /proc/sysrq-trigger
255 ffff88013cf76d40 ffff88013a836480 ffff880139b70d48 CHR  /tty1

Наконец, получить в сжатом виде информацию об общем состоянии системы можно с помощью команды sys:

crash> sys
      KERNEL: /usr/lib/debug/lib/modules/2.6.32-431.5.1.el6.x86_64/vmlinux
    DUMPFILE: /var/crash/127.0.0.1-2014-03-26-12:24:39/vmcore  [PARTIAL DUMP]
        CPUS: 1
        DATE: Wed Mar 26 12:24:36 2014
      UPTIME: 00:01:32
LOAD AVERAGE: 0.17, 0.09, 0.03
       TASKS: 159
    NODENAME: elserver1.abc.com
     RELEASE: 2.6.32-431.5.1.el6.x86_64
     VERSION: #1 SMP Fri Jan 10 14:46:43 EST 2014
     MACHINE: x86_64  (2132 Mhz)
      MEMORY: 4 GB
       PANIC: "Oops: 0002 [#1] SMP " (check log for details)

Заключение

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

Для желающих узнать больше — несколько полезных ссылок:

  • Документация kdump на сайте kernel.org
  • Книга, целиком посвященная проблемам диагностики сбоев ядра
  • Подробная документация для утилиты crash

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

The ‘dmesg‘ command displays the messages from the kernel ring buffer. A system passes multiple runlevel from where we can get lot of information like system architecture, cpu, attached device, RAM etc. When computer boots up, a kernel (core of an operating system) is loaded into memory. During that period number of messages are being displayed where we can see hardware devices detected by kernel.

Read Also: 10 Linux Commands to Collect System and Hardware Information

dmesg Command Examples

dmesg Command Examples

The messages are very important in terms of diagnosing purpose in case of device failure. When we connect or disconnect hardware device on the system, with the help of dmesg command we come to know detected or disconnected information on the fly. The dmesg command is available on most Linux and Unix based Operating System.

Let’s throw some light on most famous tool called ‘dmesg’ command with their practical examples as discussed below. The exact syntax of dmesg as follows.

# dmseg [options...]

1. List all loaded Drivers in Kernel

We can use text-manipulation tools i.e. ‘more‘, ‘tail‘, ‘less‘ or ‘grep‘ with dmesg command. As output of dmesg log won’t fit on a single page, using dmesg with pipe more or less command will display logs in a single page.

[[email protected] ~]# dmesg | more
[[email protected] ~]# dmesg | less
Sample Output
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.11.0-13-generic ([email protected]) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 17:26:33 UTC 2013 
(Ubuntu 3.11.0-13.20-generic 3.11.6)
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable
[    0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fed003ff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed20000-0x00000000fed9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
.....

Read Also: Manage Linux Files Effectively using commands head, tail and cat

2. List all Detected Devices

To discover which hard disks has been detected by kernel, you can search for the keyword “sda” along with “grep” like shown below.

[[email protected] ~]# dmesg | grep sda

[    1.280971] sd 2:0:0:0: [sda] 488281250 512-byte logical blocks: (250 GB/232 GiB)
[    1.281014] sd 2:0:0:0: [sda] Write Protect is off
[    1.281016] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.281039] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.359585]  sda: sda1 sda2 < sda5 sda6 sda7 sda8 >
[    1.360052] sd 2:0:0:0: [sda] Attached SCSI disk
[    2.347887] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   22.928440] Adding 3905532k swap on /dev/sda6.  Priority:-1 extents:1 across:3905532k FS
[   23.950543] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
[   24.134016] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)
[   24.330762] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[   24.561015] EXT4-fs (sda8): mounted filesystem with ordered data mode. Opts: (null)

NOTE: The ‘sda’ first SATA hard drive, ‘sdb’ is the second SATA hard drive and so on. Search with ‘hda’ or ‘hdb’ in the case of IDE hard drive.

3. Print Only First 20 Lines of Output

The ‘head’ along with dmesg will show starting lines i.e. ‘dmesg | head -20’ will print only 20 lines from the starting point.

[[email protected] ~]# dmesg | head  -20

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.11.0-13-generic ([email protected]) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 17:26:33 UTC 2013 (Ubuntu 3.11.0-13.20-generic 3.11.6)
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable
[    0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reserved

4. Print Only Last 20 Lines of Output

The ‘tail’ along with dmesg command will print only 20 last lines, this is useful in case we insert removable device.

[[email protected] ~]# dmesg | tail -20

parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
ppdev: user-space parallel port driver
EXT4-fs (sda1): mounted filesystem with ordered data mode
Adding 2097144k swap on /dev/sda2.  Priority:-1 extents:1 across:2097144k
readahead-disable-service: delaying service auditd
ip_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Slow work thread pool: Starting up
Slow work thread pool: Ready
FS-Cache: Loaded
CacheFiles: Loaded
CacheFiles: Security denies permission to nominate security context: error -95
eth0: no IPv6 routers present
type=1305 audit(1398268784.593:18630): audit_enabled=0 old=1 auid=4294967295 ses=4294967295 res=1
readahead-collector: starting delayed service auditd
readahead-collector: sorting
readahead-collector: finished

5. Search Detected Device or Particular String

It’s difficult to search particular string due to length of dmesg output. So, filter the lines with are having string like ‘usb‘ ‘dma‘ ‘tty‘ and ‘memory‘ etc. The ‘-i’ option instruct to grep command to ignore the case (upper or lower case letters).

[[email protected] log]# dmesg | grep -i usb
[[email protected] log]# dmesg | grep -i dma
[[email protected] log]# dmesg | grep -i tty
[[email protected] log]# dmesg | grep -i memory
Sample Output
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] initial memory mapped: [mem 0x00000000-0x01ffffff]
[    0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000] init_memory_mapping: [mem 0x37800000-0x379fffff]
[    0.000000] init_memory_mapping: [mem 0x34000000-0x377fffff]
[    0.000000] init_memory_mapping: [mem 0x00100000-0x33ffffff]
[    0.000000] init_memory_mapping: [mem 0x37a00000-0x37bfdfff]
[    0.000000] Early memory node ranges
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x000effff]
[    0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 2003288K/2059928K available (6352K kernel code, 607K rwdata, 2640K rodata, 880K init, 908K bss, 56640K reserved, 1146920K highmem)
[    0.000000] virtual kernel memory layout:
[    0.004291] Initializing cgroup subsys memory
[    0.004609] Freeing SMP alternatives memory: 28K (c1a3e000 - c1a45000)
[    0.899622] Freeing initrd memory: 23616K (f51d0000 - f68e0000)
[    0.899813] Scanning for low memory corruption every 60 seconds
[    0.946323] agpgart-intel 0000:00:00.0: detected 32768K stolen memory
[    1.360318] Freeing unused kernel memory: 880K (c1962000 - c1a3e000)
[    1.429066] [drm] Memory usable by graphics device = 2048M

6. Clear dmesg Buffer Logs

Yes, we can clear dmesg logs if required with below command. It will clear dmesg ring buffer message logs till you executed the command below. Still you can view logs stored in ‘/var/log/dmesg‘ files. If you connect any device will generate dmesg output.

[[email protected] log]# dmesg -c

7. Monitoring dmesg in Real Time

Some distro allows command ‘tail -f /var/log/dmesg’ as well for real time dmesg monitoring.

[[email protected] log]# watch "dmesg | tail -20"

Conclusion: The dmesg command is useful as dmesg records all the system changes done or occur in real time. As always you can man dmesg to get more information.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Команда dmesg позволяет вам заглянуть в скрытый мир процессов запуска Linux. Просматривайте и отслеживайте сообщения аппаратных устройств и драйверов из собственного кольцевого буфера ядра с помощью «друга поисковика ошибок».

В Linux и Unix-подобных компьютерах загрузка и запуск — это две отдельные фазы последовательности событий, которые происходят при включении компьютера.

Процессы загрузки (BIOS или же UEFI, MBR, и GRUB) довести инициализацию системы до момента, когда ядро ​​загружается в память и подключается к начальному ramdisk (initrd или initramfs), и systemd запущен.

Затем процессы запуска принимают эстафету и завершают инициализацию операционной системы. На самых ранних этапах инициализации такие демоны ведения журнала, как syslogd или же rsyslogd еще не запущены. Чтобы избежать потери заметных сообщений об ошибках и предупреждений на этом этапе инициализации, ядро ​​содержит кольцевой буфер что он использует как хранилище сообщений.

Кольцевой буфер — это область памяти, зарезервированная для сообщений. Он прост по конструкции и имеет фиксированный размер. Когда он заполнен, новые сообщения перезаписывают самые старые сообщения. Концептуально это можно рассматривать как «кольцевой буфер. »

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

Но не уходите с пустыми руками. Возьмите dmesg с собой.

Команда dmesg

Команда dmesg позволяет вам для просмотра сообщений, хранящихся в кольцевом буфере. По умолчанию для использования dmesg необходимо использовать sudo.

sudo dmesg

Все сообщения в кольцевом буфере отображаются в окне терминала.

Вывод из sudo dmesg в окне терминала

Это был потоп. Очевидно, что нам нужно сделать это через меньше:

sudo dmesg | less

sudo dmesg | меньше в окне терминала

Теперь мы можем прокручивать сообщения в поисках интересующих элементов.

вывод dmesg меньше в окне терминала

Вы можете использовать функцию поиска в less, чтобы найти и выделить интересующие вас элементы и термины. Запустите функцию поиска, нажав клавишу с косой чертой «/» в less.

Устранение необходимости в sudo

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

sudo sysctl -w kernel.dmesg_restrict=0

sudo sysctl -w kernel.dmesg_restrict = 0 в окне терминала

Принудительный вывод цвета

По умолчанию dmesg, вероятно, будет настроен на цветной вывод. Если это не так, вы можете указать dmesg раскрасить свой вывод с помощью параметра -L (цвет).

sudo dmesg -L

sudo dmesg -L в окне терминала

Чтобы заставить dmesg всегда по умолчанию использовать цветной дисплей, используйте эту команду:

sudo dmesg --color=always

sudo dmesg --color = всегда в окне терминала

Метки времени человека

По умолчанию dmesg использует обозначение времени в секундах и наносекунды с момента запуска ядра. Чтобы отобразить это в более удобном для человека формате, используйте параметр -H (человек).

sudo dmesg -H

sudo dmesg -H в окне терминала

Это вызывает две вещи.

вывод sudo dmesg -H в окне терминала

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

Метки времени, удобочитаемые человеком

Если вам не нужна наносекундная точность, но вам нужны метки времени, которые легче читать, чем значения по умолчанию, используйте параметр -T (человекочитаемый). (Это немного сбивает с толку. -H — «человеческий» вариант, -T — «человекочитаемый» вариант.)

sudo dmesg -T

sudo dmesg -T в окне терминала

Метки времени отображаются как стандартные даты и время, но разрешение снижено до минуты.

вывод sudo dmesg -T в окне терминала

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

Просмотр прямых трансляций

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

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

sudo dmesg --follow

sudo dmesg - следовать в окне терминала

Обратите внимание, что вы не вернетесь в командную строку. Когда появляются новые сообщения, они отображаются dmesg в нижней части окна терминала.

Вывод из sudo dmesg - следовать за окном терминала

Даже установка диска CD-ROM воспринимается как изменение, потому что вы перенесли содержимое диска CD-ROM в дерево каталогов.

сообщения кольцевого буфера dmesg в результате монтирования диска CD-ROM

Чтобы выйти из ленты в реальном времени, нажмите Ctrl + C.

Получить последние десять сообщений

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

sudo dmesg | last -10

sudo dmesg | последний -10 в окне терминала

Последние десять сообщений извлекаются и отображаются в окне терминала.

Вывод из sudo dmsesg | хвост -10 в окне терминала

Поиск конкретных терминов

Передайте вывод из dmesg через grep для поиска определенных строк или шаблонов. Здесь мы используем параметр -i (игнорировать регистр), чтобы не учитывать случай совпадения строк. наши результаты будут включать «usb» и «USB», а также любую другую комбинацию строчных и прописных букв.

sudo dmesg | grep -i usb

sudo dmesg | grep -i usb в окне терминала

Выделенные результаты поиска отображаются в верхнем и нижнем регистре.

Результаты поиска, показывающие результаты в верхнем и нижнем регистре в окне терминала

Мы можем выделить сообщения, содержащие ссылки на первые SCSI жесткий диск в системе sda. (На самом деле, sda также используется в настоящее время для первый жесткий диск SATA, и для USB-накопителей.)

sudo dmesg | grep -i sda

sudo dmesg | grep -i sda в окне терминала

Все сообщения, в которых упоминается sda, извлекаются и отображаются в окне терминала.

вывод sudo dmesg | grep -i sda в окне терминала

Чтобы grep искать одновременно несколько терминов, используйте параметр -E (расширить регулярное выражение). Вы должны указать условия поиска внутри строки в кавычках с вертикальной чертой «|» разделители между поисковыми запросами:

sudo dmesg | grep -E "memory|tty|dma"

sudo dmesg | grep -E

Любое сообщение, в котором упоминается какой-либо из условий поиска, отображается в окне терминала.

вывод из sudo dmesg | grep -E

Использование уровней журнала

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

Emerg: Система непригодна для использования.
предупреждение: действие необходимо предпринять немедленно.
крит: Критические условия.
err: условия ошибки.
предупреждение: условия предупреждения.
Примечание: нормальное, но серьезное состояние.
информация: Информационная.
debug: сообщения уровня отладки.

Мы можем заставить dmesg извлекать сообщения, соответствующие определенному уровню, используя параметр -l (level) и передавая имя уровня в качестве параметра командной строки. Чтобы увидеть сообщения только «информационного» уровня, используйте эту команду:

sudo dmesg -l info

sudo dmesg -l информация в окне терминала

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

Вывод sudo dmesg -l info в окне терминала

Объедините два или более уровней журнала в одной команде, чтобы получить сообщения нескольких уровней журнала:

sudo dmesg -l debug,notice

sudo dmesg -l debug, уведомление в окне терминала

Вывод dmesg представляет собой смесь сообщений каждого уровня журнала:

Вывод из sudo dmesg -l debug, уведомление в окне терминала

Категории объектов

Сообщения dmesg сгруппированы по категориям, называемым «удобствами». Перечень объектов:

kern: сообщения ядра.
пользователь: сообщения уровня пользователя.
mail: Почтовая система.
демон: Системные демоны.
auth: сообщения безопасности / авторизации.
syslog: внутренние сообщения syslogd.
lpr: подсистема построчного принтера.
новости: Подсистема сетевых новостей.

Мы можем попросить dmesg отфильтровать свой вывод, чтобы показывать сообщения только в определенном объекте. Для этого мы должны использовать параметр -f (средство):

sudo dmesg -f daemon

sudo dmesg -f демон в окне терминала

dmesg перечисляет все сообщения, относящиеся к демонам в окне терминала.

вывод sudo dmesg -f daemon в окне терминала

Как и с уровнями, мы можем попросить dmesg вывести список сообщений от более чем одного объекта одновременно:

sudo dmesg -f syslog, daemon

sudo dmesg -f syslog, демон в окне терминала

Вывод представляет собой смесь сообщений системного журнала и журнала демона.

вывод из sudo dmesg -f syslog, демон в окне терминала

Объединение помещения и уровня

Параметр -x (декодировать) заставляет dmesg отображать средство и уровень в виде удобочитаемых префиксов для каждой строки.

sudo dmesg -x

sudo dmesg -x в окне терминала

Объект и уровень можно увидеть в начале каждой строки:

Вывод sudo dmesg -x в окне терминала

Первый выделенный раздел — это сообщение от средства «ядра» с уровнем «уведомление». Второй выделенный раздел — это сообщение от средства «ядра» с уровнем «информация».

Это здорово, но почему?

Одним словом, поиск неисправностей.

Если у вас возникли проблемы с оборудованием, которое не распознается или работает некорректно, dmesg может пролить свет на проблему.

Используйте dmesg для просмотра сообщений от самого высокого уровня до каждого более низкого уровня, ища любые ошибки или предупреждения, которые упоминают аппаратный элемент или могут иметь отношение к проблеме.
Используйте dmesg для поиска любых упоминаний о соответствующих средствах, чтобы узнать, содержат ли они какую-либо полезную информацию.
Пропустите dmesg через grep и найдите связанные строки или идентификаторы, такие как производитель продукта или номера модели.
Передайте dmesg через grep и найдите общие термины, такие как «gpu» или «хранилище», или такие термины, как «сбой», «сбой» или «невозможно».
Используйте опцию –follow и смотрите сообщения dmesg в режиме реального времени.

Хорошей охоты.

Команда dmesg предназначена для задействования одноименной утилиты, осуществляющей вывод сообщений ядра ОС. В процессе загрузки и функционирования операционной системы ее ядро генерирует множество сообщений, которые позволяют диагностировать различные проблемы с аппаратным и программным обеспечением. Если говорить более предметно, ядро Linux записывает сообщения в кольцевой буфер (область памяти фиксированного размера, в которой осуществляется перезапись устаревших сообщений при добавлении новых), а утилита использует специальный файл /proc/kmesg для доступа к содержимому этого буфера. Данная команда может оказаться крайне полезной в процессе диагностики состояния устройств системы, поэтому ее стоит использовать в первую очередь при возникновении любых аппаратных сбоев.

Базовый синтаксис команды выглядит следующим образом:

$ dmesg [параметры]

Стоит отметить, что в некоторых дистрибутива команда может исполняться лишь от лица пользователя root (что вполне логично, ведь диагностика системы — дело системного администратора). Вообще, утилита может принимать большое количество различных параметров, но чаще всего используется без них. Наиболее полезными ее параметрами являются такие, как параметр -T, позволяющий выводить понятные человеку метки времени, параметры -k и -u, позволяющие выводить лишь сообщения, относящиеся к пространству ядра и пространству пользователя соответственно, параметр -c, позволяющий очистить содержимое кольцевого буфера ядра после вывода, параметр -w, позволяющий вместо завершения работы утилиты ожидать новые сообщения, а также параметры —level и —facility, позволяющие указать приоритет и источник интересующих пользователя сообщений.

В качестве приоритетов сообщений могут использоваться следующие идентификаторы:

Идентификатор Значение
emerg Сообщения о событиях, сделавших систему неработоспособной
alert Сообщения о событиях, на которые пользователь должен немедленно отреагировать
crit Сообщения о критических событиях
err Сообщения об ошибках
warn Предупреждения
notice Сообщения о важных событиях
info Информационные сообщения
debug Отладочные сообщения

В качестве источников сообщений — следующие идентификаторы:

Идентификатор Значение
kern Сообщения от ядра ОС
user Сообщения из пространства пользователя
mail Сообщения от подсистемы отправки электронной почты
daemon Сообщения от системных служб (демонов)
auth Сообщения от системы безопасности/авторизации
syslog Сообщения от службы системных журналов (для внутреннего использования)
lpr Сообщения от подсистемы печати
news Сообщения от подсистемы сетевых новостей

Также нередко для фильтрации вывода dmesg используются такие утилиты, как grep, head, tail, less и more поэтому для продуктивной работы с утилитой dmesg не помешает ознакомиться и с их функциями.

Примеры использования

Вывод всех сообщений ядра ОС

Для вывода всех сообщений ядра ОС может использоваться утилита dmesg без каких-либо параметров:

# dmesg
[ 0.000000] microcode: microcode updated early to revision 0xd0, date = 2010-09-30
[ 0.000000] Linux version 4.18.0-2-amd64 ([email protected]) (gcc version 7.3.0 (Debian 7.3.0-29)) #1 SMP Debian 4.18.10-2 (2018-10-07)

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

Если вам нужно постепенно изучить все сообщения, вы можете воспользоваться утилитами less и more:

# dmesg | more
[ 0.000000] microcode: microcode updated early to revision 0xd0, date = 2010-09-30
[ 0.000000] Linux version 4.18.0-2-amd64 ([email protected]) (gcc version 7.3.0 (Debian 7.3.0-29)) #1 SMP Debian 4.18.10-2 (2018-10-07)

--More--

# dmesg | less
[ 0.000000] microcode: microcode updated early to revision 0xd0, date = 2010-09-30
[ 0.000000] Linux version 4.18.0-2-amd64 ([email protected]) (gcc version 7.3.0 (Debian 7.3.0-29)) #1 SMP Debian 4.18.10-2 (2018-10-07)

:

Утилита less позволяет проматывать сообщения как вперед, так и назад, утилита more — только вперед.

Вывод важных сообщений

Для вывода исключительно важных сообщений следует использовать соответствующие приоритеты:

# dmesg --level=emerg,alert,crit,err,warn
[ 0.032000] core: PEBS disabled due to CPU errata
[ 0.036206] mtrr: your CPUs had inconsistent variable MTRR settings
[ 0.053809] pci 0000:00:01.0: ASPM: current common clock configuration is broken, reconfiguring
[ 0.088573] pci 0000:03:00.0: [Firmware Bug]: disabling VPD access (can't determine size of non-standard VPD format)

Очевидно, что теперь в выводе отражены лишь явные проблемы с аппаратным обеспечением, которые в моем случае были решены ядром самостоятельно.

Вывод сообщений, относящихся к определенным устройствам

Для вывода всех сообщений, относящихся к определенным устройствам, достаточно отфильтровать вывод утилиты с помощью утилиты grep:

# dmesg | grep dvb
[ 13.019352] dvbdev: DVB: registering new adapter (Mantis DVB adapter)
[ 13.143788] dvb-usb: found a 'Mygica T230 DVB-T/T2/C' in warm state.
[ 13.384098] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 13.384305] dvbdev: DVB: registering new adapter (Mygica T230 DVB-T/T2/C)
[ 13.944318] rc rc0: lirc_dev: driver dvb_usb_cxusb registered at minor = 0, scancode receiver, no transmitter
[ 13.944319] dvb-usb: schedule remote query interval to 100 msecs.
[ 13.944509] dvb-usb: Mygica T230 DVB-T/T2/C successfully initialized and connected.

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

Вывод всех сообщений из пространства пользователя

Для вывода всех сообщений из пространства пользователя достаточно воспользоваться параметром -u утилиты dmesg:

# dmesg -u
[ 7.483329] systemd[1]: systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 7.500111] systemd[1]: Detected architecture x86-64.
[ 7.527333] systemd[1]: Set hostname to <debian>.

Очевидно, что это сообщения от менеджера инициализации systemd.

Оригинал: Linux dmesg Command Tutorial for Beginners (5 Examples)

Автор: Himanshu Arora

Дата публикации: 3 июля 2018 года

Перевод: А. Кривошей

Дата перевода: январь 2019 г.

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

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

Команда Linux dmesg

Команда dmesg позволяет вам печатать или управлять буфером кольца ядра. Ниже ее синтаксис:

dmesg [options]

И вот как справочная страница утилиты объясняет ее назначение:

dmesg используется для проверки содержимого или управления буфером кольца ядра. Действие по умолчанию — отобразить все сообщения из буфера кольца ядра.

Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам лучшее представление о том, как работает команда dmesg.

Q1. Как использовать команду dmesg?

Вы можете для начала ввести команду dmesg без опций командной строки.

dmesg

Например, вот небольшая часть вывода команды, созданной в моем случае:

часть вывода команды

Q2. Как ограничить вывод только ошибками и предупреждениями?

Если вы запустите dmesg в своей системе, вы увидите, что она выводит множество информации. В зависимости от того, что вы ищете, вы можете фильтровать или ограничивать вывод. Со своей стороны, dmesg предлагает вам реализацию этой возможности с помощью «уровней». Ниже приводится полный список уровней (вместе с их объяснением):

emerg — система не работает;
alert — действие должно быть выполнено немедленно;
crit — критические условия;
err — условия ошибок;
warn — условия предупреждениий;
notice — нормальное, но существенное состояние;
info — информационный;
debug — сообщения уровня отладки.

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

dmesg --level=err,warn

В моем случае, вот часть вывода, который выдает указанная выше команда:

часть вывода команды dmesg --level=err,warn

Q3. Как заставить dmesg выводить временные метки?

Иногда вам может понадобиться, чтобы с сообщениями, создаваемыми dmesg, была связана временная метка. Это можно сделать с помощью параметра командной строки -T, который создает удобочитаемые временные метки.

dmesg -T

Пример вывода:

Пример вывода dmesg -T

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

Предположим, вы хотите, чтобы dmesg отображал только информацию, связанную с интерфейсом eth0. Вот как вы можете это сделать:

dmesg | grep -i eth0

Пример вывода:

Пример вывода dmesg | grep -i eth0

Q5. Как заставить dmesg отображать только сообщения пользователя?

Если вы хотите ограничить вывод dmesg только сообщениями в пользовательском пространстве, используйте параметр командной строки -u.

dmesg -u

Пример вывода dmesg -u

Заключение

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

Здесь, в этом уроке, мы обсудили команду dmesg с точки зрения начинающих. Более подробную информацию можно получить, изучив справочную страницу команды.

Если вам понравилась статья, поделитесь ею с друзьями:


Содержание

Отчет о падении ядра

Введение

Отчет о падении ядра является частью содержимого оперативной памяти (RAM), которая копируется на диск всякий раз, когда выполнение ядра прерывается. Следующие события могут стать причиной остановки ядра:

  1. Критическая ошибка ядра (Kernel Panic)

  2. Незамаскированное прерывание (NMI)

  3. Фатальная ошибка проверки машины (MCE)

  4. Отказ оборудования

  5. Ручное вмешательство

Некоторые из этих событий (паника, NMI) ядро обрабатывает автоматически и запускает механизм сохранения отчета через kexec. В других случаях требуется ручное вмешательство для захвата памяти. Всякий раз как что-то из перечисленного происходит, важно найти основную причину с целью предотвращения такого события снова. Причина может быть определена с помощью инспектирования содержимого памяти.

Механизм отчета о падении ядра

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

Установка

Утилита сохранения отчета о падении ядра устанавливается следующей командой:

sudo apt-get install linux-crashdump

После этого потребуется перезагрузка.

Настройка

Никакой дальнейшей настройки не требуется чтобы разрешить механизм отчета о падении ядра.

Проверка

Для подтверждения, что механизм отчета о падении ядра доступен, надо проверить несколько вещей. Во-первых, убедитесь, что указан загрузочный параметр crashkernel. (заметьте, что строка внизу разделена на две для сохранения форматирования документа):

cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-3.2.0-17-server root=/dev/mapper/PreciseS-root ro
 crashkernel=384M-2G:64M,2G-:128M

Параметр crashkernel имеет следующий синтаксис:

crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset]
    range=start-[end] 'start' is inclusive and 'end' is exclusive.

Таким образом с параметром crashkernel, найденным в файле /proc/cmdline мы имеем:

crashkernel=384M-2G:64M,2G-:128M

Значение выше означает:

  1. если оперативная память меньше 384МБ, то ничего не резервировать (это вариант «спасения»)

  2. если оперативная память между 384МБ и 2ГБ (привилегированная), то зарезервировать 64МБ

  3. если оперативная память больше 2ГБ, то зарезервировать 128МБ

Во-вторых, убедитесь, что ядро зарезервировало требуемую память для kdump ядра, выполнив:

dmesg | grep -i crash

...
[    0.000000] Reserving 64MB of memory at 800MB for crashkernel (System RAM: 1023MB)

Проверка механизма отчета о падении ядра

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

Убедитесь, что механизм SysRQ включен, посмотрев значение параметра ядра /proc/sys/kernel/sysrq:

cat /proc/sys/kernel/sysrq

Если возвращается значение 0, свойство отключено. Включите его следующей командой:

sudo sysctl -w kernel.sysrq=1

Как только закончите с этим, вам придется стать суперпользователем (root), поскольку будет недостаточно использовать только sudo.
От имени пользователя root вам нужно выполнить команду echo c > /proc/sysrq-trigger. Если вы используете сетевое соединение, вы потеряете связь с системой. Именно поэтому лучше проводить тест с системной консоли. Это позволит сделать процесс отчета о падении ядра видимым.

Типичный вывод теста будет выглядеть следующим образом:

sudo -s
[sudo] password for ubuntu: 
# echo c > /proc/sysrq-trigger
[   31.659002] SysRq : Trigger a crash
[   31.659749] BUG: unable to handle kernel NULL pointer dereference at           (null)
[   31.662668] IP: [<ffffffff8139f166>] sysrq_handle_crash+0x16/0x20
[   31.662668] PGD 3bfb9067 PUD 368a7067 PMD 0 
[   31.662668] Oops: 0002 [#1] SMP 
[   31.662668] CPU 1 
....

Дальнейший вывод отрезан, но вы можете посмотреть перезагрузку системы и где-нибудь в журнале вы сможете найти следующую строчку:

Begin: Saving vmcore from kernel crash ...

После завершения система перезагрузится в нормальный рабочий режим. После чего вы сможете найти файл отчета о падении ядра в каталоге /var/crash:

ls /var/crash
linux-image-3.0.0-12-server.0.crash

Ссылки

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

  1. Анализ падений ядра линукс (Основано на дистрибутиве Fedora, однако предоставляет хороший критический анализ исследований отчетов падения ядра)


Понравилась статья? Поделить с друзьями:
  • Ошибка ягуар check pedestrian system
  • Ошибка является сокращением термина неопределенные данные эта ошибка
  • Ошибка ява ланг
  • Ошибка ютуб установите microg
  • Ошибка ютуб на телевизоре сони бравиа