diff --git a/wfvm/autounattend.nix b/wfvm/autounattend.nix index 065c8fd..1421850 100644 --- a/wfvm/autounattend.nix +++ b/wfvm/autounattend.nix @@ -14,7 +14,6 @@ , services ? {} , impureShellCommands ? [] , driveLetter ? "D:" -, efi ? true , imageSelection ? "Windows 11 Pro N" , ... }: @@ -121,8 +120,7 @@ let # Windows expects a flat list of users while we want to manage them as a set flatUsers = builtins.attrValues (builtins.mapAttrs (name: s: s // { inherit name; }) users); - diskId = - if efi then 2 else 1; + diskId = 2; autounattendXML = pkgs.writeText "autounattend.xml" '' @@ -172,12 +170,12 @@ let 1 - ${if efi then "EFI" else "Primary"} + EFI 300 2 - ${if efi then "MSR" else "Primary"} + MSR 16 @@ -189,7 +187,7 @@ let 1 - ${if efi then "FAT32" else "NTFS"} + FAT32 1 diff --git a/wfvm/utils.nix b/wfvm/utils.nix index fa5ea78..f4fe9b2 100644 --- a/wfvm/utils.nix +++ b/wfvm/utils.nix @@ -1,4 +1,4 @@ -{ pkgs, baseRtc ? "2022-10-10T10:10:10", cores ? "4", qemuMem ? "4G", efi ? true }: +{ pkgs, baseRtc ? "2022-10-10T10:10:10", cores ? "4", qemuMem ? "4G" }: rec { # qemu_test is a smaller closure only building for a single system arch @@ -18,7 +18,6 @@ rec { "-rtc base=${baseRtc}" "-device qemu-xhci" "-device virtio-net-pci,netdev=n1" - ] ++ pkgs.lib.optionals efi [ "-bios ${OVMF.fd}/FV/OVMF.fd" ] ++ extraFlags; diff --git a/wfvm/win.nix b/wfvm/win.nix index 081b36b..58ca88e 100644 --- a/wfvm/win.nix +++ b/wfvm/win.nix @@ -7,13 +7,12 @@ , users ? {} # autounattend always installs index 1, so this default is backward-compatible , imageSelection ? "Windows 11 Pro N" -, efi ? true , ... }@attrs: let lib = pkgs.lib; - utils = import ./utils.nix { inherit pkgs efi; }; + utils = import ./utils.nix { inherit pkgs; }; inherit (pkgs) guestfs-tools; # p7zip on >20.03 has known vulns but we have no better option @@ -95,7 +94,7 @@ let "usb-storage,drive=virtio-win" # USB boot "-drive" - "id=win-install,file=${if efi then "usb" else "cd"}image.img,if=none,format=raw,readonly=on,media=${if efi then "disk" else "cdrom"}" + "id=win-install,file=usbimage.img,if=none,format=raw,readonly=on,media=disk" "-device" "usb-storage,drive=win-install" # Output image @@ -124,11 +123,7 @@ let cp ${autounattend.autounattendXML} win/autounattend.xml - ${if efi then '' virt-make-fs --partition --type=fat win/ usbimage.img - '' else '' - ${pkgs.cdrkit}/bin/mkisofs -iso-level 4 -l -R -udf -D -b boot/etfsboot.com -no-emul-boot -boot-load-size 8 -hide boot.catalog -eltorito-alt-boot -o cdimage.img win/ - ''} rm -rf win # Qemu requires files to be rw