Men-debug kerusakan kernel menggunakan kdump

Pendahuluan

kdump adalah layanan yang membuat dump kerusakan ketika terjadi kerusakan kernel. Layanan ini menggunakan kexec(8) untuk melakukan boot ke kernel sekunder (dikenal sebagai kernel penangkap atau capture kernel), kemudian mengekspor isi memori kernel (dikenal sebagai crash dump atau vmcore) ke sistem berkas. Isi dari vmcore kemudian dapat dianalisis untuk menemukan penyebab utama dari kerusakan kernel.

Konfigurasi kdump memerlukan pengaturan argumen kernel crashkernel dan pengaktifan layanan systemd kdump. Memori harus dicadangkan untuk kernel penangkap selama proses boot kernel pertama. crashkernel=auto umumnya tidak mencadangkan cukup memori di Fedora CoreOS, sehingga disarankan untuk menentukan crashkernel=300M.

Secara bawaan, vmcore akan disimpan di /var/crash. Anda juga dapat menulis dump ke lokasi lain di sistem lokal atau mengirimnya melalui jaringan dengan mengedit berkas /etc/kdump.conf. Untuk informasi tambahan, lihat kdump.conf(5) serta komentar dalam /etc/kdump.conf dan /etc/sysconfig/kdump.

Mengonfigurasi kdump melalui Ignition

Contoh konfigurasi kdump
variant: fcos
version: 1.6.0
kernel_arguments:
  should_exist:
  - 'crashkernel=300M'
systemd:
  units:
  - name: kdump.service
    enabled: true

Mengonfigurasi kdump setelah penyediaan awal

  1. Atur argumen kernel crashkernel

    sudo rpm-ostree kargs --append='crashkernel=300M'

    Informasi lebih lanjut tentang cara mengubah kargs melalui rpm-ostree.

  2. Aktifkan layanan systemd kdump.

    sudo systemctl enable kdump.service
  3. Mulai ulang sistem Anda.

    sudo systemctl reboot
Sangat disarankan untuk menguji konfigurasi setelah menyiapkan layanan kdump, dengan memperhatikan jumlah memori yang dicadangkan untuk kernel penangkap. Untuk mengetahui cara menguji bahwa kdump berfungsi dengan benar dan cara menganalisis dump, lihat dokumentasi kdump untuk Fedora dan dokumentasi Linux kernel tentang kdump.