1.5 KiB
Building Images with nixos-rebuild build-image
Nixpkgs contains a variety of modules to build custom images for different virtualization platforms and cloud providers, such as e.g. amazon-image.nix
and proxmox-lxc.nix
.
While those can be imported individually, system.build.images
provides an attribute set mapping variant names to image derivations. Available variants are defined - end extendable - in image.modules
, an attribute set mapping variant names to a list of NixOS modules.
All of those images can be built via both, their system.build.image
attribute, and the CLI nixos-rebuild build-image
. To build i.e. an Amazon image from your existing NixOS configuration:
$ nixos-rebuild build-image --image-variant amazon
$ ls result
nixos-image-amazon-25.05pre-git-x86_64-linux.vhd nix-support
To get a list of all variants available, run nixos-rebuild build-image
without arguments.
Customize specific image variants
The image.modules
option can be used to set specific options per image variant, in a similar fashion as specialisations for generic nixos configurations.
E.g. images for the cloud provider Linode use grub2
as a bootloader by default. If you are using systemd-boot
on other platforms and want to disable it for Linode onlz, you could use the following options:
image.modules.linode = {
boot.loader.systemd-boot.enable = lib.mkForce false;
};