From b79f1c3c99ff1a93a3e87623d0503cf7f653e9b5 Mon Sep 17 00:00:00 2001 From: phaer Date: Tue, 26 Nov 2024 12:21:05 +0100 Subject: [PATCH] manual: add nixos-rebuild build-image section --- ...ages-via-nixos-rebuild-build-image.chapter.md | 16 ++++++++++++++++ .../installation/building-nixos.chapter.md | 4 +--- nixos/doc/manual/installation/installation.md | 1 + nixos/doc/manual/redirects.json | 3 +++ 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 nixos/doc/manual/installation/building-images-via-nixos-rebuild-build-image.chapter.md diff --git a/nixos/doc/manual/installation/building-images-via-nixos-rebuild-build-image.chapter.md b/nixos/doc/manual/installation/building-images-via-nixos-rebuild-build-image.chapter.md new file mode 100644 index 000000000000..378b1163a6e3 --- /dev/null +++ b/nixos/doc/manual/installation/building-images-via-nixos-rebuild-build-image.chapter.md @@ -0,0 +1,16 @@ +# Building Images with `nixos-rebuild build-image` {#sec-image-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: + +```ShellSession +$ 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. + diff --git a/nixos/doc/manual/installation/building-nixos.chapter.md b/nixos/doc/manual/installation/building-nixos.chapter.md index 3ae951916849..2b4dba57c10f 100644 --- a/nixos/doc/manual/installation/building-nixos.chapter.md +++ b/nixos/doc/manual/installation/building-nixos.chapter.md @@ -1,7 +1,7 @@ # Building a NixOS (Live) ISO {#sec-building-image} Default live installer configurations are available inside `nixos/modules/installer/cd-dvd`. -For building other system images, [nixos-generators] is a good place to start looking at. +For building other system images, see [Building Images with `nixos-rebuild build-image`](#sec-image-nixos-rebuild-build-image). You have two options: @@ -14,8 +14,6 @@ on which they immediately depend in order to work correctly. However, if you are confident, you can opt to override those enforced values with `mkForce`. -[nixos-generators]: https://github.com/nix-community/nixos-generators - ## Practical Instructions {#sec-building-image-instructions} To build an ISO image for the channel `nixos-unstable`: diff --git a/nixos/doc/manual/installation/installation.md b/nixos/doc/manual/installation/installation.md index f3b1773d865c..04bad5be1d46 100644 --- a/nixos/doc/manual/installation/installation.md +++ b/nixos/doc/manual/installation/installation.md @@ -8,5 +8,6 @@ installing.chapter.md changing-config.chapter.md upgrading.chapter.md building-nixos.chapter.md +building-images-via-nixos-rebuild-build-image.chapter.md building-images-via-systemd-repart.chapter.md ``` diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index f792750a1ea4..428dbdcc54c2 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -167,6 +167,9 @@ "sec-building-image-tech-notes": [ "index.html#sec-building-image-tech-notes" ], + "sec-image-nixos-rebuild-build-image": [ + "index.html#sec-image-nixos-rebuild-build-image" + ], "sec-image-repart": [ "index.html#sec-image-repart" ],