summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/debvm-run16
1 files changed, 12 insertions, 4 deletions
diff --git a/bin/debvm-run b/bin/debvm-run
index 03cde3b..f3811ad 100755
--- a/bin/debvm-run
+++ b/bin/debvm-run
@@ -246,8 +246,16 @@ esac
KERNEL_CMDLINE="root=LABEL=$IMAGE_LABEL rw"
NETDEV="user,id=net0"
-exec 8<"$KERNELTMP"
-exec 9<"$INITRDTMP"
+KERNELFD=3
+while test -h "/proc/self/fd/$KERNELFD"; do
+ KERNELFD=$((KERNELFD + 1))
+done
+INITRDFD=$((KERNELFD + 1))
+while test -h "/proc/self/fd/$INITRDFD"; do
+ INITRDFD=$((INITRDFD + 1))
+done
+eval exec "$KERNELFD<"'"$KERNELTMP"'
+eval exec "$INITRDFD<"'"$INITRDTMP"'
rm -f "$KERNELTMP" "$INITRDTMP"
KERNELTMP=
INITRDTMP=
@@ -256,8 +264,8 @@ set -- \
-no-user-config \
-name "debvm-run $IMAGE" \
-m 1G \
- -kernel "/proc/self/fd/8" \
- -initrd "/proc/self/fd/9" \
+ -kernel "/proc/self/fd/$KERNELFD" \
+ -initrd "/proc/self/fd/$INITRDFD" \
-drive "media=disk,format=raw,discard=unmap,file=$IMAGE,if=virtio,cache=unsafe" \
-object rng-random,filename=/dev/urandom,id=rng0 \
"$@"