patches and low-level development discussion
 help / color / mirror / code / Atom feed
From: colbyt <colby@colbyt.com>
To: devel@spectrum-os.org
Cc: colbyt <colby@colbyt.com>
Subject: [PATCH 0/5] vm: boot sub-VMs from dm-verity roots and enable IPE
Date: Thu, 25 Jun 2026 13:20:08 -0700	[thread overview]
Message-ID: <20260625202013.1417254-1-colby@colbyt.com> (raw)

This series changes the app VM and net VM root images to boot through
dm-verity, then enables IPE kernel support for the sub-VMs and the
Spectrum host rootfs.

Each sub-VM disk now has a verity metadata partition and an EROFS root
partition.  The build installs the root hash next to the disk image, and
the VM boot paths pass that hash to a shared initramfs.  The initramfs
uses the hash to find both partitions, opens /dev/mapper/root-verity, and
switches into it read-only.

The last two patches only enable kernel support for IPE.  They do not
install an IPE policy.  With the existing generated kernel config,
enabling SECURITY_IPE also enables the dm-verity root-hash provider, so
later policy work can match files from verified roots.

This is based on current main and does not depend on the Cloud Hypervisor
v52 series.  If the v52 series lands first, the only expected overlap is
the crosvm run target context in patch 3.

Tested:

- nix-build tools -A tests.tests -o /tmp/spectrum-ipe-standalone-tools-tests --no-build-output
- nix-build vm/sys/net -o /tmp/spectrum-ipe-standalone-netvm --no-build-output
- nix-build img/app -o /tmp/spectrum-ipe-standalone-appvm --no-build-output
- built app VM, net VM, and host kernel configfiles and confirmed:
  CONFIG_SECURITY_IPE=y
  CONFIG_IPE_PROP_DM_VERITY=y
  CONFIG_DM_VERITY=m
  CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,ipe,bpf"
- booted the net VM root image with QEMU and confirmed:
  LSM: initializing lsm=capability,landlock,yama,ipe,bpf
  device-mapper: verity: sha256 using "sha256-lib"
  erofs (device dm-0): mounted
  s6-linux-init version 1.1.3.0

colbyt (5):
  vm: generate dm-verity metadata for sub-VM roots
  vm: add shared initramfs for verified roots
  vm: boot sub-VMs through verified roots
  vm: enable IPE in sub-VM kernels
  host/rootfs: enable IPE in the host kernel

 host/rootfs/default.nix                   |   6 +-
 img/app/Makefile                          |  41 ++++++--
 img/app/default.nix                       |  14 ++-
 pkgs/default.nix                          |   1 +
 tools/start-vmm/ch.rs                     |   3 +-
 tools/start-vmm/lib.rs                    |  15 ++-
 tools/start-vmm/tests/vm_command-basic.rs |  18 +++-
 vm-lib/make-vm.nix                        |   2 +
 vm/initramfs/Makefile                     |  37 +++++++
 vm/initramfs/default.nix                  | 113 ++++++++++++++++++++++
 vm/initramfs/etc/fstab                    |   5 +
 vm/initramfs/etc/getuuids                 |  18 ++++
 vm/initramfs/etc/init                     |  58 +++++++++++
 vm/initramfs/etc/mdev.conf                |   4 +
 vm/initramfs/etc/probe                    |  17 ++++
 vm/sys/net/Makefile                       |  41 ++++++--
 vm/sys/net/default.nix                    |  14 ++-
 17 files changed, 380 insertions(+), 27 deletions(-)
 create mode 100644 vm/initramfs/Makefile
 create mode 100644 vm/initramfs/default.nix
 create mode 100644 vm/initramfs/etc/fstab
 create mode 100755 vm/initramfs/etc/getuuids
 create mode 100755 vm/initramfs/etc/init
 create mode 100644 vm/initramfs/etc/mdev.conf
 create mode 100755 vm/initramfs/etc/probe

-- 
2.54.0

             reply	other threads:[~2026-06-25 20:21 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-25 20:20 colbyt [this message]
2026-06-25 20:20 ` [PATCH 1/5] vm: generate dm-verity metadata for sub-VM roots colbyt
2026-06-25 20:20 ` [PATCH 2/5] vm: add shared initramfs for verified roots colbyt
2026-06-25 20:20 ` [PATCH 3/5] vm: boot sub-VMs through " colbyt
2026-06-25 20:20 ` [PATCH 4/5] vm: enable IPE in sub-VM kernels colbyt
2026-06-25 20:20 ` [PATCH 5/5] host/rootfs: enable IPE in the host kernel colbyt
2026-07-02 13:44   ` Alyssa Ross
2026-06-26 15:14 ` [PATCH 0/5] vm: boot sub-VMs from dm-verity roots and enable IPE Alyssa Ross
2026-06-26 19:12   ` colby
2026-07-02 13:43     ` Alyssa Ross
2026-07-02 23:16       ` colby
2026-07-03 14:06         ` Alyssa Ross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260625202013.1417254-1-colby@colbyt.com \
    --to=colby@colbyt.com \
    --cc=devel@spectrum-os.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/crosvm
	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/nixpkgs
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock
	https://spectrum-os.org/git/www

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).