If symlink is yet alone in target directory, inst_symlink will fail to
create it. This is how to reproduce the bug:
# mkdir /tmp/test
# ln -s /bin/cp /tmp/test/cp
# ./dracut -l -f -H /tmp/test.img -I /tmp/test/cp
Result:
[...]
I: *** Including modules done ***
ln: failed to create symbolic link
`/var/tmp/initramfs.Z5isVu//tmp/test/cp': No such file or directory
ln: failed to create symbolic link
`/var/tmp/initramfs.Z5isVu//tmp/test/cp': No such file or directory
I: Wrote /tmp/test.img:
[...]
Following patch creates directory for the symlink if it doesn't exist.
---
dracut-functions.sh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index f4ccf53..8082466 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -545,6 +545,7 @@ inst_symlink() {
inst "$_realsrc"
fi
fi
+ [[ ! -e $initdir/${_target%/*} ]] && inst_dir "${_target%/*}"
[[ -d ${_target%/*} ]] && _target=$(readlink -f
${_target%/*})/${_target##*/}
ln -sfn $(convert_abs_rel "${_target}" "${_realsrc}") "$initdir/$_target"
}
--
1.7.8.5
--
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