about summary refs log tree commit diff
path: root/nixos/lib/make-disk-image.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/lib/make-disk-image.nix')
-rw-r--r--nixos/lib/make-disk-image.nix7
1 files changed, 6 insertions, 1 deletions
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index e4480b26c647..c2a5415d1b2a 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -35,11 +35,16 @@
 
 , # Disk image format, one of qcow2, vpc, raw.
   format ? "raw"
+
+, # Whether to compress the image, applicable only when the format is qcow2.
+  compressed ? false
 }:
 
 with lib;
 
 let
+  compress = optionalString compressed (assert format == "qcow2"; "-c");
+
   filename = "nixos." + {
     qcow2 = "qcow2";
     vpc   = "vhd";
@@ -136,7 +141,7 @@ in pkgs.vmTools.runInLinuxVM (
         ${if format == "raw" then ''
           mv $diskImage $out/${filename}
         '' else ''
-          ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} $diskImage $out/${filename}
+          ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
         ''}
         diskImage=$out/${filename}
         ${postVM}