← Retour au blog
tech 20 June 2026

Optimizing NixOS ISOs: Towards a Leaner Build

Exploring how to reduce the size of NixOS ISOs while maintaining efficiency and functionality.

Article inspired by the original source
I can haz smoller NixOS ISOs? ↗ natkr.com

Introduction

When it comes to creating ISO images for NixOS, size matters. Yes, really. In a world where we're often faced with limited internet connections and storage constraints, optimizing the size of ISOs can make a significant difference. So, how can we achieve a leaner version of NixOS without sacrificing the essentials?

Why Smaller ISOs?

Large ISOs can be problematic for several reasons. First, they take longer to download and transfer, which can be a significant hurdle in environments where bandwidth is limited. Moreover, when deploying these ISOs on servers or virtual machines, every megabyte counts, especially if you're managing a large-scale infrastructure.

The NixOS Approach

NixOS is known for its flexibility and ability to create custom configurations. Using nixos-rebuild build-vm is a great starting point for creating a minimal virtual machine based on your system configuration. However, to go further and create a complete ISO, a different approach is needed.

Here's a basic configuration example to generate an ISO:

``nix let pkgs = import (fetchTarball { url = "https://github.com/NixOS/nixpkgs/archive/567a49d1913ce81ac6e9582e3553dd90a955875f.tar.gz"; sha256 = "1vq77hlx8mi3z03pw2nf6r5h7473r1p9yxyf58ym3fh01zppmfln"; }) {}; in pkgs.nixos ({ lib, ... }: { system.stateVersion = "26.05"; services.getty.autologinUser = "root"; imports = [ "${pkgs.path}/nixos/modules/installer/cd-dvd/iso-image.nix" ]; image.baseName = lib.mkForce "nixos"; }) ``

This configuration allows for creating a basic ISO, but how can we slim it down further?

Reducing ISO Size

Kernel Modules

Each kernel module included in an ISO image adds to its size. Identify essential modules and eliminate those not necessary for your specific use case. This can significantly reduce the image size.

SSH and Other Services

Ask yourself if you really need services like SSH from the get-go. While convenient, their default inclusion can bloat the ISO. You can configure these services on-demand after the initial installation.

Unnecessary Packages

Review all packages included by default and evaluate which ones are genuinely needed. Sometimes, cleaning up unused dependencies can make a big difference.

Challenges Ahead

Of course, reducing ISO size presents its own challenges. You might find yourself cutting out necessary functionality, which could negatively impact user experience or compatibility with certain hardware. It's crucial to thoroughly test each change to ensure it doesn't adversely affect the ISO.

Conclusion

Reducing the size of NixOS ISOs is a balancing act: it's about preserving what's essential while trimming the unnecessary. With a methodical approach, it's possible to create lean ISOs that meet the specific needs of your environment.

Let's discuss your project in 15 minutes.

NixOS ISO Optimization Virtualization Linux
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call