#! /bin/bash # (c) Michael Goetze, 2010-2011, mgoetze@mgoetze.net # (c) Thomas Lange, 2011, Uni Koeln error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code ainsl -v /etc/fstab "proc /proc proc defaults 0 0" ainsl -v /etc/fstab "sysfs /sys sysfs auto 0 0" version=`$ROOTCMD rpm -qv kernel | cut -d- -f2-` use_mkinitrd() { # CentOS 5 uses mkinitrd $ROOTCMD kudzu -q -k $version # Unfortunately mkinitrd is horrible at guessing which modules to include, # especially when the running kernel is different than the kernel for which # we are creating an initrd... drivers="" for bus in pci virtio; do for dr in `$ROOTCMD kudzu -p -k $version -b $bus|grep driver:|cut -d' ' -f2|sort -u`; do found=`find $target/lib/modules/$version/ -name $dr.ko 2>/dev/null` if [ -n "$found" ]; then # add driver only if it's available as .ko module in the destination kernel drivers+=" --with=$dr" fi done done $ROOTCMD mkinitrd -f -v $drivers /boot/initrd-$version.img $version if [ $? -eq 1 ]; then echo "WARNING: generating initrd with list of drivers failed. Trying without." $ROOTCMD mkinitrd -f -v /boot/initrd-$version.img $version fi } # CentOS 5 uses mkinitrd if [ -f $target/sbin/mkinitrd ]; then use_mkinitrd fi # call dracut for CentOS 7 if [ -f $target/usr/sbin/dracut ]; then # add filesystem driver into initrd ainsl -av /etc/dracut.conf.d/fai.conf 'filesystems+="ext4"' $ROOTCMD dracut -v --kver $version --force fi # for CentOS 6 we do not need to call dracut exit $error