]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
control filesystems included in the generic initramfs
authorDan Horák <dan@danny.cz>
Tue, 3 Nov 2009 10:50:55 +0000 (11:50 +0100)
committerHarald Hoyer <harald@redhat.com>
Tue, 10 Nov 2009 10:16:50 +0000 (11:16 +0100)
New "filesystems" command line/config file option is added with the ability to
control the list of kernel filesystem modules that are included in the generic
initramfs.

Signed-off-by: Dan Horák <dan@danny.cz>
dracut
dracut.8
dracut.conf
modules.d/90kernel-modules/installkernel

diff --git a/dracut b/dracut
index 3404fdda1da9f6a58a61bec605b09f129578c8e2..7227f8c739d3e5383c0d8bdb5b59f769738c9094 100755 (executable)
--- a/dracut
+++ b/dracut
@@ -37,6 +37,9 @@ Creates initial ramdisk images for preloading modules
                         exclusively include in the initramfs.
   --add-drivers [LIST]  Specify a space-separated list of kernel 
                         modules to add to the initramfs.
+  --filesystems [LIST]  Specify a space-separated list of kernel filesystem
+                        modules to exclusively include in the generic
+                        initramfs.
   -k, --kmoddir [DIR]   Specify the directory, where to look for kernel 
                         modules
   --fwdir [DIR]         Specify additional directories, where to look for 
@@ -76,6 +79,7 @@ while (($# > 0)); do
        -a|--add) add_dracutmodules_l="$2"; shift;;
        -d|--drivers) drivers_l="$2"; shift;;
        --add-drivers) add_drivers_l="$2"; shift;;
+       --filesystems) filesystems_l="$2"; shift;;
        -k|--kmoddir) drivers_dir_l="$2"; shift;;
        --fwdir) fw_dir_l="$2"; shift;;
        --kernel-only) kernel_only="yes"; nokernel="no";;
@@ -127,6 +131,7 @@ fi
 [[ $add_dracutmodules_l ]] && add_dracutmodules="$add_dracutmodules $add_dracutmodules_l"
 [[ $drivers_l ]] && drivers=$drivers_l
 [[ $add_drivers_l ]] && add_drivers=$add_drivers_l
+[[ $filesystems_l ]] && filesystems=$filesystems_l
 [[ $drivers_dir_l ]] && drivers_dir=$drivers_dir_l
 [[ $fw_dir_l ]] && fw_dir=$fw_dir_l
 [[ $do_strip_l ]] && do_strip=$do_strip_l
@@ -180,7 +185,7 @@ chmod 755 "$initdir"
 
 export initdir hookdirs dracutbasedir dracutmodules drivers \
     fw_dir drivers_dir debug beverbose no_kernel kernel_only \
-    add_drivers mdadmconf lvmconf
+    add_drivers mdadmconf lvmconf filesystems
 
 if [[ $kernel_only != yes ]]; then
     # Create some directory structure first
index 26bdb7c4dc82666abd5e8ff5b84f64e77333607f..345deb688db253bed170bbafccd070f0c3b501e8 100644 (file)
--- a/dracut.8
+++ b/dracut.8
@@ -32,6 +32,9 @@ specify a space-separated list of kernel modules to exclusively include in the i
 .BR \-\-add-drivers " \fILIST\fR"
 specify a space-separated list of kernel modules to add to the initramfs.
 .TP
+.BR \-\-filesystems " \fILIST\fR"
+specify a space-separated list of kernel filesystem modules to exclusively include in the generic initramfs.
+.TP
 .BR \-k ", " \-\-kmoddir " \fI{DIR}\fR   
 specify the directory, where to look for kernel modules
 .TP
index 2ebeeda9847cbd9432a0d161b096c8521e3eadfc..8c8db2197f45fc1a6e3b38540a59037930cf44bd 100644 (file)
@@ -9,6 +9,9 @@
 # additional kernel modules to the default
 #add_drivers=""
 
+# list of kernel filesystem modules to be included in the generic initramfs
+#filesystems=""
+
 # build initrd only to boot current hardware
 #hostonly="-h"
 #
index 0535eba3234189b959510c6dec2963e8c2b17193..1b58bb96c1e7263fc48a0b00bb330e56c6ae8361 100755 (executable)
@@ -6,16 +6,20 @@ if [[ -z $drivers ]]; then
         nm -uPA "$1" | egrep -q "$blockfuncs"
     }
     instmods pcmcia sd_mod $(filter_kernel_modules block_module_test) "=drivers/pcmcia" =ide "=drivers/usb/storage"
-    # if not on hostonly mode, install all known filesystems.
+    # if not on hostonly mode, install all known filesystems if the required list is not set via the filesystems variable
     if [[ $hostonly = '' ]]; then
-       instmods '=fs'
+       if [[ -z $filesystems ]]; then
+           instmods '=fs'
+       else
+           instmods $filesystems
+       fi
     else
        instmods $(get_fs_type "/dev/block/$(find_root_block_device)")
     fi
     # hardcoded list of exceptions
     rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
 else
-  instmods $drivers
+  instmods $drivers $filesystems
 fi
 
 [[ $add_drivers ]] && instmods $add_drivers