From d756db3609d51ef75060e11018684416e79c8aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 5 Sep 2022 08:58:49 +0200 Subject: [PATCH] README: mention kexec tarballs --- README.md | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5fc2394..5207da1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,40 @@ # nixos-images -Automatically build images for NixOS. This project is meant to extend images builded by hydra.nixos.org. -We currently build: +Automatically weekly updated images for NixOS. This project is intended to extend the images created by hydra.nixos.org. +We are currently creating the images listed below: -- netboot images: see [bzImage](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/bzImage-x86_64-linux) and [initrd](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/bzImage-x86_64-linux) -- and [kexec](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/kexec-bundle-x86_64-linux) images +## Netboot images -Images are weekly updated. +You can boot the netboot image using this [ipxe script](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/netboot-x86_64-linux.ipxe). +It consists of the [kernel image](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/bzImage-x86_64-linux) and [initrd](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/bzImage-x86_64-linux). + +## Kexec tarballs + +Kexec is a mechanism in Linux to load a new kernel from a running Linux to +replace the current kernel. This is useful for booting the Nixos installer from +existing Linux distributions, such as server provider that do not offer a NixOS +option. After running kexec, the NixOS exists only in memory. At the time of +writing, this requires at least 2.5GB of RAM in the system. If not enough RAM +is available, the initrd cannot be loaded. Because the NixOS runs only in RAM, +users can reformat all the system's discs to prepare for a new NixOS +installation. + +Currently, there are two variants of kexec: [nixos-kexec-installer](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-kexec-installer-x86_64-linux.tar.xz) +and [kexec bundle](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/kexec-bundle-x86_64-linux). + +The nixos-kexec-installer tarball is the new preferred method. + +It can be booted as follows: + +``` +curl -sL https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-kexec-installer-x86_64-linux.tar.xz | tar -xf -C /root +/root/kexec/run +``` + +The script copies existing sshd host keys and ssh keys from +`/root/.ssh/authorized_keys` and `/etc/ssh/authorized_keys.d/root` to the booted nixos machine. The actual kexec happens with a slight delay (6s). +This allows for easier integration into automated nixos installation scripts, since you can cleanly disconnect from the running machine before the kexec takes place. +The tarball is also designed to be run from NixOS, which can be useful for new installations + +We also have [kexec-bundle](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/kexec-bundle-x86_64-linux), +which is a self-extracting archive from [nixos-generators](https://github.com/nix-community/nixos-generators). This version unpacks itself to `/` and possibly overlays the existing `/nix/store` with its own files. with its own files.