diff options
author | Helmut Grohne <helmut@subdivi.de> | 2023-06-19 13:24:13 +0200 |
---|---|---|
committer | Johannes Schauer Marin Rodrigues <josch@mister-muffin.de> | 2023-06-19 13:32:41 +0200 |
commit | 8ce786ab8f39f2d7570355a5bbf26bc0669258d3 (patch) | |
tree | 61f9132c2d515add41d8e28d732f8763d3e4fc47 /bin | |
parent | 7d0b160531d66b0f8790f4034902904c7aa178bb (diff) | |
download | debvm-8ce786ab8f39f2d7570355a5bbf26bc0669258d3.tar.gz |
debvm-run: avoid hard coding fds for kernel and initrd
qemu makes heavy use of fd passing, so we better avoid user-passed fds.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/debvm-run | 16 |
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 \ "$@" |