cd114f9c179d6d9a5e9ef5c6d2a4d4b83fa98e2e
[automated-distro-installer] / fai / config / scripts / CENTOS / 30-mkinitrd
1 #! /bin/bash
2
3 # (c) Michael Goetze, 2010-2011, mgoetze@mgoetze.net
4 # (c) Thomas Lange, 2011, Uni Koeln
5
6 error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
7
8 ainsl -v /etc/fstab "proc /proc proc defaults 0 0"
9 ainsl -v /etc/fstab "sysfs /sys sysfs auto 0 0"
10
11 version=`$ROOTCMD rpm -qv kernel | cut -d- -f2-`
12
13 use_mkinitrd() {
14
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...
20
21 drivers=""
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"
28 fi
29 done
30 done
31
32 $ROOTCMD mkinitrd -f -v $drivers /boot/initrd-$version.img $version
33
34 if [ $? -eq 1 ]; then
35 echo "WARNING: generating initrd with list of drivers failed. Trying without."
36 $ROOTCMD mkinitrd -f -v /boot/initrd-$version.img $version
37 fi
38 }
39
40 # CentOS 5 uses mkinitrd
41 if [ -f $target/sbin/mkinitrd ]; then
42 use_mkinitrd
43 fi
44
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 "'
48 fi
49
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
55 fi
56
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
62 fi
63
64 exit $error