#!/bin/bash # # Fix things during bootup - run very first # Executed at the begining of /etc/rc.d/rc.sysinit # # Urs Beyerle # ### definitions # dir of mounted /$MOUNTDIR/live MOUNTDIR=livecd # source functions . /$MOUNTDIR/live/liblinuxlive . /etc/init.d/functions ### get boot parameters # root on NFS? NFSROOT=$( cmdline_value nfsroot ) # kernel modules for blacklist? BLACKLIST=$( cmdline_value blacklist ) # disable udev hotplug? NOHOTPLUG=$( cmdline_parameter nohotplug ) ### create /srv and /selinux mkdir -p /srv mkdir -p /selinux ### blacklist file [ -e /etc/hotplug/blacklist ] && BLACKLIST_FILE=/etc/hotplug/blacklist [ -e /etc/modprobe.d/blacklist ] && BLACKLIST_FILE=/etc/modprobe.d/blacklist [ -e /etc/modprobe.d/blacklist.conf ] && BLACKLIST_FILE=/etc/modprobe.d/blacklist.conf ### put wireless kernel module on blacklist, if boot over NFS # we don't need to load wireless modules, if we boot over network if [ $NFSROOT ]; then echo "Disable probing for wireless modules on diskless client" cp -a ${BLACKLIST_FILE} ${BLACKLIST_FILE}.ori echo >> ${BLACKLIST_FILE} echo "# Disable wireless modules on diskless client" >> ${BLACKLIST_FILE} # for SL4 if [ -e /etc/hotplug/blacklist ]; then find /lib/modules/$( uname -r )/kernel/drivers/net/wireless -type f | grep -v "_" | while read module; do basename $module | cut -d"." -f 1 done >> ${BLACKLIST_FILE} fi # for SL5 if [ -e /etc/modprobe.d/blacklist ]; then find /lib/modules/$( uname -r )/kernel/drivers/net/wireless -type f | grep -v "_" | while read module; do echo -n "blacklist "; basename $module | cut -d"." -f 1 done >> ${BLACKLIST_FILE} fi fi ### blacklist kernel modules if [ -n $BLACKLIST ]; then cp -a ${BLACKLIST_FILE} ${BLACKLIST_FILE}.ori echo "# Added by boot parameter (LiveCD)" >> ${BLACKLIST_FILE} for module in `echo "$BLACKLIST" | tr ':' ' '`; do echo "blacklist $module" >> ${BLACKLIST_FILE} done echo >> ${BLACKLIST_FILE} fi ### disable udev hotplug - may make the system unusable [ -e /lib/udev/udev_run_hotplugd ] && HOTPLUG_FILE=/lib/udev/udev_run_hotplugd # SL5 if [ $NOHOTPLUG ] && [ $HOTPLUG_FILE ]; then mv ${HOTPLUG_FILE} ${HOTPLUG_FILE}.ori touch ${HOTPLUG_FILE} chmod 755 ${HOTPLUG_FILE} fi