Bug#409995: mkinitramfs silently fails to create bootable initrd when PATH lacks /sbin
Package: initramfs-tools
Version: 0.85e
uname: Linux hpde 2.6.18-3-amd64 #1 SMP Mon Dec 4 17:04:37 CET 2006
x86_64 GNU/Linux
When building my own kernel and running mkinitramfs manually as a
non-root user, I ran:
$ /usr/sbin/mkinitramfs -o initrd.img-2.6.18-3-telco-amd64
2.6.18-3-telco-amd64
The command completes with no apparent errors but produces an initrd.img
file with no modules and the resulting boot fails. The problem occurs
in manual_add_modules in /usr/share/initramfs-tools/hook-functions:
for mam_x in $(modprobe --set-version="${version}"
--ignore-install \
--show-depends "${1}" 2>/dev/null | awk '/^insmod/ { print
$2 }'); do
...
The modprobe invocation fails (" -bash: modprobe: command not found"
when I try it from a shell prompt) because /sbin is not in my path, but
the error message is suppressed by the "2>/dev/null" and the loop just
doesn't process any modules. I saw this my adding "set -x" to
mkinitramfs and comparing my bad run as a user to a successful run as
root.
(perhaps related to #409243, "fails to boot"?)
Perhaps the command could set its own path, or use full paths for
commands to make this a little more idiot-proof.
Thanks,
Bob Montgomery
Reply to: