add option --ignore-kernel-modules
PATCH 1/1 add option --ignore-kernel-modules
Instead of adding modprobe and rmmod, create symlinks to /bin/true to don't produce unnecessary errors. Anyway it's a workaround for following desired behaviour: modprobe tries to insert module only if it's not built into kernel
--- dracut | 10 +++++++++- dracut.8 | 4 ++++ modules.d/99base/install | 13 ++++++++++--- 3 files changed, 23 insertions(+), 4 deletions(-)
dracut +9 -1
@@ -46,6 +46,10 @@ Creates initial ramdisk images for preloading modules firmwares, separated by : --kernel-only Only install kernel drivers and firmware files --no-kernel Do not install kernel drivers and firmware files + --ignore-kernel-modules + Don't try to load modules. It automatically implies + '--no-kernel'. It's assumed that everything needed + is built into kernel. --strip Strip binaries in the initramfs --nostrip Do not strip binaries in the initramfs (default) --mdadmconf Include local /etc/mdadm.conf
@@ -86,6 +90,10 @@ while (($# > 0)); do --fwdir) fw_dir_l="$2"; shift;; --kernel-only) kernel_only="yes"; no_kernel="no";; --no-kernel) kernel_only="no"; no_kernel="yes";; + --ignore-kernel-modules) kernel_only="no"; no_kernel="yes" + ignore_kmodules="yes" + omit_dracutmodules_l+=\ kernel-modules + ;; --strip) do_strip_l="yes";; --nostrip) do_strip_l="no";; --mdadmconf) mdadmconf_l="yes";;
@@ -228,7 +236,7 @@ chmod 755 "$initdir" export initdir hookdirs dracutbasedir dracutmodules drivers \ fw_dir drivers_dir debug beverbose no_kernel kernel_only \ - add_drivers mdadmconf lvmconf filesystems + add_drivers mdadmconf lvmconf filesystems ignore_kmodules if [[ $kernel_only != yes ]]; then # Create some directory structure first
dracut.8 +4 -0
@@ -52,6 +52,10 @@ only install kernel drivers and firmware files .BR \-\-no-kernel do not install kernel drivers and firmware files .TP +.BR \-\-ignore-kernel-modules +don't try to load modules; it automatically implies \fB--no-kernel\fR; it's +assumed that everything needed is built into kernel +.TP .BR \-\-mdadmconf include local /etc/mdadm.conf .TP
modules.d/99base/install +10 -3
@@ -1,6 +1,13 @@ #!/bin/bash -dracut_install mount mknod mkdir modprobe pidof sleep chroot \ - sed ls flock cp mv dmesg rm ln rmmod mkfifo less +dracut_install mount mknod mkdir pidof sleep chroot sed ls flock cp mv dmesg \ + rm ln mkfifo less +if [[ ${ignore_kmodules} = yes ]]; then + inst /bin/true + ln -s /bin/true "${initdir}"/sbin/modprobe + ln -s /bin/true "${initdir}"/sbin/rmmod +else + dracut_install modprobe rmmod +fi if [ ! -e "${initdir}/bin/sh" ]; then dracut_install bash (ln -s bash "${initdir}/bin/sh" || :)
@@ -18,7 +25,7 @@ if which switch_root >/dev/null 2>&1; then dracut_install switch_root else inst "$moddir/switch_root" "/sbin/switch_root" \ - || derror "Failed to install switch_root" + || derror "Failed to install switch_root" fi inst "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh" inst_hook cmdline 10 "$moddir/parse-root-opts.sh"
Signature · 1 line
1.7.2
A message that is not in the archive (sent off-list or not yet received): [email protected]
pushed
Quoted 89 lines · Amadeusz Żołnowski
Instead of adding modprobe and rmmod, create symlinks to
/bin/trueto don't produce unnecessary errors. Anyway it's a workaround for following desired behaviour: modprobe tries to insert module only if it's not built into kernel--- dracut | 10 +++++++++- dracut.8 | 4 ++++ modules.d/99base/install | 13 ++++++++++--- 3 files changed, 23 insertions(+), 4 deletions(-)dracut +9
-1@@ -46,6 +46,10 @@ Creates initial ramdisk images for preloading modules firmwares, separated by : --kernel-only Only install kernel drivers and firmware files --no-kernel Do not install kernel drivers and firmware files + --ignore-kernel-modules + Don't try to load modules. It automatically implies + '--no-kernel'. It's assumed that everything needed + is built into kernel. --strip Strip binaries in the initramfs --nostrip Do not strip binaries in the initramfs (default) --mdadmconf Include local /etc/mdadm.conf@@ -86,6 +90,10 @@ while (($#> 0)); do --fwdir) fw_dir_l="$2"; shift;; --kernel-only) kernel_only="yes"; no_kernel="no";; --no-kernel) kernel_only="no"; no_kernel="yes";; + --ignore-kernel-modules) kernel_only="no"; no_kernel="yes" + ignore_kmodules="yes" + omit_dracutmodules_l+=\ kernel-modules + ;; --strip) do_strip_l="yes";; --nostrip) do_strip_l="no";; --mdadmconf) mdadmconf_l="yes";;@@ -228,7 +236,7 @@ chmod 755 "$initdir" export initdir hookdirs dracutbasedir dracutmodules drivers \ fw_dir drivers_dir debug beverbose no_kernel kernel_only \ - add_drivers mdadmconf lvmconf filesystems + add_drivers mdadmconf lvmconf filesystems ignore_kmodules if [[ $kernel_only != yes ]]; then # Create some directory structure firstdracut.8 +4
-0@@ -52,6 +52,10 @@ only install kernel drivers and firmware files .BR \-\-no-kernel do not install kernel drivers and firmware files .TP +.BR \-\-ignore-kernel-modules +don't try to load modules; it automatically implies \fB--no-kernel\fR; it's +assumed that everything needed is built into kernel +.TP .BR \-\-mdadmconf include local /etc/mdadm.conf .TPmodules.d/99base/install +10
-3@@ -1,6 +1,13 @@ #!/bin/bash -dracut_install mount mknod mkdir modprobe pidof sleep chroot \ - sed ls flock cp mv dmesg rm ln rmmod mkfifo less +dracut_install mount mknod mkdir pidof sleep chroot sed ls flock cp mv dmesg \ + rm ln mkfifo less +if [[ ${ignore_kmodules} = yes ]]; then + inst /bin/true + ln -s /bin/true "${initdir}"/sbin/modprobe + ln -s /bin/true "${initdir}"/sbin/rmmod +else + dracut_install modprobe rmmod +fi if [ ! -e "${initdir}/bin/sh" ]; then dracut_install bash (ln -s bash "${initdir}/bin/sh" || :)@@ -18,7 +25,7 @@ if which switch_root>/dev/null 2>&1; then dracut_install switch_root else inst "$moddir/switch_root" "/sbin/switch_root" \ - || derror "Failed to install switch_root" + || derror "Failed to install switch_root" fi inst "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh" inst_hook cmdline 10 "$moddir/parse-root-opts.sh"