Building a bootable ISO image#
Note
If you need to build images for a different platform, see Cross compiling.
You may find that an official installation image lacks some hardware support.
The solution is to create myimage.nix
to point to the latest kernel using the minimal installation ISO:
1{ pkgs, modulesPath, lib, ... }: {
2 imports = [
3 "${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"
4 ];
5
6 # use the latest Linux kernel
7 boot.kernelPackages = pkgs.linuxPackages_latest;
8
9 # Needed for https://github.com/NixOS/nixpkgs/issues/58959
10 boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ];
11}
Generate an ISO with the above configuration:
$ NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/74e2faf5965a12e8fa5cff799b1b19c6cd26b0e3.tar.gz nix-shell -p nixos-generators --run "nixos-generate --format iso --configuration ./myimage.nix -o result"
Copy the new image to your USB stick by replacing sdX
with the name of your device:
$ dd if=result/iso/*.iso of=/dev/sdX status=progress
$ sync
Next steps#
Take a look at this list of formats that generators support to find your cloud provider or virtualization technology.
Take a look at the alternative guide to create a NixOS live CD