1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-08 02:38:11 +09:00
nixpkgs/nixos/doc/manual/installation/building-images-via-nixos-rebuild-build-image.chapter.md
phaer abed087403 manual: smaller fixes for nixos-rebuild build-image docs
* correct option type for `image.modules`
* fix grammar
* show actual output of the command to
2025-04-14 13:30:29 +02:00

1.7 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 directly, 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 NixOS modules.

All of those images can be built via both, their system.build.image attribute and the nixos-rebuild build-image command.

For example, to build an Amazon image from your existing NixOS configuration, run:

$ nixos-rebuild build-image --image-variant amazon
[...]
Done. The disk image can be found in /nix/store/[hash]-nixos-image-amazon-25.05pre-git-x86_64-linux/nixos-image-amazon-25.05pre-git-x86_64-linux.vpc

To get a list of all variants available, run nixos-rebuild build-image without arguments.

::: {.example #ex-nixos-rebuild-build-image-customize}

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 only, you could use the following options:

  image.modules.linode = {
    boot.loader.systemd-boot.enable = lib.mkForce false;
  };