Kdump +crash - Debian

Fórumok

Sziasztok!

épp kdump-ot állítok be egy régebbi szerveren (Linux P 4.19.0-6-686-pae #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) i686 GNU/Linux), kisebb nagyobb sikerrel és a segítségeket szeretném kérni.

A crash dumpok létrejönnek egy kiprovokált kernel-panic után, viszont nem tudom megnézni a dump fileokat. Crash file-ok:
/var/crash/:
összesen 16
drwxr-xr-x 2 root root 4096 okt 16 14:44 201910161444
drwxr-xr-x 2 root root 4096 okt 17 12:14 201910171214
-rw-r--r-- 1 root root 273 okt 17 12:16 kexec_cmd

/var/crash/201910161444:
összesen 26672
-rw------- 1 root root 52793 okt 16 14:44 dmesg.201910161444
-rw------- 1 root root 27256695 okt 16 14:44 dump.201910161444

/var/crash/201910171214:
összesen 33964
-rw------- 1 root root 51742 okt 17 12:14 dmesg.201910171214
-rw------- 1 root root 34725070 okt 17 12:14 dump.201910171214

Az egyikről bővebben:
# file ../201910171214/dump.201910171214
../201910171214/dump.201910171214: Kdump compressed dump v6, system Linux, node , release 4.19.0-6-686-pae, version #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20), machine i686, domain (none)

A crash meg sem tudja nyitni a dump-ot, mert szerinte nem matchel a kernellel:
# crash /usr/lib/debug/lib/modules/4.19.0-6-686-pae/vmlinux /var/crash/201910171214/dump.201910171214

crash 7.2.5
Copyright (C) 2002-2019 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
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 "i686-pc-linux-gnu"...

crash: page excluded: kernel virtual address: c194a9e4 type: "possible"
WARNING: cannot read cpu_possible_map
crash: page excluded: kernel virtual address: c194a9dc type: "present"
WARNING: cannot read cpu_present_map
crash: page excluded: kernel virtual address: c194a9e0 type: "online"
WARNING: cannot read cpu_online_map
crash: page excluded: kernel virtual address: c194a9d8 type: "active"
WARNING: cannot read cpu_active_map
crash: page excluded: kernel virtual address: c18bd79c type: "pv_init_ops"
crash: page excluded: kernel virtual address: c1a832a8 type: "shadow_timekeeper xtime_sec"
crash: page excluded: kernel virtual address: c18b11c4 type: "init_uts_ns"
crash: /usr/lib/debug/lib/modules/4.19.0-6-686-pae/vmlinux and /var/crash/201910171214/dump.201910171214 do not match!

Usage:

crash [OPTION]... NAMELIST MEMORY-IMAGE[@ADDRESS] (dumpfile form)
crash [OPTION]... [NAMELIST] (live system form)

Enter "crash -h" for details.

Találkoztatok már ilyennel?

Üdv.:
V007

Hozzászólások

A crash tool hasznos, de sajnos nem a legstabilabb program. Első körben nézd meg, hogy a makedumpfile-t, hogy hívja meg és próbáld átállítani úgy, hogy elf-et generáljon. Ha azt megnyitja a GDB akkor a crash-tool a probléma.

A másik ötlet, hogy szedd le githubról a legfrissebb crash-t és fordítsd le.

Egyelőre default optciókkal fut: makedumpargs="-c -d 31" --> Compress on a max. dump level.
Az ELF nem megy compression-nal, szóval átetettem "-E -d 31"-re. Reboot. Újabb crash kierőszakol, de az eredmény ua.
A -E opciótol kelett volna keletkeznie vmcore file-nak a /var/crash/201910171332/ alatt?

:~# makedumpfile -v
makedumpfile: version 1.6.5 (released on 5 Dec 2018)
lzo enabled
snappy disabled

:~# kexec -v
kexec-tools 2.0.18

:~# ls -la /var/crash/201910171332/
összesen 162692
drwxr-xr-x 2 root root 4096 okt 17 13:32 .
drwxr-xr-x 6 root root 4096 okt 17 13:32 ..
-rw------- 1 root root 51788 okt 17 13:32 dmesg.201910171332
-rw------- 1 root root 166531108 okt 17 13:32 dump.201910171332

:~# grep MAKEDUMP_ARGS /etc/default/kdump-tools
# MAKEDUMP_ARGS - extra arguments passed to makedumpfile (8). The default,
MAKEDUMP_ARGS="-E -d 31"

:~# grep GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet crashkernel=512M" --> Ezt már 128-ról emeltem 256 MB-ra, majd 512-re
(ubdate-grub is volt)

:~# dmesg | grep crash
[ 0.022542] Reserving 128MB of memory at 384MB for crashkernel (System RAM: 8082MB)
[ 0.056621] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.19.0-6-686-pae root=UUID=03b6ef62-e300-4177-8b6e-b3ccbff9e201 ro quiet crashkernel=512M crashkernel=384M-:128M

Helyem is van bőven, kb. 400 GB.

:~# cat /var/crash/kexec_cmd
/sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-4.19.0-6-686-pae root=UUID=03b6ef62-e300-4177-8b6e-b3ccbff9e201 ro quiet nr_cpus=1 systemd.unit=kdump-tools.service irqpoll nousb ata_piix.prefer_ms_hyperv=0" --initrd=/var/lib/kdump/initrd.img /var/lib/kdump/vmlinuz

:~# kdump-config show
DUMP_MODE: kdump
USE_KDUMP: 1
KDUMP_SYSCTL: kernel.panic_on_oops=1
KDUMP_COREDIR: /var/crash
crashkernel addr: 0x18000000
/var/lib/kdump/vmlinuz: symbolic link to /boot/vmlinuz-4.19.0-6-686-pae
kdump initrd:
/var/lib/kdump/initrd.img: symbolic link to /var/lib/kdump/initrd.img-4.19.0-6-686-pae
current state: ready to kdump

kexec command:
/sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-4.19.0-6-686-pae root=UUID=03b6ef62-e300-4177-8b6e-b3ccbff9e201 ro quiet nr_cpus=1 systemd.unit=kdump-tools.service irqpoll nousb ata_piix.prefer_ms_hyperv=0" --initrd=/var/lib/kdump/initrd.img /var/lib/kdump/vmlinuz

Ha az RO-val lenne gond akkor a /var/crash alatt nem kellene hogy keletkezzenek file-ok, nem? Rosszul értem? Viszont van néhány file, de vmcore nincs.
A legújabb crash tool-t egyelőre nem fordítanám mert vmcore sincs amit a kexec-nek kellene megcsinálnia ???.

Kernel crash esetében a kexec-nek az elcrash-elt kernelt kellene RO-ban mountolni, hogy az állapotát konzisztensen tudja tartani _és_ ez előtt felbootol egy crash kernelt (second kernelt) ahol használja a gép erőforrásait és kiírja a FileSystem-re az elcrash-elt kernelről ill. gép állapotáról készült dump-ot.

Nem kéne igen, de nem lehet, hogy csak az elf dumpra átállítás után került oda?

Kernel crash esetében a kexec-nek az elcrash-elt kernelt kellene RO-ban mountolni

Azt nem mountolja, ott létrehoz egy device-t, de közvetlenül olvassa a memóriát.

Ezt is szedd ki: crashkernel=384M-:128M mert így nem 512MB-t foglal le, mert az utolsó számít.

"Nem kéne igen, de nem lehet, hogy csak az elf dumpra átállítás után került oda?" --> Nem. Már korábban is voltak crash file-ok (dmesg.időbéyleg + dump.időbélyeg)

Az /etc/default/grub-ban így van írva: GRUB_CMDLINE_LINUX_DEFAULT="quiet crashkernel=512M". Máshol ezt tudtommal nem lehet állítani.

Találtam egy ilet is : :)

:~# kdump-config savecore (normál módban futtatom root-ként, tehát itt még semmi kernel crash nem volt, de már most sem tud vmcore-t csináni)
[info] running makedumpfile -E -d 31 /proc/vmcore /var/crash/201910221346/dump-incomplete.
open_dump_memory: Can't open the dump memory(/proc/vmcore). No such file or directory

makedumpfile Failed.
[FAIL] kdump-config: makedumpfile failed, falling back to 'cp' ... failed!
cp: stat '/proc/vmcore' sikertelen: Nincs ilyen fájl vagy könyvtár
[FAIL] kdump-config: failed to save vmcore in /var/crash/201910221346 ... failed!
[info] running makedumpfile --dump-dmesg /proc/vmcore /var/crash/201910221346/dmesg.201910221346.
open_dump_memory: Can't open the dump memory(/proc/vmcore). No such file or directory

makedumpfile Failed.
[FAIL] kdump-config: makedumpfile --dump-dmesg failed. dmesg content will be unavailable ... failed!
[FAIL] kdump-config: failed to save dmesg content in /var/crash/201910221346 ... failed!