Один из моих серверов репликации Mysql перезагрузился ночью, и я пытаюсь найти причину. Запуск команды last
показывает эту строку: reboot system boot 2.6.32-71.29.1.e Wed Jul 31 04:37 - 11:02 (06:24)
Я пытаюсь прочитать vmcore
файл, созданный при перезагрузке. Я установил kernel-debuginfo
пакет, который создал vmlinux
файл. потом я побежал:
[root@dbs ~]# crash -s /usr/lib/debug/lib/modules/2.6.32-358.14.1.el6.centos.plus.x86_64/vmlinux /var/crash/127.0.0.1-2013-07-31-01:33:32/vmcore
crash 6.1.0-1.el6
crash: invalid kernel virtual address: 68f8e06b73fe5f1f type: "possible"
WARNING: cannot read cpu_possible_map
crash: invalid kernel virtual address: fce96c6b73fe5f1f type: "present"
WARNING: cannot read cpu_present_map
crash: invalid kernel virtual address: e10de07591befc69 type: "online"
WARNING: cannot read cpu_online_map
crash: /usr/lib/debug/lib/modules/2 and /var/crash/127.0.0.1-2013-07-31-01:33:32/vmcore do not match!
Usage:
crash [OPTION]... NAMELIST MEMORY-IMAGE (dumpfile form)
crash [OPTION]... [NAMELIST] (live system form)
Enter "crash -h" for details.
[root@dbs ~]#
Может ли кто-нибудь указать мне, что я делаю неправильно? Интересно, почему vmcore и vmlinux не так много, как vmlinux был сгенерирован, когда я установил пакет kernel-debuginfo ...
[root@dbs 2.6.32-358.14.1.el6.centos.plus.x86_64]# rpm -qa |grep kernel-debug
kernel-debuginfo-common-x86_64-2.6.32-358.14.1.el6.centos.plus.x86_64
kernel-debug-2.6.32-358.14.1.el6.x86_64
kernel-debuginfo-2.6.32-358.14.1.el6.centos.plus.x86_64
[root@dbs 2.6.32-358.14.1.el6.centos.plus.x86_64]# uname -r
2.6.32-71.29.1.el6.x86_64
[root@dbs 2.6.32-358.14.1.el6.centos.plus.x86_64]#
Почему kernel-debuginfo
пакет сгенерировал неправильный vmlinux
? uname -r
показывает версию ядра 2.6.32-71.29.1, а vmlinux
который был создан, имеет версию 2.6.32-358.14.1?
[root@dbs ~]# yum list installed |grep kernel
abrt-addon-kerneloops.x86_64
dracut-kernel.noarch 004-33.2.el6_0 @updates
kernel.x86_64 2.6.32-71.el6 @anaconda-CentOS-201106060106.x86_64/6.0
kernel.x86_64 2.6.32-71.29.1.el6
kernel-debuginfo.x86_64 2.6.32-358.14.1.el6.centos.plus
kernel-debuginfo-common-x86_64.x86_64
kernel-headers.x86_64 2.6.32-71.29.1.el6
[root@dbs ~]#
Я нашел решение! Шаги, которые я сделал:
[root@dbs ~]# uname -r
2.6.32-71.29.1.el6.x86_64
[root@dbs ~]#
Я побежал:
[root@dbs ~]# yum provides kernel-debuginfo-2.6.32
И вручную искал:
kernel-debuginfo-2.6.32-71.29.1.el6.x86_64
Затем я побежал: rpm -qa |grep ^kernel
и yum remove
изменена текущая установленная неправильная версия kernel-debuginfo
.
Затем я установил правильный kernel-debuginfo-2.6.32-71.29.1.el6.x86_64
, побежал updatedb
а потом locate
был ли новый vmlinux
с правильной версией. Затем я использовал следующую команду: crash /usr/lib/debug/lib/modules/2.6.32-71.29.1.el6.x86_64/vmlinux /var/crash/127.0.0.1-2013-07-31-01\:33\:32/vmcore
и отчет о сбое был успешно запущен. Спасибо за помощь @ALex_hha.