1. kexec/kdump: reboot rapid si
,
debug postmortem
Matei Conovici
mconovici@gmail.com
RLUG Meeting, Decembrie 2009
2. kexec
apel sistem pentru arcarea memorie si lansarea executie
脹nc 脹n , 脹n ,
a unui nou kernel, fr a restarta sistemul modul traditional
a a 脹n ,
utilitar pentru controlul acestei facilitti
a,
# kexec -l /vmlinuz --initrd=/initrd.img --reuse-cmdline
# kexec -e
kexec/kdump: reboot rapid si debug postmortem
Matei Conovici
, 1
RLUG Meeting, Decembrie 2009
3. Sumar al optiunilor:
,
scrat:~# kexec -h
Usage: kexec [OPTION]... [kernel]
Directly reboot into a new kernel
-h, --help Print this help.
-v, --version Print the version of kexec.
-f, --force Force an immediate kexec,
dont call shutdown.
-l, --load Load the new kernel into the
current kernel.
-p, --load-panic Load the new kernel for use on panic.
-u, --unload Unload the current kexec target kernel.
-e, --exec Execute a currently loaded kernel.
1-1
4. Supported kernel file types and options:
elf-x86
--append=STRING Set the kernel command line to STRING
--reuse-cmdline Use kernel command line from running
system.
--initrd=FILE Use FILE as the kernels initial ramdisk.
--args-linux Pass linux kernel style options
--args-elf Pass elf boot notes
Architecture options:
--serial=<port> Specify the serial port for
debug output
--serial-baud=<baud_rate> Specify the serial port baud rate
--console-vga Enable the vga console
--console-serial Enable the serial console
1-2
5. Utilizare
Debian GNU/Linux, pachetul kexec-tools instaleaz scrip-
In a
turile de init necesare pentru reboot
/etc/default/kexec se alege dac la reboot se foloseste kexec
In a ,
# Load a kexec kernel (true/false)
LOAD KEXEC=true
kexec/kdump: reboot rapid si debug postmortem
Matei Conovici
, 2
RLUG Meeting, Decembrie 2009
6. Pro/Con
Se evit timpii morti la boot, mai ales cu unele BIOS-uri
a ,
enervante
Nu toate driverele pot s aduc dispozitivele
a a 脹ntr-o stare su鍖-
cient de consistent pentru a porni la cald
a
kexec/kdump: reboot rapid si debug postmortem
Matei Conovici
, 3
RLUG Meeting, Decembrie 2009
7. kdump
cazul unei erori fatale kernel, loc de halt sau reboot
In 脹n 脹n
acesta poate apela kexec pentru a lansa un nou kernel
Noul kernel ruleaz
a 脹ntr-un spatiu de memorie rezervat in pre-
,
alabil
Dup pornire se poate investiga continutul memoriei RAM a
a ,
kernelului anterior
kexec/kdump: reboot rapid si debug postmortem
Matei Conovici
, 4
RLUG Meeting, Decembrie 2009
8. kdump
Kernel-ul standard trebuie s rezerve spatiu pentru dump-
a ,
capture kernel
append="... crashkernel=64M@16M ..."
Se
脹ncarc memorie kernelul dump-capture
a 脹n
# kexec -p /vmlinuz --initrd=/initrd.img --reuse-cmdline
Se asteapt urmtorul PANIC :-)
, a a
Continutul memoriei RAM este expus /proc/vmcore sau
, 脹n
/dev/oldmem
kexec/kdump: reboot rapid si debug postmortem
Matei Conovici
, 5
RLUG Meeting, Decembrie 2009
9. kdump
Cteva optiuni necesare con鍖guratia kernel-ului:
a , 脹n ,
CONFIG KEXEC, CONFIG CRASH DUMP, CONFIG PROC VMCORE ...
Vezi /usr/src/linux/Documentation/kdump/kdump.txt
kexec/kdump: reboot rapid si debug postmortem
Matei Conovici
, 6
RLUG Meeting, Decembrie 2009