2026-04-22 20:34:53 +02:00
2026-04-22 20:34:53 +02:00
2026-04-14 14:50:00 +02:00
pyc
2026-04-14 17:37:08 +02:00
2026-04-21 19:54:01 +02:00
2026-04-21 19:54:01 +02:00
2026-04-14 16:42:51 +02:00
2026-04-22 20:34:53 +02:00
2026-03-26 23:19:13 +01:00

NixOS-konfiguration

Det här förrådet innehåller flake-baserade NixOS-konfigurationer.

Värdar

  • daidalos: Raspberry Pi 4, aarch64-linux, ZFS-root, extlinux
  • hermes: x86_64-server
  • kronos: x86_64-desktop

Ny installation: daidalos

De här stegen utgår från en helt ren maskin. Du behöver inte installera Nix innan du börjar. NixOS-installationsmediet innehåller redan nix, nixos-install och nixos-generate-config.

Krav

  • En Raspberry Pi 4
  • Ett separat microSD-kort med NixOS generiska aarch64 SD-image
  • En separat måldisk för systemet, helst en USB-SSD eller NVMe-adapter som syns under /dev/disk/by-id
  • Nätverksanslutning under installationen
  • All data på måldisken raderas under installationen

daidalos använder ZFS och refererar diskar via /dev/disk/by-id. Installera inte på samma medium som du har bootat installationsmiljön från.

1. Boota installationsmediet

  1. Ladda ned NixOS generiska aarch64 SD-image.
  2. Skriv den till ett microSD-kort.
  3. Starta Raspberry Pi 4 från kortet.
  4. Om nätverket inte kommer upp automatiskt, kör nmtui.

2. Hämta förrådet och välj måldisk

sudo -i
export NIX_CONFIG='experimental-features = nix-command flakes'
cd /tmp
nix shell nixpkgs#git -c git clone <repo-url> nixcfg
cd /tmp/nixcfg
ls -l /dev/disk/by-id
nix shell nixpkgs#openssl -c openssl rand -hex 4
nix shell nixpkgs#nvim -c nvim modules/hosts/daidalos/configuration.nix

Ändra sedan i modules/hosts/daidalos/configuration.nix:

  • Ersätt REPLACE_ME i installDisk med rätt disk från /dev/disk/by-id
  • Sätt networking.hostId till en unik sträng med 8 hextecken, till exempel värdet från openssl rand -hex 4

3. Partitionera, formatera och montera måldisken

nix run github:nix-community/disko -- --mode destroy,format,mount --flake .#daidalos

Kommandot raderar all data på måldisken och monterar systemet under /mnt.

4. Generera hardware.nix för just den här maskinen

mkdir -p /tmp/hw
nixos-generate-config --root /mnt --dir /tmp/hw --no-filesystems
cp /tmp/hw/hardware-configuration.nix modules/hosts/daidalos/hardware.nix

--no-filesystems är viktigt här. Disklayouten hanteras redan av disko.

5. Kopiera konfigurationen och installera systemet

mkdir -p /mnt/etc
cp -a /tmp/nixcfg /mnt/etc/nixos
nixos-install --root /mnt --flake /mnt/etc/nixos#daidalos

nixos-install frågar efter ett root-lösenord för den installerade maskinen.

6. Starta om

Ta bort installationskortet och starta om:

reboot

Om Pi:n inte bootar från måldisken efter installationen är firmware troligen inte inställd för USB-boot ännu. Då behöver Raspberry Pi EEPROM uppdateras innan systemet kan starta från en USB-disk.

Vanligt underhåll

På en installerad maskin ligger konfigurationen under /etc/nixos.

Uppdatera flake-låset:

cd /etc/nixos
nix flake update

Bygg och aktivera konfigurationen:

cd /etc/nixos
sudo nixos-rebuild switch --flake .#daidalos

Testa utan att göra ändringen permanent över reboot:

cd /etc/nixos
sudo nixos-rebuild test --flake .#daidalos

Bygg bara:

cd /etc/nixos
sudo nixos-rebuild build --flake .#daidalos

Rensa gamla generationer och oanvända paket:

sudo nix-collect-garbage -d

Visa ZFS-snapshots:

zfs list -t snapshot
S
Description
No description provided
Readme 277 KiB
Languages
Nix 71.9%
Python 27.3%
Shell 0.7%
DIGITAL Command Language 0.1%