Определение причины паники ядра Linux

  1. Да, они - то же.
  2. Да.
  3. В ударе и подобных оболочках, Вы могли сделать что-то как IFS=$' \t\n'. Иначе Вы могли ввести коды элемента управления литерал при помощи [space] CTRL+V [tab] CTRL+V [enter]. Если Вы планируете сделать это, однако, лучше использовать другую переменную для временного хранения старого IFS значение, и затем восстанавливает его впоследствии (или временно переопределяет его для одной команды при помощи var=foo command синтаксис).
    • Первый фрагмент кода поместит все чтение строки, дословно, в $line, как нет никаких разделителей полей для выполнения разделения слова для. Примите во внимание однако, что, так как много оболочек используют cstrings для хранения строк, первая инстанция NUL может все еще вызвать появление его преждевременно завершаемый.
    • Второй фрагмент кода не может поместить точную копию входа в $line. Например, если будет несколько последовательных разделителей полей, то они будут превращены в единственный экземпляр первого элемента. Это часто распознается как потеря окружающего пробела.
    • Третий фрагмент кода сделает то же, поскольку второе, кроме него только разделит на пространстве (не обычное пространство, вкладка или новая строка).
25
11.01.2013, 04:49
5 ответов

У меня есть два предложения для запуска.

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

Второе должно получить данные ООП, которые, как Вы заметили, не переходят ни к одному из мест, которые Вы упомянули. Если катастрофический отказ только происходит при выполнении X11, я думаю, что локальная консоль в значительной степени отсутствует (это - боль так или иначе), таким образом, необходимо сделать это по последовательной консоли по сети, или путем сохранения к локальному диску (который более хитер, чем это может звучать, потому что Вы не хотите, чтобы ненадежное ядро повредило Вашу файловую систему). Вот некоторые способы сделать это:

  • используйте netdump для сохранения к серверу по сети. Я не сделал этого в течение многих лет, таким образом, я не уверен, что это программное обеспечение все еще вокруг и работающий с современными ядрами, но достаточно легко, что это стоит того, чтобы попытаться.
  • начальная загрузка с помощью последовательной консоли; Вам будет нужен последовательный порт, свободный на обеих машинах (ли олдскульная или последовательный адаптер USB) и нуль-модемный кабель; Вы настроили бы другую машину для сохранения вывода.
  • kdump, кажется, то, что спокойные дети используют в наше время, и кажется довольно гибким, хотя это не было бы мое предпочтение, потому что это выглядит сложным для установки. Короче говоря, это включает начальную загрузку другого ядра, которое может сделать что-либо и осмотреть содержание памяти бывшего ядра, но необходимо по существу создать целый процесс, и я не вижу много консервированных опций там. Обновление: на самом деле существуют некоторые хорошие вещи дистрибутива; на Ubuntu, linux-crashdump

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


От crash на Вашем crashdump можно попытаться ввести log и bt получить немного больше информации (вещи, зарегистрированные во время паники и следа стека). Ваш Fatal Machine check кажется, прибывает отсюда, все же. От просматривания кода Ваш процессор сообщил об Исключении Машинного контроля - аппаратная проблема. Снова, моя первая ставка произошла бы из-за разгона. Кажется, что могло бы быть более определенное сообщение в log вывод, который мог сказать Вам больше.

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

35
27.01.2020, 19:40
  • 1
    Если разгон будет проблемой, то я смогу видеть, что такт пропускается в крешлогах, таким образом, в конце дня, я буду знать, какова проблема. Это - моя цель: выяснять, что идет не так, как надо. Если это - мой разгон, то прекрасный, я был бы точно так же, как для знания, какова проблема. –  Naftuli Kay 10.01.2013, 23:03
  • 2
    я не думаю, разгоняя отказы, так же очевиден как это для определения в журналах; я не эксперт по процессору, но это не похоже на целый процессор, правильно обрабатывает такт или указывает к ОС так или иначе, что это пропустило его. Сообщите мне, испытываете ли Вы затруднения при получении журналов, но по моему скромному мнению безусловно самый легкий способ знать, является ли это разгоняющаяся проблема, состоит в том, чтобы видеть, происходит ли это, если не разгоняясь. –  Scott Lamb 10.01.2013, 23:28
  • 3
    Хорошо, я сделаю это после резервного копирования моих настроек. Я мог бы сначала просто видеть, могу ли я воспроизвести катастрофический отказ в Windows. –  Naftuli Kay 10.01.2013, 23:45
  • 4
    В то время как я благодарен никогда не встретиться с BSOD в Linux, для меня казалось бы странным, что, в то время как Windows зарегистрирует и отобразит проблему, Linux не смог бы. –  Naftuli Kay 10.01.2013, 23:51
  • 5
    я обновил вопрос, когда я смог разрушить машину при выполнении linux-crashdump и получите файл дампа катастрофического отказа, который, надо надеяться, имеет достаточно информации для определения причины. –  Naftuli Kay 11.01.2013, 02:37

a) Проверьте, регистрируются ли сообщения ядра в файл rsyslog демоном

vi /etc/rsyslog.conf

И добавьте следующее

kern.*                 /var/log/kernel.log

Перезапустите rsyslog сервис.

/etc/initd.d/rsyslog restart

b) Обратите внимание на загруженные модули

`lsmod >/your/home/dir`

c) Поскольку паника не восстанавливаема, ожидайте ее для случая

d) После того как паника произошла, загрузите систему с помощью живого или чрезвычайного CD

e) Смонтируйтесь файловые системы (обычно / будет достаточен, не являются ли / var и / домой отдельными файловыми системами) затронутой системы (pvs, vgs, lvs команды должны быть выполнены при использовании LVM в затронутой системе для перевода в рабочее состояние LV), mount -t ext4 /dev/sdXN /mnt

f) Перейдите в /mnt/var/log/ каталог и проверка kernel.log файл. Это должно дать Вам достаточно информации, чтобы выяснить, происходит ли паника для конкретного модуля или чего-то еще.

5
27.01.2020, 19:40
  • 1
    Результаты Журнала этого являются довольно неокончательными: pastebin.com/VdYAHgiH –  Naftuli Kay 11.01.2013, 00:08
  • 2
    относительно моего опыта, катастрофические отказы ядра редко входят kernel.log, поскольку информация о журнале должна пойти довольно длинным путем с помощью системного журнала, драйвера файловой системы, дискового кэша и дискового драйвера. Самый простой и изящный путь состоит в том, чтобы использовать netconsole модуль ядра. большое спасибо –  dma_k 14.06.2015, 15:00

Нам установили mikrotik маршрутизатор на старой буровой установке. Вентилятор прекратил вращать и заставлять процессор нагреваться. Маршрутизатор затем запускается к Панике Ядра время от времени. После изменения вентилятора процессора все подходило.

Начиная с Вашего разгоняют Вашу машину, это может быть возможная причина.

0
27.01.2020, 19:40

Ваш процессор разгоняется? У меня была эта та же проблема сегодня, когда я играл со множителем в разгоняющемся меню в моем BIOS; различные множители вокруг 20x заставили бы это происходить. Я уменьшил его вниз до 18.5x (3.7 ГГц), и проблема ушла; я думаю, что это была материнская плата/проблема питания.

2
27.01.2020, 19:40
  • 1
    Да, это имело все, чтобы сделать с разгоном. Очевидно, Windows, кажется, является более отказоустойчивым с определенными отказами процессора, если ЦП может продолжать идти. Я мог бы начать загружаться с mce=3 для предотвращения катастрофического отказа но в прошлом я просто увеличил напряжение каждый раз, когда это отказало (который не был так часто). Что-то для замечания - то, что я использую напряжение смещения, которое вообще говоря, более нестабильно. –  Naftuli Kay 13.05.2013, 23:14

Определенно проблема с процессором, обратите внимание на строки, которые говорят :TSC 539b174dead ADDR 3fe98d264ebd MISC 1 [1561.519950] [Аппаратная ошибка] :ПРОЦЕССОР 0 :206a7 ВРЕМЯ 1357862746 СОКЕТ 0 APIC 1 микрокод 28. Процессор 0 — это то, что ядро ​​использовало для обработки сбоя (в многопроцессорных -системах )а сокет 0 — процессор-нарушитель (, хотя я предполагаю, что у вас только 1 ). Либо это плохо, либо, как вы заметили, разгон вызывает неисправности. Я знаю, вы сказали, что прошли через Prime95, но, поскольку у меня нет дополнительной информации о том, сколько лет системе, я хватаюсь за несколько соломин, как выглядит ваша термопаста, и проверили ли вы, чтобы убедиться, что ваш LGA (под процессором )выглядит нормально? Я вот думаю может шпильки погнулись или какая-то паста под LGA. Опять же просто первопричина здесь.

Если это не помогло решить проблему, есть небольшая хитрость, которую вы можете сделать, чтобы использовать SMBIOS, чтобы определить, где именно происходит паника, другая строка (TSC 539b174de9d ADDR 3fe98d264ebd MISC 1 )— это данные SMBIOS, которые могут показать, где произошло столкновение. Когда ваша машина включена, в командной строке выполните echo "TSC 539b174de9d ADDR 3fe98d264ebd MISC 1" | sudo mcelog --ascii --dmi для получения вывода, это скажет вам, что это аппаратная ошибка и даже то, на каком DIMM он обрабатывался, это может указывать на неисправный DIMM или путь шины, если сбой DIMM прыгает вокруг однако с каждым крахомэто указывает на процессор.

1
20.08.2021, 13:18

Теги

Похожие вопросы