From 44d26d92095c79c305fdb89460daec7b1b1fbc8c Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Wed, 6 Mar 2013 17:08:49 +0100 Subject: [PATCH] base/dracut-lib.sh: extend wait_for_dev() for systemd --- modules.d/99base/dracut-lib.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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() -- 2.47.3