EUR
european

EUR

usa

USD

Ex. VAT Ex. VAT 0%

Uključivanje Kdumpa u Linuxu: dump pri panici jezgre

Razina: Srednja / Senior
Procijenjeno vrijeme: ~30 minuta
Cilj: Konfiguriranje hvatanja ispisa rušenja (crash dump) kdump u Linuxu za panike jezgre, omogućujući pouzdanu post-mortem analizu kvarova u produkcijskom okruženju. Ovaj vodič objašnjava kako omogućiti kdump u Linuxu, pokrivajući cijelu konfiguraciju ispisa rušenja u Linuxu, od rezervacije memorije do analize vmcore datoteke.

Uvod

Panika jezgre (kernel panic) zaustavlja sustav, a bez ispisa rušenja nemate podatke s kojima biste radili. Kdump, standardni okvir za ispis rušenja jezgre u Linuxu, rješava to: unaprijed učitava jezgru za hvatanje u rezerviranu memoriju, a kada primarna jezgra doživi paniku, kexec pokreće tu jezgru za hvatanje kako bi zapisala potpunu sliku memorije (vmcore) na disk. U ovom vodiču naučit ćete kako omogućiti kdump u Linuxu za hvatanje ispisa rušenja pri panici jezgre Linux na sustavima Ubuntu, Debian i onima temeljenim na RHEL-u. Pokazat ćemo vam točno kako omogućiti kdump linux sustave koji su potrebni, uključujući korake za post-mortem analizu vmcore datoteke u Linuxu.

Što je Kdump?

Kdump je mehanizam za ispis rušenja jezgre koji koristi kexec za pokretanje sekundarne jezgre za hvatanje iz rezerviranog memorijskog područja svaki put kada primarna jezgra doživi paniku. Jezgra za hvatanje radi s ograničenom memorijom (postavljenom parametrom pokretanja crashkernel) i zapisuje sliku memorije neuspjele jezgre na disk kao vmcore – potpunu datoteku ispisa memorije koja se može analizirati pomoću alata crash ili gdb. Usluga kdump (kdump.service na sustavima temeljenim na RHEL-u ili kdump-tools.service na sustavima temeljenim na Debianu) upravlja učitavanjem jezgre za hvatanje u vrijeme pokretanja.

Ključne komponente:

  • Kexec: sistemski poziv i alat u korisničkom prostoru (userspace) koji učitava jezgru za hvatanje u rezerviranu memoriju.
  • Crashkernel: parametar pokretanja koji govori primarnoj jezgri koliko RAM-a rezervirati za rad kdumpa u Linuxu (npr. crashkernel=256M).
  • Vmcore: izlazna datoteka koja sadrži potpuni ispis memorije, prema zadanim postavkama zapisana u /var/crash.
  • /var/crash: zadani direktorij u kojem kdump pohranjuje vmcore datoteke nakon panike jezgre.

Preduvjeti

Prije nego što počnete, provjerite jesu li ispunjeni sljedeći uvjeti:

  • Operativni sustav: Ubuntu 22.04/24.04 LTS, Debian 12/13 ili RHEL/CentOS/AlmaLinux 9/10 (Testirano i potvrđeno na Ubuntu 24.04, Debianu 13 i AlmaLinuxu 10).
  • Pristup: sudo ili root pristup poslužitelju.
  • RAM: Minimalno 2 GB ukupno. Kdump rezervira dio sistemske memorije (obično 256 MB) za jezgru za hvatanje – sustavi s malo memorije možda nemaju dovoljno prostora.
  • Prostor na disku: Barem onoliko slobodnog prostora u /var/crash koliko vaš sustav ima RAM-a (vmcore može biti velik kao fizička memorija).
  • Potrebno znanje: sigurno korištenje Linux naredbenog retka, osnovno uređivanje datoteka i poznavanje parametara pokretanja GRUB-a.
  • Prozor za ponovno pokretanje: Konfiguracija parametra crashkernel zahtijeva ponovno pokretanje da bi stupila na snagu.

Korak 1: Instalirajte pakete kdump i kexec

Kdump se oslanja na kexec-tools (komponentu korisničkog prostora kexec/kdump u Linuxu) i pomoćne programe specifične za distribuciju.

Ubuntu/Debian:

sudo apt update && sudo apt install kdump-tools kexec-tools crash -y

Tijekom interaktivne instalacije na Ubuntuu, može se pojaviti debconf upit koji pita želite li automatski konfigurirati parametar crashkernel. Odaberite Da ako vas se to pita. Ako se upit ne pojavi (npr. u neinteraktivnom načinu), crashkernel se automatski konfigurira putem drop-in datoteke. Ako kasnije trebate prilagoditi vrijednost, Korak 2 pokriva ručnu konfiguraciju.

RHEL/CentOS/AlmaLinux:

sudo dnf install kexec-tools crash -y

Na sustavima temeljenim na RHEL-u, paket kexec-tools pruža sve što je potrebno: binarnu datoteku kexec, uslugu kdump i zadane konfiguracijske datoteke.

Info

Na modernim verzijama poput AlmaLinuxa 9 i 10, kexec-tools je obično unaprijed instaliran, a usluga kdump.service je već aktivna prema zadanim postavkama. To možete provjeriti pokretanjem cat /sys/kernel/kexec_crash_loaded – ako vrati 1, Koraci 2 i 4 mogu se sigurno preskočiti.

Info

Paket crash standardni je Linux alat za analizu vmcore datoteka. Njegova instalacija sada uštedjet će vam vrijeme kada stvarno budete morali pregledati ispis.

Korak 2: Konfigurirajte parametar pokretanja crashkernel

Parametar crashkernel govori jezgri koliko memorije rezervirati za kdump u Linuxu u vrijeme pokretanja. Bez ove rezervacije, jezgra za hvatanje nema gdje raditi. Razumijevanje kako pravilno konfigurirati vrijednosti parametra crashkernel je ključno – premalo i jezgra za hvatanje se neće pokrenuti; previše i gubite produkcijski RAM.

2.1 Provjerite trenutnu konfiguraciju

Prvo provjerite je li crashkernel već postavljen:

cat /proc/cmdline | grep crashkernel

Ako izlaz sadrži unos crashkernel=, parametar je već konfiguriran. Možete provjeriti rezerviranu količinu i prijeći na Korak 3 ako zadovoljava vaše potrebe.

2.2 Konfigurirajte parametar crashkernel na sustavima temeljenim na GRUB-u

Ubuntu/Debian:

Prije modificiranja glavne GRUB konfiguracije, provjerite postoji li već drop-in datoteka:

cat /etc/default/grub.d/kdump-tools.cfg

Ako je paket već konfigurirao crashkernel ovdje, modificirajte ovu datoteku umjesto toga kako biste spriječili duplicirane unose u grub.cfg. U suprotnom, otvorite glavnu datoteku zadanih postavki GRUB-a:

sudo nano /etc/default/grub

Pronađite redak GRUB_CMDLINE_LINUX_DEFAULT i dodajte parametar crashkernel. Za većinu produkcijskih poslužitelja s 4 GB ili više RAM-a, 256 MB je dovoljno za rezervaciju memorije za kdump u Linuxu:

GRUB_CMDLINE_LINUX_DEFAULT="quiet crashkernel=256M"

Info

Ako redak već ima druge parametre, dodajte crashkernel=256M nakon razmaka – nemojte zamjenjivati postojeće vrijednosti.

Za poslužitelje s manje od 4 GB RAM-a koristite crashkernel=128M. Za sustave s 64 GB ili više, razmislite o crashkernel=512M. Možete koristiti i sintaksu automatskog skaliranja crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M za dinamičku konfiguraciju vrijednosti parametra crashkernel na temelju instaliranog RAM-a.

Spremite i zatvorite datoteku, a zatim ponovno generirajte GRUB konfiguraciju:

sudo update-grub

RHEL/CentOS/AlmaLinux:

Za RHEL/AlmaLinux 8+, parametar crashkernel nalazi se u GRUB_CMDLINE_LINUX (bez _DEFAULT). Međutim, na modernim sustavima koji koriste BLS (Boot Loader Specification), najsigurniji i preporučeni način ažuriranja naredbenog retka jezgre je korištenje grubby umjesto izravnog modificiranja /etc/default/grub:

sudo grubby --update-kernel=ALL --args="crashkernel=256M"

Ako ga morate ručno modificirati putem GRUB konfiguracija, uredite /etc/default/grub i ažurirajte GRUB_CMDLINE_LINUX. Zatim ponovno generirajte konfiguraciju (putevi variraju ovisno o načinu pokretanja):

# Za legacy BIOS sustave: sudo grub2-mkconfig -o /boot/grub2/grub.cfg # Za UEFI sustave (npr. AlmaLinux): sudo grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

Warning

Pogrešna GRUB konfiguracija može učiniti sustav nepokretljivim. Dvaput provjerite svoje unose. Ako imate pristup konzoli (IPMI/KVM), držite ga spremnim.

2.3 Ponovno pokrenite da biste primijenili rezervaciju crashkernel

Rezervacija memorije crashkernel stupa na snagu tek nakon ponovnog pokretanja:

sudo reboot

Nakon što se sustav ponovno pokrene, provjerite je li rezervacija aktivna:

cat /proc/cmdline | grep crashkernel

Očekivani izlaz uključuje:

crashkernel=256M

Također potvrdite da je memorija stvarno rezervirana:

sudo dmesg | grep -i "crashkernel reserved"

Trebali biste vidjeti redak poput:

crashkernel reserved: 0x... - 0x... (NNN MB)

Ako je rezervacija nije uspjela (poruka kaže "crashkernel reservation failed"), možda ćete morati povećati ili smanjiti vrijednost. Ovo je uobičajen korak u rješavanju problema s panikom jezgre u Linuxu – jezgra nije mogla pronaći kontinuirani blok tražene veličine.

Korak 3: Konfigurirajte postavke usluge kdump u Linuxu

S rezerviranom memorijom, konfigurirajte gdje i kako kdump pohranjuje vmcore.

3.1 Konfiguracija na RHEL/CentOS/AlmaLinux

Glavna konfiguracijska datoteka je /etc/kdump.conf. Otvorite je:

sudo nano /etc/kdump.conf

Kritične direktive:

path /var/crash core_collector makedumpfile -l --message-level 7 -d 31

  • path /var/crash: postavlja ciljni direktorij vmcore. Svi ispisi rušenja završavaju ovdje.
  • core_collector makedumpfile: komprimira ispis i filtrira nepotrebne stranice. Zastavica -d 31 isključuje nulte stranice, predmemoriju, korisničke podatke i slobodne stranice – obično smanjujući vmcore na 10-20% ukupnog RAM-a.

Info

Zadani put /var/crash relativan je na korijenski datotečni sustav. Ako je vaša korijenska particija mala, razmislite o usmjeravanju ovoga na namjensku particiju ili vanjsku točku montiranja s dovoljno prostora.

3.2 Konfiguracija na Ubuntu/Debian

Na sustavima temeljenim na Debianu, konfiguracija kdump-tools nalazi se u /etc/default/kdump-tools. Otvorite je:

sudo nano /etc/default/kdump-tools

Osigurajte da su ovi redci postavljeni:

USE_KDUMP=1 KDUMP_COREDIR="/var/crash" KDUMP_CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31"

USE_KDUMP=1 omogućuje uslugu kdump. Bez toga, jezgra za hvatanje neće biti učitana pri pokretanju.

Korak 4: Omogućite i pokrenite uslugu kdump

Ovo je posljednji korak u tome kako omogućiti kdump u Linuxu. Omogućite uslugu kdump kako bi se jezgra za hvatanje automatski učitala pri svakom pokretanju, čime se dovršava postavljanje kexec/kdump u Linuxu.

Ubuntu/Debian:

sudo systemctl enable kdump-tools sudo systemctl start kdump-tools

RHEL/CentOS/AlmaLinux:

sudo systemctl enable kdump sudo systemctl start kdump

Provjerite radi li usluga:

Ubuntu/Debian:

sudo systemctl status kdump-tools

RHEL/CentOS/AlmaLinux:

sudo systemctl status kdump

Očekivani izlaz uključuje:

Active: active (exited)

Stanje "exited" (izašao) je normalno – usluga kdump učitava jezgru za hvatanje u rezerviranu memoriju, a zatim izlazi. Ne radi kao trajni demon.

Info

Ako se usluga ne pokrene, pokrenite journalctl -xeu kdump (ili kdump-tools na sustavima temeljenim na Debianu) da vidite zašto. Najčešći uzrok je nedostajuća ili nedovoljna rezervacija crashkernel – vratite se na Korak 2.

Korak 5: Provjera i testiranje

5.1 Provjerite je li kdump spreman

Potvrdite da je jezgra za hvatanje učitana i spremna za aktivaciju pri panici jezgre:

cat /sys/kernel/kexec_crash_loaded

Očekivani izlaz:

1

Vrijednost 1 znači da je jezgra za hvatanje učitana. Vrijednost 0 znači da kdump nije operativan – vratite se i provjerite status usluge i rezervaciju crashkernel.

Također možete pregledati koliko je memorije odvojeno za rezervaciju memorije za kdump u Linuxu:

cat /sys/kernel/kexec_crash_size

Ovo vraća rezervaciju u bajtovima.

5.2 Pokrenite testno rušenje

Warning

Sljedeća naredba uzrokuje trenutnu paniku jezgre. Sustav će se srušiti, uhvatiti vmcore i ponovno pokrenuti. Nikada nemojte ovo pokretati na produkcijskom poslužitelju tijekom radnog vremena bez prozora za održavanje. Osigurajte da su sve kritične usluge ili ispražnjene ili da je poslužitelj izvan rotacije balancera opterećenja.

Omogućite SysRq okidače, a zatim prisilite rušenje:

echo 1 | sudo tee /proc/sys/kernel/sysrq echo c | sudo tee /proc/sysrq-trigger

Sustav će doživjeti paniku. Ako je kdump pravilno konfiguriran, jezgra za hvatanje se pokreće, zapisuje vmcore u /var/crash i sustav se automatski ponovno pokreće.

Info

Vaša SSH sesija trenutno će prekinuti. Pričekajte 3–5 minuta da se ispis zapiše i da se sustav u potpunosti ponovno pokrene prije nego što pokušate ponovno povezati.

5.3 Potvrdite da je vmcore uhvaćen

Nakon ponovnog pokretanja, provjerite /var/crash za ispis:

ls -lh /var/crash/

Očekivani izlaz (format varira ovisno o distribuciji):

RHEL obitelj (AlmaLinux/CentOS):

drwxr-xr-x 2 root root 4.0K May 23 14:00 127.0.0.1-2026-05-23-14:00:01/

Unutar ovog direktorija s vremenskom oznakom pronaći ćete vmcore (ispis memorije) i vmcore-dmesg.txt (dnevnik jezgre).

Debian obitelj (Ubuntu/Debian):

drwxr-xr-x 2 root root 4.0K May 23 14:00 202605231400/

Unutar ovog direktorija, datoteke su obično nazvane dump.<vremenska_oznaka> i dmesg.<vremenska_oznaka>.

Provjerite unutar direktorija:

ls -lh /var/crash/*/

Vidjeti ove datoteke potvrđuje da je vaš cjevovod za ispis rušenja jezgre Linux u potpunosti operativan.

Korak 6: Analizirajte vmcore datoteku

Hvatanje ispisa rušenja korisno je samo ako ga možete pročitati. Alat crash standardni je alat na koji se administratori Linuxa oslanjaju za analizu vmcore datoteka i rješavanje problema s panikom jezgre u Linuxu.

6.1 Instalirajte jezgru za otklanjanje pogrešaka (debug)

Alat crash zahtijeva simbole za otklanjanje pogrešaka za točnu verziju jezgre koja je doživjela paniku.

Ubuntu:

echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ddebs.list sudo apt install ubuntu-dbgsym-keyring sudo apt update sudo apt install linux-image-unsigned-$(uname -r)-dbgsym

Info

Za potpisane jezgre, simboli za otklanjanje pogrešaka nalaze se u paketu unsigned.

Debian:

echo "deb http://deb.debian.org/debian-debug/ $(lsb_release -cs)-debug main" | sudo tee /etc/apt/sources.list.d/debian-debug.list sudo apt update sudo apt install linux-image-$(uname -r)-dbg

Info

Morate instalirati točnu verziju simbola za otklanjanje pogrešaka. Ako paket nije pronađen, ažurirajte svoju jezgru na najnoviju dostupnu verziju i ponovno pokrenite sustav.

RHEL/CentOS/AlmaLinux:

sudo dnf --enablerepo='*-debuginfo' install -y kernel-debuginfo-$(uname -r)

Info

Alternativno, možete koristiti sudo dnf debuginfo-install -y kernel-$(uname -r) ako je dodatak debuginfo-install dostupan.

6.2 Otvorite vmcore s crash

Prije pokretanja crash, provjerite jesu li simboli za otklanjanje pogrešaka instalirani i odgovaraju li vašoj verziji jezgre kako je ne biste pokrenuli naslijepo:

# RHEL/Debian: ls -lh /usr/lib/debug/lib/modules/$(uname -r)/vmlinux # Ubuntu: ls -lh /usr/lib/debug/boot/vmlinux-$(uname -r)

Idite u direktorij ispisa rušenja i otvorite vmcore (točna naredba varira ovisno o OS-u):

RHEL/CentOS/AlmaLinux:

sudo crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/*/vmcore

Debian:

sudo crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/*/dump.*

Ubuntu:

sudo crash /usr/lib/debug/boot/vmlinux-$(uname -r) /var/crash/*/dump.*

Alat crash se učitava i baca vas u interaktivnu ljusku. Ključne naredbe za početni trijažu:

bt # povratni trag (backtrace) zadatka koji je izazvao paniku log # međuspremnik dnevnika jezgre (isto kao dmesg u vrijeme panike) ps # popis procesa u vrijeme rušenja mod # učitani moduli jezgre sys # informacije o sustavu

Upišite exit ili quit za izlazak iz ljuske crash.

Info

Započnite s bt da biste vidjeli točan stog poziva koji je pokrenuo paniku. U većini slučajeva, to odmah ukazuje na krivi modul ili upravljački program jezgre – najizravniju dostupnu tehniku za rješavanje problema s panikom jezgre u Linuxu.

Povratak promjena (Rollback)

Za poništavanje konfiguracije kdump i vraćanje rezervirane memorije:

1. Zaustavite i onemogućite uslugu kdump:

Ubuntu/Debian:

sudo systemctl disable --now kdump-tools

RHEL/CentOS/AlmaLinux:

sudo systemctl disable --now kdump

2. Uklonite parametar crashkernel:

Ubuntu/Debian:

Otvorite drop-in konfiguracijsku datoteku:

sudo nano /etc/default/grub.d/kdump-tools.cfg

Uklonite parametar crashkernel (ako ste ga ručno dodali u /etc/default/grub, umjesto toga uredite tu datoteku).

RHEL/CentOS/AlmaLinux:

Otvorite datoteku zadanih postavki GRUB-a:

sudo nano /etc/default/grub

Uklonite crashkernel=256M iz retka GRUB_CMDLINE_LINUX ili GRUB_CMDLINE_LINUX_DEFAULT.

Ponovno generirajte GRUB:

Ubuntu/Debian:

sudo update-grub

RHEL/CentOS/AlmaLinux:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

3. Ponovno pokrenite da biste oslobodili rezerviranu memoriju:

sudo reboot

4. Uklonite pakete (opcionalno):

Ubuntu/Debian:

sudo apt remove --purge kdump-tools kexec-tools crash -y

RHEL/CentOS/AlmaLinux:

sudo dnf remove kexec-tools crash -y

Warning

Uklanjanje kdumpa znači da sustav više neće hvatati ispise rušenja pri panici jezgre. Postojeće vmcore datoteke u /var/crash se ne brišu – arhivirajte ih ili ručno uklonite ako vam treba prostor na disku.

Rješavanje problema

Usluga kdump se ne pokreće

Provjerite dnevnik za razlog:

journalctl -xeu kdump

Uobičajeni uzroci:

  • Nema rezervacije crashkernel. Provjerite s cat /proc/cmdline | grep crashkernel. Ako nedostaje, ponovite Korak 2.
  • Nedovoljno rezervirana memorija. Jezgri za hvatanje potrebno je dovoljno RAM-a za inicijalizaciju i zapisivanje ispisa. Pokušajte povećati vrijednost (npr. crashkernel=512M).
  • Sukob sa Secure Boot. Neke konfiguracije Secure Boot-a sprječavaju kexec da učita nepotpisane jezgre. Potpišite jezgru za hvatanje ili onemogućite Secure Boot u BIOS-u.

Vmcore nije zapisan nakon panike

  • Prostor na disku. Provjerite ima li /var/crash dovoljno slobodnog prostora. Vmcore može biti veličine fizičkog RAM-a (prije kompresije makedumpfile).
  • Pogrešan put. Potvrdite da path u /etc/kdump.conf (ili KDUMP_COREDIR u /etc/default/kdump-tools) pokazuje na montirani datotečni sustav s dopuštenjem za pisanje.
  • SELinux odbijanje. Na sustavima temeljenim na RHEL-u, provjerite ausearch -m avc -ts recent za odbijanja povezana s kdumpom.

Sustav se zamrzne umjesto da uhvati ispis

Ovo obično ukazuje na problem s hardverom ili upravljačkim programom koji sprječava prijelaz kexec/kdump u Linuxu. Pokušajte dodati irqpoll nr_cpus=1 reset_devices u naredbeni redak jezgre kdump u /etc/sysconfig/kdump (RHEL) ili /etc/default/kdump-tools (Debian) kao KDUMP_CMDLINE_APPEND.

Zaključak

To je sve. Crashkernel rezervira memoriju, usluga kdump učitava jezgru za hvatanje pri pokretanju, a pri ispisu rušenja panike jezgre Linux, vmcore završava u /var/crash – spreman za konfiguraciju ispisa rušenja u Linuxu kojoj stvarno možete vjerovati. Sada imate radnu postavku za automatsko omogućavanje hvatanja ispisa rušenja kdump u Linuxu; za dublje rješavanje problema s panikom jezgre u Linuxu, proslijedite vmcore u crash i započnite s povratnim tragom.

Verzija dokumenta: 1.0
Zadnje ažuriranje: Svibanj 2026.
Vlasnik: Tim za tehničku dokumentaciju

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA