diff --git a/archiso/initcpio/hooks/archiso_pxe_nbd b/archiso/initcpio/hooks/archiso_pxe_nbd
index d9bc6d88e8f132e3b978340ddc00b8ada4d44d42..fdb2c2b6f5a7c8b0ffb214fbf5cc6c222fb5511f 100644
--- a/archiso/initcpio/hooks/archiso_pxe_nbd
+++ b/archiso/initcpio/hooks/archiso_pxe_nbd
@@ -25,16 +25,19 @@ archiso_pxe_nbd_mount_handler () {
     done
 
     msg ":: Setup NBD from ${archiso_nbd_srv} at /dev/nbd0"
-    nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} /dev/nbd0
-
     if [[ "${copytoram}" != "n" ]]; then
+        nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} /dev/nbd0
         copytoram="y"
+    else
+        nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} -systemd-mark -persist /dev/nbd0
     fi
 
     archisodevice=/dev/nbd0
 
     archiso_mount_handler ${newroot}
 
-    msg ":: Disconnect NBD from ${archiso_nbd_srv} at /dev/nbd0"
-    nbd-client -d /dev/nbd0
+    if [[ "${copytoram}" == "y" ]]; then
+        msg ":: Disconnect NBD from ${archiso_nbd_srv} at /dev/nbd0"
+        nbd-client -d /dev/nbd0
+    fi
 }