diff options
Diffstat (limited to 'nixos/lib')
-rw-r--r-- | nixos/lib/make-disk-image.nix | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix index 63dd5594af301..d302fae430c1f 100644 --- a/nixos/lib/make-disk-image.nix +++ b/nixos/lib/make-disk-image.nix @@ -64,6 +64,12 @@ , # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw. format ? "raw" + +, # Whether a nix channel based on the current source tree should be + # made available inside the image. Useful for interactive use of nix + # utils, but changes the hash of the image when the sources are + # updated. + copyChannel ? true }: assert partitionTableType == "legacy" || partitionTableType == "legacy+gpt" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none"; @@ -166,7 +172,9 @@ let format' = format; in let users = map (x: x.user or "''") contents; groups = map (x: x.group or "''") contents; - closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; }; + closureInfo = pkgs.closureInfo { + rootPaths = [ config.system.build.toplevel ] ++ (lib.optional copyChannel channelSources); + }; blockSize = toString (4 * 1024); # ext4fs block size (not block device sector size) @@ -254,7 +262,9 @@ let format' = format; in let chmod 755 "$TMPDIR" echo "running nixos-install..." nixos-install --root $root --no-bootloader --no-root-passwd \ - --system ${config.system.build.toplevel} --channel ${channelSources} --substituters "" + --system ${config.system.build.toplevel} \ + ${if copyChannel then "--channel ${channelSources}" else "--no-channel-copy"} \ + --substituters "" diskImage=nixos.raw |