Red Hat Bugzilla – Full Text Bug Listing
|Summary:||linuxrc doesn't read CMS config file|
|Product:||[Fedora] Fedora||Reporter:||Jan Stodola <jstodola>|
|Component:||dracut||Assignee:||Harald Hoyer <harald>|
|Status:||CLOSED ERRATA||QA Contact:||Fedora Extras Quality Assurance <extras-qa>|
|Version:||16||CC:||dan, harald, jonathan, kay, mads, vanmeeuwen+fedora|
|Fixed In Version:||dracut-013-8.fc16||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2011-09-06 23:21:15 EDT||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
|Bug Depends On:|
Description Jan Stodola 2011-08-26 09:18:46 EDT
Created attachment 520090 [details] boot log from the installation Description of problem: When installing F16 alpha for s390x on a z/VM guest and one want to use CMS config file, linuxrc doesn't read it. User has to enter all values in linuxrc manually: ... Scanning for available network devices... Autodetection found 0 devices. Note: There is a device blacklist active! (Clearing might take long) c) clear blacklist, m) manual config, r) rescan, s) shell: s Enter 'exit' at the shell prompt to get back to the installation dialog. bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell bash-4.2# cat /proc/cmdline root=/dev/ram0 ro ip=off ramdisk_size=40000 cio_ignore=all,!0.0.0009 CMSDASD=191 CMSCONFFILE=e40.conf bash-4.2# export declare -x HOME="/" declare -x LD_LIBRARY_PATH="/lib64:/usr/lib64:/usr/X11R6/lib64:/usr/kerberos/lib 64:/lib:/usr/lib:/usr/X11R6/lib:/usr/kerberos/lib" declare -x OLDPWD declare -x PATH="/usr/local/bin:/bin:/usr/bin:/usr/bin:/bin:/sbin:/usr/sbin:/mnt /sysimage/bin:/mnt/sysimage/usr/bin:/mnt/sysimage/usr/sbin:/mnt/sysimage/sbin:/m nt/sysimage/usr/X11R6/bin" declare -x PWD="/" declare -x PYTHONPATH="/tmp/updates" declare -x RD_TIMESTAMP="1314362670635527 1912231" declare -x S390ARCH="zSeries" declare -x SHLVL="2" declare -x TERM="linux" declare -x TEXTDOMAIN="s390installer" declare -x TEXTDOMAINDIR="/usr/lib/locale" Compare with RHEL6 (anaconda-13.21.134-1.el6), parameters from kernel command line are exported in linuxrc shell: ... Note: There is a device blacklist active! (Clearing might take long) c) clear blacklist, m) manual config, r) rescan, s) shell: s Enter 'exit' at the shell prompt to get back to the installation dialog. bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell bash-4.1# cat /proc/cmdline root=/dev/ram0 ro ip=off ramdisk_size=40000 CMSDASD=191 _MSCONFFILE=e40.conf cio_ignore=all,!0.0.0009 _ips=1 _nc neco=nic bash-4.1# export | grep CMSDASD declare -x CMSDASD="191" Version-Release number of selected component (if applicable): anaconda-16.15 How reproducible: always Steps to Reproduce: 1. make sure that CMSDASD and CMSCONFFILE parameters are set in CMS parameter file 2. start the installation 3. wait until linuxrc starts Actual results: linuxrc doesn't read configuration from CMS config file Expected results: CMS config file is used to configure devices in linuxrc
Comment 1 Dan Horák 2011-08-30 04:30:44 EDT
Something could change in the kernel, it was responsible for adding unused name=value pairs to the environment. I will ask the kernel people.
Comment 2 Harald Hoyer 2011-08-30 10:00:42 EDT
Comment 3 Fedora Update System 2011-08-30 10:41:22 EDT
dracut-013-6.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/dracut-013-6.fc16
Comment 4 Fedora Update System 2011-08-30 16:45:01 EDT
Package dracut-013-6.fc16: * should fix your issue, * was pushed to the Fedora 16 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing dracut-013-6.fc16' as soon as you are able to, then reboot. Please go to the following url: https://admin.fedoraproject.org/updates/dracut-013-6.fc16 then log in and leave karma (feedback).
Comment 5 Fedora Update System 2011-08-31 11:17:58 EDT
dracut-013-7.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/dracut-013-7.fc16
Comment 6 Harald Hoyer 2011-08-31 11:52:13 EDT
Can you please convert your tools to use /proc/cmdline instead of relying on the environment? In the future, dracut might not provide this environment anymore.
Comment 7 Kay Sievers 2011-08-31 12:21:44 EDT
> Something could change in the kernel, it was responsible for adding unused > name=value pairs to the environment. Please never rely on anything like that, it is too fragile. You can never know what the kernel understands and what it doesn't, or who hooks into the cmdline processing and suppresses the values, like all keys with '.' in it are read as module parameters, there is no guarantee things end up in the process environment. Tools must read /proc/cmdline directly themselves if they look for bootloader parameters.
Comment 8 David Cantrell 2011-08-31 13:16:20 EDT
(In reply to comment #7) > > Something could change in the kernel, it was responsible for adding unused > > name=value pairs to the environment. > > Please never rely on anything like that, it is too fragile. > > You can never know what the kernel understands and what it doesn't, > or who hooks into the cmdline processing and suppresses the values, > like all keys with '.' in it are read as module parameters, there is > no guarantee things end up in the process environment. > > Tools must read /proc/cmdline directly themselves if they look > for bootloader parameters. We can probably do that. For now, the s390x port relies on the horrible linuxrc.s390 script. We would like to move as much device setup and discovery functionality out of that and in to dracut or anaconda proper and ultimately reduce linuxrc.s390 to nothing so it can removed. In the interim, we're sort of stuck with this script. I don't have a problem changing linuxrc.s390 to pull these variables out of /proc/cmdline directly.
Comment 9 Mads Kiilerich 2011-09-01 10:41:58 EDT
The dracut-013-7.fc16 fix causes a regression for me. I do for other reasons use a kernel parameter such as foo,bar=1,baz=2 on my live image - and parse /proc/cmdline outside dracut. The problem is that the kerneal apparently exports it to the environment as the key "foo,bar" so that export -p creates a /tmp/export.orig with export foo,bar='1,baz=2' When that is sourced by modules.d/99base/init it fails and the trap will halt the boot process and give a dracut shell.
Comment 10 Fedora Update System 2011-09-02 13:47:10 EDT
dracut-013-8.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/dracut-013-8.fc16
Comment 11 Fedora Update System 2011-09-06 23:21:02 EDT
dracut-013-8.fc16 has been pushed to the Fedora 16 stable repository. If problems still persist, please make note of it in this bug report.