diff --git a/osbase/bringup/test/BUILD.bazel b/osbase/bringup/test/BUILD.bazel
index 66803bb..f63b0d6 100644
--- a/osbase/bringup/test/BUILD.bazel
+++ b/osbase/bringup/test/BUILD.bazel
@@ -15,6 +15,7 @@
         ":kernel_error",
         ":kernel_panic",
         ":kernel_succeeded",
+        "//build/toolchain/toolchain-bundle:qemu-kvm",
         "//third_party/edk2:OVMF_CODE.fd",
         "//third_party/edk2:OVMF_VARS.fd",
     ],
@@ -26,6 +27,7 @@
         "xSucceedKernelPath": "$(rlocationpath :kernel_succeeded )",
         "xPanicKernelPath": "$(rlocationpath :kernel_panic )",
         "xErrorKernelPath": "$(rlocationpath :kernel_error )",
+        "xQEMUPath": "$(rlocationpath //build/toolchain/toolchain-bundle:qemu-kvm )",
     },
     deps = [
         "//osbase/cmd",
diff --git a/osbase/bringup/test/run_test.go b/osbase/bringup/test/run_test.go
index 085b875..5b9b4cb 100644
--- a/osbase/bringup/test/run_test.go
+++ b/osbase/bringup/test/run_test.go
@@ -22,12 +22,13 @@
 	xSucceedKernelPath string
 	xPanicKernelPath   string
 	xErrorKernelPath   string
+	xQEMUPath          string
 )
 
 func init() {
 	var err error
 	for _, path := range []*string{
-		&xOvmfCodePath, &xOvmfVarsPath,
+		&xOvmfCodePath, &xOvmfVarsPath, &xQEMUPath,
 		&xSucceedKernelPath, &xPanicKernelPath, &xErrorKernelPath,
 	} {
 		*path, err = runfiles.Rlocation(*path)
@@ -56,7 +57,7 @@
 	}
 	qemuArgs := append(defaultArgs, args...)
 	pf := cmd.TerminateIfFound(expectedOutput, nil)
-	return cmd.RunCommand(ctx, "qemu-system-x86_64", qemuArgs, pf)
+	return cmd.RunCommand(ctx, xQEMUPath, qemuArgs, pf)
 }
 
 func TestBringupSuccess(t *testing.T) {
diff --git a/osbase/test/ktest/ktest.bzl b/osbase/test/ktest/ktest.bzl
index 4a6942f..5fc93e8 100644
--- a/osbase/test/ktest/ktest.bzl
+++ b/osbase/test/ktest/ktest.bzl
@@ -46,11 +46,12 @@
         is_executable = True,
     )
 
+    runfiles = ctx.runfiles(files = [ctx.file._ktest, initramfs, ctx.file.kernel, ctx.file.tester])
+    runfiles = runfiles.merge(ctx.attr._ktest[DefaultInfo].default_runfiles)
+
     return [DefaultInfo(
         executable = script_file,
-        runfiles = ctx.runfiles(
-            files = [ctx.files._ktest[0], initramfs, ctx.file.kernel, ctx.file.tester],
-        ),
+        runfiles = runfiles,
     )]
 
 k_test = rule(
@@ -105,7 +106,7 @@
             default = Label("//osbase/test/ktest"),
             cfg = "target",
             executable = True,
-            allow_files = True,
+            allow_single_file = True,
         ),
         "_ktest_init": attr.label(
             default = Label("//osbase/test/ktest/init"),
diff --git a/osbase/test/qemu/BUILD.bazel b/osbase/test/qemu/BUILD.bazel
index f45804f..0145ddb 100644
--- a/osbase/test/qemu/BUILD.bazel
+++ b/osbase/test/qemu/BUILD.bazel
@@ -3,13 +3,20 @@
 go_library(
     name = "qemu",
     srcs = ["launch.go"],
+    data = [
+        "//build/toolchain/toolchain-bundle:qemu-kvm",
+    ],
     importpath = "source.monogon.dev/osbase/test/qemu",
     visibility = [
         "//metropolis:__subpackages__",
         "//osbase:__subpackages__",
     ],
+    x_defs = {
+        "xQEMUPath": "$(rlocationpath //build/toolchain/toolchain-bundle:qemu-kvm )",
+    },
     deps = [
         "//osbase/freeport",
+        "@io_bazel_rules_go//go/runfiles",
         "@org_golang_x_sys//unix",
     ],
 )
diff --git a/osbase/test/qemu/launch.go b/osbase/test/qemu/launch.go
index 1b063de..ba33961 100644
--- a/osbase/test/qemu/launch.go
+++ b/osbase/test/qemu/launch.go
@@ -13,10 +13,12 @@
 	"net"
 	"os"
 	"os/exec"
+	"path/filepath"
 	"strconv"
 	"strings"
 	"syscall"
 
+	"github.com/bazelbuild/rules_go/go/runfiles"
 	"golang.org/x/sys/unix"
 
 	"source.monogon.dev/osbase/freeport"
@@ -136,6 +138,25 @@
 	return fd1, fd2, nil
 }
 
+var (
+	// These are filled by bazel at linking time with the canonical path of
+	// their corresponding file. Inside the init function we resolve it
+	// with the rules_go runfiles package to the real path.
+	xQEMUPath string
+)
+
+func init() {
+	var err error
+	for _, path := range []*string{
+		&xQEMUPath,
+	} {
+		*path, err = runfiles.Rlocation(*path)
+		if err != nil {
+			panic(err)
+		}
+	}
+}
+
 // MicroVMOptions contains all options to start a MicroVM
 type MicroVMOptions struct {
 	// Name is a human-readable identifier to be used in debug output.
@@ -240,7 +261,7 @@
 		"-m", "1G",
 		// Needed because QEMU does not boot without specifying the qboot bios
 		// even tho the documentation clearly states that this is the default.
-		"-bios", "/usr/share/qemu/qboot.rom",
+		"-bios", filepath.Join(filepath.Dir(xQEMUPath), "../share/qemu/qboot.rom"),
 		"-M", "microvm,x-option-roms=off,pic=off,pit=off,rtc=off,isa-serial=off",
 		"-kernel", opts.KernelPath,
 		// We force using a triple-fault reboot strategy since otherwise the kernel first
@@ -283,7 +304,7 @@
 	}
 
 	var stdErrBuf bytes.Buffer
-	cmd := exec.CommandContext(ctx, "/usr/bin/qemu-system-x86_64", append(baseArgs, extraArgs...)...)
+	cmd := exec.CommandContext(ctx, xQEMUPath, append(baseArgs, extraArgs...)...)
 	cmd.Stdout = opts.SerialPort
 	cmd.Stderr = &stdErrBuf
 
