Skip to content

dargad/dracut-kdump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

dracut-kdump-modules - Kdump Dracut Modules for Ubuntu

Disclaimer: This is an experimental implementation (or a Proof-of-Concept) to explore what's needed to enable kdump with dracut on Ubuntu. It is not production-ready and is intended for testing and development purposes only.

Dracut modules for capturing kernel crash dumps (vmcore) on Ubuntu systems.

Modules

Module Description Dump Location
99kdump Standard kdump - captures at pre-mount stage Root filesystem (/var/crash)
99earlykdump Early kdump - captures before root is mounted Dedicated partition

When to Use Which

  • 99kdump: Standard systems where root filesystem is reliable
  • 99earlykdump: Systems with network root, encrypted root, or when root may be corrupted after crash

Installation

# Install dependencies
sudo apt install kdump-tools kexec-tools makedumpfile dracut

# Configure crashkernel in /etc/default/grub
#   GRUB_CMDLINE_LINUX="crashkernel=256M"
sudo update-grub && sudo reboot

# Clone and install modules
git clone https://github.com/<user>/dracut-kdump-modules.git
cd dracut-kdump-modules
sudo cp -r usr/lib/dracut/modules.d/99kdump /usr/lib/dracut/modules.d/
sudo cp -r usr/lib/dracut/modules.d/99earlykdump /usr/lib/dracut/modules.d/
sudo chmod +x /usr/lib/dracut/modules.d/99kdump/*.sh
sudo chmod +x /usr/lib/dracut/modules.d/99earlykdump/*.sh

Quick Setup

Option A: Standard kdump (99kdump)

# Configure
echo "USE_KDUMP=1" | sudo tee -a /etc/default/kdump-tools

# Build and load
sudo dracut -f --add "kdump" /boot/initrd.img-$(uname -r) $(uname -r)
sudo kdump-config load

Dumps saved to /var/crash/

Option B: Early kdump (99earlykdump)

# Create crash partition
sudo mkfs.ext4 -L crash /dev/sdX

# Configure
cat << 'EOF' | sudo tee -a /etc/default/kdump-tools
USE_KDUMP=1
KDUMP_EARLY=1
KDUMP_EARLY_TARGET=LABEL=crash
EOF

# Build and load
sudo dracut -f --add "earlykdump" /boot/initrd.img-$(uname -r) $(uname -r)
sudo kdump-config load

Dumps saved to crash partition (/crash/)

Testing

# Verify kdump is ready
sudo kdump-config show
cat /sys/kernel/kexec_crash_loaded  # Should be 1

# Trigger crash (from console, not SSH!)
echo c | sudo tee /proc/sysrq-trigger

# After reboot, check dumps
ls -la /var/crash/                           # 99kdump
sudo mount LABEL=crash /mnt && ls /mnt/crash # 99earlykdump

Requirements

  • Ubuntu 24.04+ with dracut
  • Kernel with CONFIG_CRASH_DUMP=y
  • Packages: kdump-tools, kexec-tools, makedumpfile, dracut
  • crashkernel memory reservation in kernel command line

License

SPDX-License-Identifier: GPL-2.0-or-later

About

Attempts to enable kdump with dracut images

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages