dracut options for installing files and drivers
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
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" ...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
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.shbutmodule-setup.shdoes 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"
doneQuoted 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
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.shbutmodule-setup.shdoes 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
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.shbutmodule-setup.shdoes 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 $?
1Maybe the following untested patch could fix this??
A better version:
---->
dracut-functions.sh +8 -2
@@ -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
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 $?
1Maybe 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@@ -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
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.imgreturn 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!