diff --git a/modules.d/95nbd/nbdroot.sh b/modules.d/95nbd/nbdroot.sh index 7057f233..697387a6 100755 --- a/modules.d/95nbd/nbdroot.sh +++ b/modules.d/95nbd/nbdroot.sh @@ -109,9 +109,25 @@ if strstr "$(nbd-client --help 2>&1)" "systemd-mark"; then fi if [ "$nbdport" -gt 0 ] 2>/dev/null; then - nbd-client "$nbdserver" $nbdport /dev/nbd0 $preopts $opts || exit 1 + if [ -z "$DRACUT_SYSTEMD" ]; then + nbd-client "$nbdserver" $nbdport /dev/nbd0 $preopts $opts || exit 1 + else + systemd-run --no-block --service-type=forking --quiet \ + --description="nbd nbd0" \ + -p 'DefaultDependencies=no' \ + -p 'KillMode=none' \ + --unit="nbd0" -- nbd-client "$nbdserver" $nbdport /dev/nbd0 $preopts $opts >/dev/null 2>&1 || exit 1 + fi else - nbd-client -name "$nbdport" "$nbdserver" /dev/nbd0 $preopts $opts || exit 1 + if [ -z "$DRACUT_SYSTEMD" ]; then + nbd-client -name "$nbdport" "$nbdserver" /dev/nbd0 $preopts $opts || exit 1 + else + systemd-run --no-block --service-type=forking --quiet \ + --description="nbd nbd0" \ + -p 'DefaultDependencies=no' \ + -p 'KillMode=none' \ + --unit="nbd0" -- nbd-client -name "$nbdport" "$nbdserver" /dev/nbd0 $preopts $opts >/dev/null 2>&1 || exit 1 + fi fi # NBD doesn't emit uevents when it gets connected, so kick it