From Fedora Project Wiki

m (moved User:Johannbg/QA/Dracut/Debugging to Dracut/Debugging: Ready for general public)
No edit summary
Line 96: Line 96:


{{admon/note|debug network scripts in dracut}}
{{admon/note|debug network scripts in dracut}}
[[Category:Debugging]]

Revision as of 23:14, 2 July 2009


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

A copy of /etc/dracut.conf if you have edited it.

 cp /etc/dracut.conf ~USER/home/Desktop/dracut.conf.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

This example uses the first serial port, giving <serial_port> the value 0, which in turn gives kernel parameter console=ttyS0

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 should look something like this after you've made those changes..

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.

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>
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 shell which you can use to debug.

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

Dracut debugging kernel command parameters

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