How to debug Dracut problems

From FedoraProject

Revision as of 17:08, 2 July 2009 by Johannbg (Talk | contribs)

Jump to: navigation, search


Debugging

All bug reports

In all cases, the following should be mentioned and attached to your bug report:

The exact kernel command line used!

An copy of /etc/fstab

cp /etc/fstab ~USER/Desktop/fstab.txt

The output of dmsetup ls --tree.

 dmsetup ls --tree > ~USER/Desktop/dmsetup.txt

If using an raid device the output of cat /proc/mdstat.

 cat /proc/mdstat > ~USER/Desktop/mdstat.txt

Preparing your system for debugging

To be successful in debugging you will need setup and remotely connect to the serial console.

Add the following lines to you /etc/grub.conf

Note.png

Beneath timeout=5 put..

serial --unit=0 --speed=9600
terminal --timeout=5 serial console

At the end of the kernel line put..

console=tty0 console=ttyS0,9600

So /etc/grub.conf looks something like this now

default=0
timeout=5
serial --unit=0 --speed=9600
terminal --timeout=5 serial console
title Fedora (2.6.29.5-191.fc11.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 console=ttyS0,9600
        initrd /initrd-2.6.29.5-191.fc11.x86_64.img
Idea.png
You can redirect all non-interactive stuff output to /dev/kmsg and the kernel will put it out on the console when it reaches the kernel buffer by doing
exec >/dev/kmsg 2>&1 </dev/console

Create the image debug with debug enabled.

dracut -a debug <imagename> <kernel version>
Idea.png
You can overwrite an existing image by using the -f option.
dracut -f -a debug <imagename> <kernel version>

Boot with debug enable.

rdinitdebug rdnetdebug

Using the Dracut shell

When boot fails you might be dropped to to a the Dracut shell which you can use to debug.

  1. FIXME Example's needed on how to use the shell..

Dracut debugging kernel command parameters

rdinitdebug
Note.png
set -x for the dracut shell
rdbreak=[pre-udev|pre-mount|mount|pre-pivot|]
Note.png
drop the shell on defined breakpoint
rdudevinfo
Note.png
set udev to loglevel info
dudevdebug
Note.png
set udev to loglevel debug
rdnetdebug
Note.png
debug network scripts in dracut