diff --git a/metropolis/cli/takeover/BUILD.bazel b/metropolis/cli/takeover/BUILD.bazel
index fe58518..c262164 100644
--- a/metropolis/cli/takeover/BUILD.bazel
+++ b/metropolis/cli/takeover/BUILD.bazel
@@ -40,6 +40,7 @@
         "//osbase/kexec",
         "//osbase/net/dump",
         "//osbase/net/proto",
+        "//osbase/structfs",
         "//osbase/supervisor",
         "@com_github_cavaliergopher_cpio//:cpio",
         "@com_github_klauspost_compress//zstd",
diff --git a/metropolis/cli/takeover/e2e/BUILD.bazel b/metropolis/cli/takeover/e2e/BUILD.bazel
index b085947..ae4810b 100644
--- a/metropolis/cli/takeover/e2e/BUILD.bazel
+++ b/metropolis/cli/takeover/e2e/BUILD.bazel
@@ -22,6 +22,7 @@
     deps = [
         "//osbase/fat32",
         "//osbase/freeport",
+        "//osbase/structfs",
         "@io_bazel_rules_go//go/runfiles",
         "@org_golang_x_crypto//ssh",
         "@org_golang_x_crypto//ssh/agent",
diff --git a/metropolis/cli/takeover/e2e/main_test.go b/metropolis/cli/takeover/e2e/main_test.go
index 1ba5354..afce515 100644
--- a/metropolis/cli/takeover/e2e/main_test.go
+++ b/metropolis/cli/takeover/e2e/main_test.go
@@ -25,6 +25,7 @@
 
 	"source.monogon.dev/osbase/fat32"
 	"source.monogon.dev/osbase/freeport"
+	"source.monogon.dev/osbase/structfs"
 )
 
 var (
@@ -112,25 +113,16 @@
 		t.Fatal(err)
 	}
 
-	rootInode := fat32.Inode{
-		Attrs: fat32.AttrDirectory,
-		Children: []*fat32.Inode{
-			{
-				Name:    "user-data",
-				Content: strings.NewReader("#cloud-config\n" + string(userData)),
-			},
-			{
-				Name:    "meta-data",
-				Content: strings.NewReader(""),
-			},
-		},
+	root := structfs.Tree{
+		structfs.File("user-data", structfs.Bytes("#cloud-config\n"+string(userData))),
+		structfs.File("meta-data", structfs.Bytes("")),
 	}
 	cloudInitDataFile, err := os.CreateTemp("", "cidata*.img")
 	if err != nil {
 		t.Fatal(err)
 	}
 	defer os.Remove(cloudInitDataFile.Name())
-	if err := fat32.WriteFS(cloudInitDataFile, rootInode, fat32.Options{Label: "cidata"}); err != nil {
+	if err := fat32.WriteFS(cloudInitDataFile, root, fat32.Options{Label: "cidata"}); err != nil {
 		t.Fatal(err)
 	}
 
diff --git a/metropolis/cli/takeover/install.go b/metropolis/cli/takeover/install.go
index 005b590..2b76095 100644
--- a/metropolis/cli/takeover/install.go
+++ b/metropolis/cli/takeover/install.go
@@ -5,10 +5,8 @@
 
 import (
 	"archive/zip"
-	"bytes"
 	_ "embed"
 	"fmt"
-	"io/fs"
 	"os"
 	"path/filepath"
 
@@ -16,24 +14,28 @@
 	"source.monogon.dev/osbase/blockdev"
 	"source.monogon.dev/osbase/build/mkimage/osimage"
 	"source.monogon.dev/osbase/efivarfs"
+	"source.monogon.dev/osbase/structfs"
 )
 
 //go:embed metropolis/node/core/abloader/abloader.efi
 var abloader []byte
 
-// FileSizedReader is a small adapter from fs.File to fs.SizedReader
-// Panics on Stat() failure, so should only be used with sources where Stat()
-// cannot fail.
-type FileSizedReader struct {
-	fs.File
+// zipBlob looks up a file in a [zip.Reader] and adapts it to [structfs.Blob].
+func zipBlob(reader *zip.Reader, name string) (zipFileBlob, error) {
+	for _, file := range reader.File {
+		if file.Name == name {
+			return zipFileBlob{file}, nil
+		}
+	}
+	return zipFileBlob{}, fmt.Errorf("file %q not found", name)
 }
 
-func (f FileSizedReader) Size() int64 {
-	stat, err := f.Stat()
-	if err != nil {
-		panic(err)
-	}
-	return stat.Size()
+type zipFileBlob struct {
+	*zip.File
+}
+
+func (f zipFileBlob) Size() int64 {
+	return int64(f.File.UncompressedSize64)
 }
 
 // EnvInstallTarget environment variable which tells the takeover binary where
@@ -93,12 +95,12 @@
 		return nil, fmt.Errorf("failed to open root device: %w", err)
 	}
 
-	efiPayload, err := bundle.Open("kernel_efi.efi")
+	efiPayload, err := zipBlob(bundle, "kernel_efi.efi")
 	if err != nil {
 		return nil, fmt.Errorf("invalid bundle: %w", err)
 	}
 
-	systemImage, err := bundle.Open("verity_rootfs.img")
+	systemImage, err := zipBlob(bundle, "verity_rootfs.img")
 	if err != nil {
 		return nil, fmt.Errorf("invalid bundle: %w", err)
 	}
@@ -110,9 +112,9 @@
 			Data:   128,
 		},
 		SystemImage:    systemImage,
-		EFIPayload:     FileSizedReader{efiPayload},
-		ABLoader:       bytes.NewReader(abloader),
-		NodeParameters: bytes.NewReader(metropolisSpecRaw),
+		EFIPayload:     efiPayload,
+		ABLoader:       structfs.Bytes(abloader),
+		NodeParameters: structfs.Bytes(metropolisSpecRaw),
 		Output:         rootDev,
 	}, nil
 }
