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.
| 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 |
- 99kdump: Standard systems where root filesystem is reliable
- 99earlykdump: Systems with network root, encrypted root, or when root may be corrupted after crash
# 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# 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 loadDumps saved to /var/crash/
# 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 loadDumps saved to crash partition (/crash/)
# 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- Ubuntu 24.04+ with dracut
- Kernel with
CONFIG_CRASH_DUMP=y - Packages:
kdump-tools,kexec-tools,makedumpfile,dracut crashkernelmemory reservation in kernel command line
SPDX-License-Identifier: GPL-2.0-or-later