summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian C. Lane <bcl@redhat.com>2012-03-26 15:50:59 -0700
committerBrian C. Lane <bcl@redhat.com>2012-03-27 08:59:39 -0700
commit18cf04a0faad854149abe1555e23fb03f710ba1f (patch)
tree17dc342688fef34310c84dbd31b1cac954a38c6a
parent1a3dda93c9061ad1091ff7f72d5e4e129d8c675e (diff)
downloadanaconda-18cf04a0faad854149abe1555e23fb03f710ba1f.tar.gz
anaconda-18cf04a0faad854149abe1555e23fb03f710ba1f.tar.xz
anaconda-18cf04a0faad854149abe1555e23fb03f710ba1f.zip
load modules needed by Anaconda (#804522)
Anaconda expects a minimum set of modules to be loaded, things like raid1, etc.
-rw-r--r--dracut/Makefile.am3
-rw-r--r--dracut/anaconda-modprobe.sh27
-rwxr-xr-xdracut/module-setup.sh1
3 files changed, 30 insertions, 1 deletions
diff --git a/dracut/Makefile.am b/dracut/Makefile.am
index a07060bb6..2efe38da4 100644
--- a/dracut/Makefile.am
+++ b/dracut/Makefile.am
@@ -33,7 +33,8 @@ dist_dracut_SCRIPTS = module-setup.sh \
anaconda-copy-ks.sh \
fetch-kickstart-net.sh \
fetch-kickstart-disk \
- parse-kickstart
+ parse-kickstart \
+ anaconda-modprobe.sh
MAINTAINERCLEANFILES = Makefile.in
diff --git a/dracut/anaconda-modprobe.sh b/dracut/anaconda-modprobe.sh
new file mode 100644
index 000000000..e3d98eca9
--- /dev/null
+++ b/dracut/anaconda-modprobe.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# load modules needed by anaconda
+ARCH=$(uname -m)
+KERNEL=$(uname -r)
+
+MODULE_LIST="cramfs squashfs iscsi_tcp"
+
+SCSI_MODULES=/lib/modules/$KERNEL/kernel/drivers/scsi/device_handler/
+for m in $SCSI_MODULES/*.ko; do
+ MODULE_LIST+="`basename $m .ko` "
+done
+
+if [ "$ARCH" != "s390" -a "$ARCH" != "s390x" ]; then
+ MODULE_LIST+="floppy edd iscsi_ibft"
+fi
+
+if [ "$ARCH" = "ppc" ]; then
+ MODULE_LIST+="spufs"
+fi
+
+MODULE_LIST+="raid0 raid1 raid5 raid6 raid456 raid10 linear dm-mod dm-zero \
+ dm-mirror dm-snapshot dm-multipath dm-round-robin dm-crypt cbc sha256 lrw xts"
+
+for m in $MODULE_LIST; do
+ modprobe $m
+done
+
diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh
index 2a61c6ead..3c0bcbe55 100755
--- a/dracut/module-setup.sh
+++ b/dracut/module-setup.sh
@@ -14,6 +14,7 @@ depends() {
install() {
# anaconda
inst "$moddir/anaconda-lib.sh" "/lib/anaconda-lib.sh"
+ inst_hook cmdline 24 "$moddir/anaconda-modprobe.sh"
inst_hook cmdline 25 "$moddir/parse-anaconda-options.sh"
inst_hook cmdline 26 "$moddir/parse-anaconda-kickstart.sh"
inst_hook cmdline 27 "$moddir/parse-anaconda-repo.sh"