Skip to contentSkip to conversation

dracut options for installing files and drivers

DISCUSSION Dave Young 3 participants 8 messages May 9, 2012 – May 15, 2012 3 messages not in the archive

lore
Share & tools
lore

Dave Young

author
#0 lore raw

Hi, harald

Dracut options '-I' and '-a' both mean optionally install file/ko

I wonder if dracut intend to do this for some reason. In kdump module user probably need install extra files or kernel modules to kdump initrd, we need to bail out if the files do not exist.

If there's no special reason, how about change it to fail by default for non-exist files? Or need add other options?

Signature · 2 lines
Thanks
Dave

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw

Am 09.05.2012 09:35, schrieb Dave Young:

Quoted 3 lines

Hi, harald

Dracut options '-I' and '-a' both mean optionally install file/ko

this is wrong

$ man dracut

"-a" means

-a, --add <list of dracut modules>
add a space-separated list of dracut modules to the default set of
modules. This parameter
can be specified multiple times.

Note
If [LIST] has multiple arguments, then you have to put these in
quotes. For example:

                   # dracut --add "module1 module2"  ...

"-I" means

-I, --install <file list>
install the space separated list of files into the initramfs.

Note
If [LIST] has multiple arguments, then you have to put these in
quotes. For example:

               +

                   # dracut --install "/bin/foo /sbin/bar"  ...

A message that is not in the archive (sent off-list or not yet received): [email protected]

author
#4 lore raw
Quoted 5 lines · Harald Hoyer

Am 09.05.2012 09:35, schrieb Dave Young:

Quoted 3 lines

Hi, harald

Dracut options '-I' and '-a' both mean optionally install file/ko

Quoted 7 lines

this is wrong

$ man dracut

"-a" means

       -a, --add <list of dracut modules>

modules install happens in modules.d/90kernel-modules/module-setup.sh but module-setup.sh does not check the return value of instmods, so it will not fail and exit if no such modules.

Also another problem is there's no check of module install() return status..

Quoted 8 lines

add a space-separated list of dracut modules to the default set of
modules. This parameter
can be specified multiple times.

Note
If [LIST] has multiple arguments, then you have to put these in
quotes. For example:

Quoted 5 lines
                   # dracut --add "module1 module2"  ...

"-I" means

       -I, --install <file list>

See below code, dracut_install -o means "optional install", isn't it?
for item in $install_items; do
dracut_install -o "$item"
done

Quoted 13 lines

install the space separated list of files into the initramfs.

Note
If [LIST] has multiple arguments, then you have to put these in
quotes. For example:

               +

                   # dracut --install "/bin/foo /sbin/bar"  ...

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Thanks
Dave

A message that is not in the archive (sent off-list or not yet received): [email protected]

author
#6 lore raw
Quoted 11 lines · Dave Young
Quoted 9 lines · Harald Hoyer

Am 09.05.2012 09:35, schrieb Dave Young:

Quoted 3 lines

Hi, harald

Dracut options '-I' and '-a' both mean optionally install file/ko

this is wrong

$ man dracut
Quoted 8 lines
Quoted 3 lines

"-a" means

       -a, --add <list of dracut modules>

modules install happens in modules.d/90kernel-modules/module-setup.sh but module-setup.sh does not check the return value of instmods, so it will not fail and exit if no such modules.

Oops, I actually means --add-drivers instead of -a

Quoted 40 lines

Also another problem is there's no check of module install() return status..

Quoted 8 lines

add a space-separated list of dracut modules to the default set of
modules. This parameter
can be specified multiple times.

Note
If [LIST] has multiple arguments, then you have to put these in
quotes. For example:

Quoted 5 lines
                   # dracut --add "module1 module2"  ...

"-I" means

       -I, --install <file list>

See below code, dracut_install -o means "optional install", isn't it?
for item in $install_items; do
dracut_install -o "$item"
done

Quoted 13 lines

install the space separated list of files into the initramfs.

Note
If [LIST] has multiple arguments, then you have to put these in
quotes. For example:

               +

                   # dracut --install "/bin/foo /sbin/bar"  ...

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Thanks
Dave
#7 lore raw
Quoted 18 lines · Dave Young
Quoted 16 lines · Dave Young
Quoted 12 lines · Harald Hoyer

Am 09.05.2012 09:35, schrieb Dave Young:

Quoted 3 lines

Hi, harald

Dracut options '-I' and '-a' both mean optionally install file/ko

this is wrong

$ man dracut

"-a" means

       -a, --add <list of dracut modules>
Quoted 7 lines
Quoted 3 lines

modules install happens in modules.d/90kernel-modules/module-setup.sh but module-setup.sh does not check the return value of instmods, so it will not fail and exit if no such modules.

Oops, I actually means --add-drivers instead of -a

Yeah...

% sudo dracut --add-drivers "no-such-module" -I "/no/such/file" -f test.img
E: ssh interactive mode need option --ctty!
F: Failed to install /no/such/file
% echo $?
1

Maybe the following untested patch could fix this??

---

(quoted diff) +0 -0

b/modules.d/90kernel-modules/module-setup.sh
index 26f4784..838088a 100755

modules.d/90kernel-modules/module-setup.sh +0 -0
@@ -58,8 +58,18 @@ installkernel() {
         hostonly='' instmods $drivers
      fi
       -    [[ $add_drivers ]] && hostonly='' instmods $add_drivers
       -    [[ $filesystems ]] && hostonly='' instmods $filesystems
       +    if [[ $add_drivers ]]; then

+ hostonly='' instmods $add_drivers || {
+ dfatal "Failed to install $add_drivers"
+ return 1
+ }
+ fi
+ if [[ $filesystems ]]; then
+ hostonly='' instmods $filesystems || {
+ dfatal "Failed to install $filesystems"
+ return 1
+ }
+ fi

# force install of scsi_wait_scan
hostonly='' instmods scsi_wait_scan

#8 lore raw
Quoted 29 lines · Cong Wang
Quoted 18 lines · Dave Young
Quoted 16 lines · Dave Young
Quoted 12 lines · Harald Hoyer

Am 09.05.2012 09:35, schrieb Dave Young:

Quoted 3 lines

Hi, harald

Dracut options '-I' and '-a' both mean optionally install file/ko

this is wrong

$ man dracut

"-a" means

       -a, --add <list of dracut modules>
Quoted 7 lines
Quoted 3 lines

modules install happens in modules.d/90kernel-modules/module-setup.sh but module-setup.sh does not check the return value of instmods, so it will not fail and exit if no such modules.

Oops, I actually means --add-drivers instead of -a

Yeah...

Quoted 8 lines

% sudo dracut --add-drivers "no-such-module" -I "/no/such/file" -f test.img
E: ssh interactive mode need option --ctty!
F: Failed to install /no/such/file
% echo $?
1

Maybe the following untested patch could fix this??

A better version:

---->

dracut-functions.sh +8 -2
index 8256e02..148dd19 100755
@@ -1168,11 +1168,17 @@ instmods() {
         local _ret=0 _mod _mpargs
         if (($# == 0)); then  # filenames from stdin
             while read _mod; do
-                inst1mod "${_mod%.ko*}"
+                inst1mod "${_mod%.ko*}" || {
+                    dfatal "Failed to install ${_mod%.ko*}"
+                    return 1
+                }
             done
         fi
         while (($# > 0)); do  # filenames as arguments
-            inst1mod ${1%.ko*}
+            inst1mod ${1%.ko*} || {
+                dfatal "Failed to install ${1%.ko*}"
+                return 1
+            }
             shift
         done
         return $_ret
author
#9 lore raw
Quoted 9 lines · Cong Wang
Quoted 9 lines

Yeah...

% sudo dracut --add-drivers "no-such-module" -I "/no/such/file" -f test.img
E: ssh interactive mode need option --ctty!
F: Failed to install /no/such/file
% echo $?
1

Maybe the following untested patch could fix this??

Hi, what version of dracut did you use? master branch '-I no/such/file' will not fail... Seems there it is changed to 'dracut -o' in some commit.

Also ./dracut.sh -l --add-drivers "no-such-module" -f test.img return 0 during my test.

Quoted 35 lines
Quoted 1 line

A better version:

---->

dracut-functions.sh +8 -3
index 8256e02..148dd19 100755
@@ -1168,11 +1168,17 @@ instmods() {
         local _ret=0 _mod _mpargs
         if (($# == 0)); then  # filenames from stdin
             while read _mod; do
-                inst1mod "${_mod%.ko*}"
+                inst1mod "${_mod%.ko*}" || {
+                    dfatal "Failed to install ${_mod%.ko*}"
+                    return 1
+                }
             done
         fi
         while (($# > 0)); do  # filenames as arguments
-            inst1mod ${1%.ko*}
+            inst1mod ${1%.ko*} || {
+                dfatal "Failed to install ${1%.ko*}"
+                return 1
+            }
             shift
         done
         return $_ret
 
--

To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Thanks
Dave
#10 lore raw
Quoted 10 lines · Dave Young
Quoted 8 lines · Cong Wang
Quoted 8 lines

Yeah...

% sudo dracut --add-drivers "no-such-module" -I "/no/such/file" -f test.img
E: ssh interactive mode need option --ctty!
F: Failed to install /no/such/file
% echo $?
1

Quoted 9 lines
Quoted 1 line
Quoted 1 line

Maybe the following untested patch could fix this??

Hi, what version of dracut did you use? master branch '-I no/such/file' will not fail... Seems there it is changed to 'dracut -o' in some commit.

Also ./dracut.sh -l --add-drivers "no-such-module" -f test.img return 0 during my test.

Yeah, I used an old version of dracut, the following commit changed that without a reason:

commit c6c6a08850c7e4ee211696895f7ca3864be85052

Author: Harald Hoyer <[email protected]>
Date:   Tue Feb 7 18:26:30 2012 +0100

add "install_items" to dracut.conf

I will send a patch to fix this too.

Thanks!