NixOS-konfiguration
Det här förrådet innehåller flake-baserade NixOS-konfigurationer.
Värdar
daidalos: Raspberry Pi 4,aarch64-linux, ZFS-root,extlinuxhermes: x86_64-serverkronos: 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
aarch64SD-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
- Ladda ned NixOS generiska
aarch64SD-image. - Skriv den till ett microSD-kort.
- Starta Raspberry Pi 4 från kortet.
- 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_MEiinstallDiskmed rätt disk från/dev/disk/by-id - Sätt
networking.hostIdtill en unik sträng med 8 hextecken, till exempel värdet frånopenssl 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