Automatically build (netboot) images for NixOS [maintainer=@Mic92]
Rust
412
740 commits
updated Sep 17, 2026
This project provides automatically updated NixOS images that complement the official images from hydra.nixos.org. New images are built weekly to ensure you always have access to the latest NixOS features and security updates.
We currently offer three types of NixOS images:
Our ISO installer images allow you to boot NixOS from a USB drive. These images have been optimized for both local and remote installations.
Choose the appropriate image for your system architecture:
For x86_64 (64-bit Intel/AMD):
wget https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-installer-x86_64-linux.iso
For aarch64 (64-bit ARM):
wget https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-installer-aarch64-linux.iso
You can also download the images directly from the releases page.
On Linux:
lsblk
On macOS:
diskutil list
Make careful note of the device name (e.g., /dev/sdb, /dev/disk2, etc.) - writing to the wrong device can cause data loss!
On Linux:
# Replace /dev/sdX with your USB drive device
sudo dd if=nixos-installer-x86_64-linux.iso of=/dev/sdX bs=4M status=progress conv=fsync
On macOS:
# First unmount the drive (replace N with your disk number)
diskutil unmountDisk /dev/diskN
# Write the image (replace N with your disk number)
sudo dd if=nixos-installer-x86_64-linux.iso of=/dev/rdiskN bs=1m
On Windows: We recommend using tools like Rufus, balenaEtcher, or Ventoy to write the ISO:
Our installer has been optimized for both local and remote installations (like with nixos-anywhere and clan):
torify ssh <hash>.onioniwctl in the terminal for an interactive WiFi setup interfaceiwctl station list to list WiFi adaptersiwctl station <adapter> scan to scan for networksiwctl station <adapter> connect <SSID> to connectAfter booting the installer, you can:

Kexec tarballs provide a way to boot the NixOS installer directly from an existing Linux system without requiring physical media or rebooting.
Kexec is a mechanism in Linux that allows you to load and boot a new kernel from within a currently running Linux system. This is particularly useful for:
Run these commands as root on your existing Linux system:
curl -L https://github.com/nix-community/nixos-images/releases/latest/download/nixos-kexec-installer-noninteractive-x86_64-linux.tar.gz | tar -xzf- -C /root
/root/kexec/run
After executing these commands, there will be a short delay (6 seconds) before the kexec process replaces your current kernel with the NixOS installer kernel. This delay allows you to disconnect cleanly if running the commands over SSH.
The kexec installer includes several features to make remote installation easier:
.ssh/known_hosts on client machines/root/.ssh/authorized_keys/root/.ssh/authorized_keys2/etc/ssh/authorized_keys.d/rootThe kexec installer is designed to work seamlessly with nixos-anywhere for fully automated NixOS installations.
Netboot images allow you to boot NixOS over the network without requiring local installation media.
Network booting (netboot) enables computers to boot and load an operating system from the network rather than from local storage. This is useful for:
Our netboot package consists of three main components:
If you already have an iPXE environment set up, you can use our prepared iPXE script:
# Boot directly using our iPXE script
chain https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/netboot-x86_64-linux.ipxe
If you're setting up your own PXE/TFTP server, you'll need:
Configure your DHCP server to point to your TFTP server, and configure the TFTP server to serve these files.
Here's a basic example for setting up a TFTP/PXE server with dnsmasq:
# Create a temporary environment with dnsmasq
nix-shell -p dnsmasq
# Create a configuration file
cat > dnsmasq.conf << EOF
interface=eth0
dhcp-range=192.168.1.100,192.168.1.150,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/srv/tftp
EOF
# Create the TFTP directory
mkdir -p /srv/tftp/nixos
# Download the netboot files
curl -o /srv/tftp/nixos/bzImage https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/bzImage-x86_64-linux
curl -o /srv/tftp/nixos/initrd https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/initrd-x86_64-linux
# Run dnsmasq
dnsmasq --conf-file=dnsmasq.conf --no-daemon
For more detailed information on network booting:
Rust
43.5%
Nix
41.8%
Shell
7.4%
Python
7.3%
Automatically build (netboot) images for NixOS [maintainer=@Mic92]
Rust
412
740 commits
updated Sep 17, 2026
This project provides automatically updated NixOS images that complement the official images from hydra.nixos.org. New images are built weekly to ensure you always have access to the latest NixOS features and security updates.
We currently offer three types of NixOS images:
Our ISO installer images allow you to boot NixOS from a USB drive. These images have been optimized for both local and remote installations.
Choose the appropriate image for your system architecture:
For x86_64 (64-bit Intel/AMD):
wget https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-installer-x86_64-linux.iso
For aarch64 (64-bit ARM):
wget https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-installer-aarch64-linux.iso
You can also download the images directly from the releases page.
On Linux:
lsblk
On macOS:
diskutil list
Make careful note of the device name (e.g., /dev/sdb, /dev/disk2, etc.) - writing to the wrong device can cause data loss!
On Linux:
# Replace /dev/sdX with your USB drive device
sudo dd if=nixos-installer-x86_64-linux.iso of=/dev/sdX bs=4M status=progress conv=fsync
On macOS:
# First unmount the drive (replace N with your disk number)
diskutil unmountDisk /dev/diskN
# Write the image (replace N with your disk number)
sudo dd if=nixos-installer-x86_64-linux.iso of=/dev/rdiskN bs=1m
On Windows: We recommend using tools like Rufus, balenaEtcher, or Ventoy to write the ISO:
Our installer has been optimized for both local and remote installations (like with nixos-anywhere and clan):
torify ssh <hash>.onioniwctl in the terminal for an interactive WiFi setup interfaceiwctl station list to list WiFi adaptersiwctl station <adapter> scan to scan for networksiwctl station <adapter> connect <SSID> to connectAfter booting the installer, you can:

Kexec tarballs provide a way to boot the NixOS installer directly from an existing Linux system without requiring physical media or rebooting.
Kexec is a mechanism in Linux that allows you to load and boot a new kernel from within a currently running Linux system. This is particularly useful for:
Run these commands as root on your existing Linux system:
curl -L https://github.com/nix-community/nixos-images/releases/latest/download/nixos-kexec-installer-noninteractive-x86_64-linux.tar.gz | tar -xzf- -C /root
/root/kexec/run
After executing these commands, there will be a short delay (6 seconds) before the kexec process replaces your current kernel with the NixOS installer kernel. This delay allows you to disconnect cleanly if running the commands over SSH.
The kexec installer includes several features to make remote installation easier:
.ssh/known_hosts on client machines/root/.ssh/authorized_keys/root/.ssh/authorized_keys2/etc/ssh/authorized_keys.d/rootThe kexec installer is designed to work seamlessly with nixos-anywhere for fully automated NixOS installations.
Netboot images allow you to boot NixOS over the network without requiring local installation media.
Network booting (netboot) enables computers to boot and load an operating system from the network rather than from local storage. This is useful for:
Our netboot package consists of three main components:
If you already have an iPXE environment set up, you can use our prepared iPXE script:
# Boot directly using our iPXE script
chain https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/netboot-x86_64-linux.ipxe
If you're setting up your own PXE/TFTP server, you'll need:
Configure your DHCP server to point to your TFTP server, and configure the TFTP server to serve these files.
Here's a basic example for setting up a TFTP/PXE server with dnsmasq:
# Create a temporary environment with dnsmasq
nix-shell -p dnsmasq
# Create a configuration file
cat > dnsmasq.conf << EOF
interface=eth0
dhcp-range=192.168.1.100,192.168.1.150,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/srv/tftp
EOF
# Create the TFTP directory
mkdir -p /srv/tftp/nixos
# Download the netboot files
curl -o /srv/tftp/nixos/bzImage https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/bzImage-x86_64-linux
curl -o /srv/tftp/nixos/initrd https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/initrd-x86_64-linux
# Run dnsmasq
dnsmasq --conf-file=dnsmasq.conf --no-daemon
For more detailed information on network booting:
Rust
43.5%
Nix
41.8%
Shell
7.4%
Python
7.3%