How to debug Dracut problems

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Preparing your system for debugging)
(Using the Dracut shell)
Line 64: Line 64:
 
<pre>rdinitdebug rdnetdebug</pre>
 
<pre>rdinitdebug rdnetdebug</pre>
  
== Using the Dracut shell ==
+
== Using the shell to debug ==
  
 
When boot fails you might be dropped to to a the Dracut shell which you can use to debug.
 
When boot fails you might be dropped to to a the Dracut shell which you can use to debug.

Revision as of 21:20, 2 July 2009


header fail


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

Further information on how to configure the kernel for console output can be found here.

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 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 shell to debug

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