Hi Thomas,
Thomas Lange wrote (29 Aug 2015 13:45:25 GMT) :
>>>>>> On Sat, 29 Aug 2015 15:20:35 +0200, [email protected] said:
> > Thoughts?
> We had this before, and I thought it was fixed. Have a look at #755271.
Sorry for the duplicate, I didn't check archived bug reports. If you
prefer me to reopen #755271 and merge, just let me know.
Indeed, upstream commit 5f2baf7dc68126efefea9f14bdeb43fb56c80c14 says
it fixes #755271. Running dracut with --debug confirms that
/usr/bin/dracut sets PATH=/sbin:/bin:/usr/sbin:/usr/bin, which is what
this commit intended to achieve. So far, so good, thanks Harald :)
However, later I see:
/usr/lib/dracut/dracut-functions.sh@1242(module_install): .
/usr/lib/dracut/modules.d/99base/module-setup.sh
/usr/lib/dracut/dracut-functions.sh@1243(module_install):
moddir=/usr/lib/dracut/modules.d/99base
/usr/lib/dracut/dracut-functions.sh@1243(module_install): install
/usr/lib/dracut/modules.d/99base/module-setup.sh@16(install): local _d
/usr/lib/dracut/modules.d/99base/module-setup.sh@18(install): inst_multiple
mount mknod mkdir sleep chroot chown sed ls flock cp mv dmesg rm ln rmmod
mkfifo umount readlink setsid
/usr/lib/dracut/dracut-functions.sh@790(inst_multiple): local _ret
/usr/lib/dracut/dracut-functions.sh@791(inst_multiple):
/usr/lib/dracut/dracut-install -D /var/tmp/initramfs.qyqzcu -a -L /tmp/loginst
mount mknod mkdir sleep chroot chown sed ls flock cp mv dmesg rm ln rmmod
mkfifo umount readlink setsid
[...]
dracut-install: Handle 'rm'
dracut-install: PATH=/sbin:/bin:/usr/sbin:/usr/bin
dracut-install: stat(/sbin/rm) != 0
dracut-install: stat(/usr/sbin/rm) != 0
dracut-install: find_binary(rm) == /bin/rm
dracut-install: find_binary(rm) == /usr/bin/rm
dracut-install: dracut_install '/bin/rm'
dracut-install: dracut_install('/bin/rm', '/bin/rm')
dracut-install: dracut_install ret = 0
dracut-install: cp '/bin/rm' '/var/tmp/initramfs.qyqzcu/bin/rm'
dracut-install: cp ret = 0
dracut-install: dracut_install ret = 0
dracut-install: dracut_install '/bin/rm' OK
dracut-install: dracut_install '/usr/bin/rm'
dracut-install: dracut_install('/usr/bin/rm', '/usr/bin/rm')
dracut-install: dracut_install('/usr/bin/safe-rm', '/usr/bin/safe-rm')
dracut-install: dracut_install ret = 0
dracut-install: cp '/usr/bin/safe-rm'
'/var/tmp/initramfs.qyqzcu/usr/bin/safe-rm'
dracut-install: cp ret = 0
dracut-install: dracut_install ret = 0
dracut-install: ln -s 'safe-rm' '/var/tmp/initramfs.qyqzcu/usr/bin/rm'
dracut-install: dracut_install '/usr/bin/rm' OK
... and the --loginstall provided logs confirm that both /bin/rm and
/usr/bin/rm were installed in the initramfs. This could be fine in
theory, as long as $PATH has the /*bin variants listed before the
/usr/*bin ones _inside_ the initramfs at runtime. Given the errors
I see at boot time, it seems like this is not consistently the case.
Also, note that quite a few of modules.d/*/*.sh explicitly set $PATH
to a value that puts the variants in /usr/*bin before the ones in
/*bin. Not sure if that's relevant, but it might cause similar
issues elsewhere.
Cheers,
--
intrigeri