Various shell script components of different dracut modules are not installed by dracut. This breaks any modules that require them - eg osr, osr-cluster and syslog . inst_simple checks if the destination to be copied to (target) exists before copying to it, and if so, silenty aborts. [[ -e ${initdir}$target ]] && return 0 various modules call code similar to: for lib in boot-lib.sh defaults.sh repository-lib.sh rootfs-lib.sh shinit.sh std-lib.sh; do dinfo "Installing $lib" mkdir -p ${initdir}/lib/osr inst_simple "$moddir/lib/$lib" /lib/osr done Because this copies to a target directory, the check above to see if target exists will always return true. So these files will never be copied into the initramfs. This is in version 002-13.4.git8f397a9b.fc12.noarch - the latest f12 stable package. How reproducible: Always - use the osr module for example. Steps to Reproduce: 1. Build with dracut -a "osr" 2. extract (gunzip, then cpio -i) the initramfs 3. Confirm that boot-lib.sh is not installed Actual results: File should be installed Expected results: boot-lib.sh and defaults.sh repository-lib.sh rootfs-lib.sh shinit.sh std-lib.sh are not installed Additional info: To fix: Either remove '[[ -e ${initdir}$target ]] && return 0' line from /usr/share/dracut/dracut-functions or change ALL modules to use explicit targets and not directory destinations. Removing '[[ -e ${initdir}$target ]] && return 0' seems better to me as you don't run the risk of a module developer accidently using a target directory. Also, I don't see the risk of over-writing a pre-existing file, apart from a slight increase in build time. If we have two conflicting files we're doomed anyway. Either remove Either remove
- [[ -e ${initdir}$target ]] && return 0 - inst_dir "${target%/*}" + if ! [[ -d ${initdir}$target ]]; then + [[ -e ${initdir}$target ]] && return 0 + inst_dir "${target%/*}" + fi Better?
That works. Thanks Harald.
dracut-004-4.fc12 has been submitted as an update for Fedora 12. http://admin.fedoraproject.org/updates/dracut-004-4.fc12
dracut-004-4.fc12 has been pushed to the Fedora 12 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update dracut'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2010-1088
dracut-004-4.fc12 has been pushed to the Fedora 12 stable repository. If problems still persist, please make note of it in this bug report.