From: Harald Hoyer Date: Wed, 6 Mar 2013 16:08:49 +0000 (+0100) Subject: base/dracut-lib.sh: extend wait_for_dev() for systemd X-Git-Tag: 026~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=44d26d92095c79c305fdb89460daec7b1b1fbc8c;p=thirdparty%2Fdracut.git base/dracut-lib.sh: extend wait_for_dev() for systemd --- diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh index 94ff33f85..93283b54d 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -826,13 +826,24 @@ wait_for_mount() wait_for_dev() { local _name - _name="$(str_replace "$1" '/' '\\x2f')" + _name="$(str_replace "$1" '/' '\x2f')" printf '[ -e "%s" ]\n' $1 \ - >> "$hookdir/initqueue/finished/devexists-${_name}.sh" + >> "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh" { printf '[ -e "%s" ] || ' $1 printf 'warn "\"%s\" does not exist"\n' $1 - } >> "$hookdir/emergency/80-${_name}.sh" + } >> "${PREFIX}$hookdir/emergency/80-${_name}.sh" + + if [ -n "$DRACUT_SYSTEMD" ]; then + _name="${1%%/}" + _name="${_name##/}" + _name="$(str_replace "$_name" '-' '\x2d')" + _name="$(str_replace "$_name" '/' '-')" + if ! [ -L ${PREFIX}/etc/systemd/system/dracut.target.requires/${_name}.device ]; then + [ -d ${PREFIX}/etc/systemd/system/dracut.target.requires ] || mkdir -p ${PREFIX}/etc/systemd/system/dracut.target.requires + ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/dracut.target.requires/${_name}.device + fi + fi } cancel_wait_for_dev()