about summary refs log tree commit diff
path: root/nixos/modules/virtualisation/incus.nix
diff options
context:
space:
mode:
authorAdam Stephens <adam@valkor.net>2024-03-29 15:07:18 -0400
committerAdam Stephens <adam@valkor.net>2024-03-29 15:33:26 -0400
commitcf4a88db7932a493f548c15b93989b04bfe86566 (patch)
tree3934c084980c0a04118c17e912bb6173a3d23b59 /nixos/modules/virtualisation/incus.nix
parent2d864d1843c54a11f7f5b0279f937d73b3bd0a39 (diff)
nixos/incus: fix OVMF path for existing VMs
Diffstat (limited to 'nixos/modules/virtualisation/incus.nix')
-rw-r--r--nixos/modules/virtualisation/incus.nix18
1 files changed, 18 insertions, 0 deletions
diff --git a/nixos/modules/virtualisation/incus.nix b/nixos/modules/virtualisation/incus.nix
index 1ceaa40cca9dc..7e75d78f667f1 100644
--- a/nixos/modules/virtualisation/incus.nix
+++ b/nixos/modules/virtualisation/incus.nix
@@ -60,8 +60,26 @@ let
   }'';
 
   # https://github.com/lxc/incus/blob/cff35a29ee3d7a2af1f937cbb6cf23776941854b/internal/server/instance/drivers/driver_qemu.go#L123
+  OVMF2MB = pkgs.OVMF.override {
+    secureBoot = true;
+    fdSize2MB = true;
+  };
   ovmf-prefix = if pkgs.stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
   ovmf = pkgs.linkFarm "incus-ovmf" [
+    # 2MB must remain the default or existing VMs will fail to boot. New VMs will prefer 4MB
+    {
+      name = "OVMF_CODE.fd";
+      path = "${OVMF2MB.fd}/FV/${ovmf-prefix}_CODE.fd";
+    }
+    {
+      name = "OVMF_VARS.fd";
+      path = "${OVMF2MB.fd}/FV/${ovmf-prefix}_VARS.fd";
+    }
+    {
+      name = "OVMF_VARS.ms.fd";
+      path = "${OVMF2MB.fd}/FV/${ovmf-prefix}_VARS.fd";
+    }
+
     {
       name = "OVMF_CODE.4MB.fd";
       path = "${pkgs.OVMFFull.fd}/FV/${ovmf-prefix}_CODE.fd";