Create full netboot images in 15 seconds.
quickly.nix
to your system's imports, like in./size-test/base.nix
$ nix-build '<nixpkgs/nixos>' -I nixos-config=./size-test/base.nix -A config.system.build.ipxeBootDir
./result/netboot.ipxe
.The initial build may take a few minutes, but subsequent builds will only take a few seconds.
Setting up recursive Nix requires support on the build machine:
{ pkgs, ... }: {
nix = {
package = pkgs.nixUnstable;
systemFeatures = [ "recursive-nix" "kvm" "nixos-test" ];
extraOptions = ''
experimental-features = recursive-nix
'';
};
}
./quickly.nix
uses recursive Nix to build the initrd and squashfs
filesystems more quickly, allowing for faster iteration of images.
Initial testing reduced build time from 5-10 minutes per image to
15-30 seconds.
The ./size-test/build.sh
test is able to build an incremental
netboot image in just 12 seconds, and the initrd is not rebuilt.