3 # (c) Michael Goetze, 2010-2011, mgoetze@mgoetze.net
4 # (c) Thomas Lange, 2011, Uni Koeln
6 error
=0; trap 'error=$(($?>$error?$?:$error))' ERR
# save maximum error code
8 ainsl
-v /etc
/fstab
"proc /proc proc defaults 0 0"
9 ainsl
-v /etc
/fstab
"sysfs /sys sysfs auto 0 0"
11 version
=`$ROOTCMD rpm -qv kernel | cut -d- -f2-`
15 # CentOS 5 uses mkinitrd
16 $ROOTCMD kudzu
-q -k $version
17 # Unfortunately mkinitrd is horrible at guessing which modules to include,
18 # especially when the running kernel is different than the kernel for which
19 # we are creating an initrd...
22 for bus
in pci virtio
; do
23 for dr
in `$ROOTCMD kudzu -p -k $version -b $bus|grep driver:|cut -d' ' -f2|sort -u`; do
24 found
=`find $target/lib/modules/$version/ -name $dr.ko 2>/dev/null`
25 if [ -n "$found" ]; then
26 # add driver only if it's available as .ko module in the destination kernel
27 drivers
+=" --with=$dr"
32 $ROOTCMD mkinitrd
-f -v $drivers /boot
/initrd-
$version.img
$version
35 echo "WARNING: generating initrd with list of drivers failed. Trying without."
36 $ROOTCMD mkinitrd
-f -v /boot
/initrd-
$version.img
$version
40 # CentOS 5 uses mkinitrd
41 if [ -f $target/sbin
/mkinitrd
]; then
45 if [ -f $target/etc
/lvm
/lvm.conf
]; then
46 sed -i -e 's/use_lvmetad = 1/use_lvmetad = 0/' $target/etc
/lvm
/lvm.conf
47 ainsl
-av /etc
/dracut.conf.d
/fai.conf
'add_dracutmodules+=" lvm "'
50 # call dracut for CentOS 7
51 if [ -f $target/usr
/sbin
/dracut
]; then
52 # add filesystem driver into initrd
53 ainsl
-av /etc
/dracut.conf.d
/fai.conf
'filesystems+="ext4"'
54 $ROOTCMD dracut
-v --kver $version --force
57 # call dracut for CentOS 6
58 if [ -f $target/sbin
/dracut
]; then
59 # add filesystem driver into initrd
60 ainsl
-av /etc
/dracut.conf.d
/fai.conf
'filesystems+="ext4"'
61 $ROOTCMD dracut
-v $version