nixos-images/README.md

51 lines
2.9 KiB
Markdown
Raw Normal View History

2021-06-10 08:10:06 +02:00
# nixos-images
2022-09-05 08:58:49 +02:00
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:
2021-06-10 10:43:44 +02:00
2022-09-05 08:58:49 +02:00
## Netboot images
2021-06-10 10:43:44 +02:00
2022-09-05 08:58:49 +02:00
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
2022-09-05 08:58:49 +02:00
existing Linux distributions, such as server provider that do not offer a NixOS
2022-09-20 08:34:00 +02:00
option. After running kexec, the NixOS installer exists only in memory. At the
time of writing, this requires at least 2.5GB of physical RAM (swap does not
count) 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.
2022-09-05 08:58:49 +02:00
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.
2022-09-05 08:58:49 +02:00
2022-09-05 09:03:21 +02:00
It can be booted as follows by running these commands as root:
2022-09-05 08:58:49 +02:00
```
2022-09-20 08:36:50 +02:00
curl -L https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/nixos-kexec-installer-x86_64-linux.tar.gz | tar -xzf- -C /root
2022-09-05 08:58:49 +02:00
/root/kexec/run
```
2022-11-27 20:11:19 +01:00
The kexec installer comes with the following features:
- Re-uses ssh host keys from the sshd to not break `.ssh/known_hosts`
- Authorized ssh keys are read from `/root/.ssh/authorized_keys`, `/root/.ssh/authorized_keys2` and `/etc/ssh/authorized_keys.d/root`
- Static ip addresses and routes are restored after reboot. Interface that had
dynamic addresses before are configured with DHCP and to accept prefixes from
ipv6 router advertisment.
2022-11-25 10:43:14 +01:00
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
2022-09-05 08:58:49 +02:00
We also have [kexec-bundle](https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/kexec-bundle-x86_64-linux),
2022-11-27 20:11:19 +01:00
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.