119 lines
2.1 KiB
Markdown
119 lines
2.1 KiB
Markdown
# NixOS-konfiguration
|
|
|
|
Det här förrådet innehåller en flake-baserad NixOS-konfiguration för mina
|
|
maskiner.
|
|
|
|
Just nu finns värden `kronos`.
|
|
|
|
Punktfiler förväntas att finns under `~/dotfiles`, och hanteras med home manager
|
|
|
|
## Flakes
|
|
|
|
Vi lever i framtiden, därför används flakes exklusivt.
|
|
|
|
## För att installera
|
|
|
|
1. Kontrollera att rätt disk (`installDisk`) är vald i `hosts/kronos/default.nix`
|
|
2. Generera en `hardware-configuration.nix`. Tag dock bort all information om filsystem. Disko sköter redan det åt oss.
|
|
3. Kontrollera `networking.hostId`. Bör vara unikt för nätverket.
|
|
|
|
### Applicera konfiguration
|
|
|
|
Sedan:
|
|
|
|
```bash
|
|
sudo -i
|
|
export NIX_CONFIG='experimental-features = nix-command flakes'
|
|
cd /tmp
|
|
git clone <repo-url> nixcfg
|
|
cd nixcfg
|
|
```
|
|
|
|
Applicera disk-layouten:
|
|
|
|
```bash
|
|
nix run github:nix-community/disko -- --mode disko .#kronos
|
|
```
|
|
|
|
Generera hårdvarufilen och kopiera in den i förrådet:
|
|
|
|
```bash
|
|
nixos-generate-config --root /mnt
|
|
cp /mnt/etc/nixos/hardware-configuration.nix ./hosts/kronos/hardware-configuration.nix
|
|
```
|
|
|
|
Kom ihåg att ta bort alla filesystemkonfiguration från `hardware-configuration.nix`.
|
|
Disko sköter ju redan det.
|
|
|
|
Kopiera också över konfigurationen till målenheten
|
|
|
|
```bash
|
|
rm -rf /mnt/etc/nixos
|
|
cp -r /tmp/nixcfg /mnt/etc/nixos
|
|
```
|
|
|
|
Installera systemet:
|
|
|
|
```bash
|
|
nixos-install --flake .#kronos
|
|
```
|
|
|
|
Registrera TPM-nyckeln:
|
|
|
|
```bash
|
|
nixos-enter --root /mnt
|
|
./systemd-cryptenroll.sh
|
|
```
|
|
|
|
Starta om:
|
|
|
|
```bash
|
|
reboot
|
|
```
|
|
|
|
## Efter första uppstart
|
|
|
|
```bash
|
|
git clone <dotfiles-repo> ~/dotfiles
|
|
```
|
|
|
|
## Vanligt underhåll
|
|
|
|
När systemet väl är installerat jobbar man oftast så här.
|
|
|
|
Uppdatera flake-låset:
|
|
|
|
```bash
|
|
nix flake update
|
|
```
|
|
|
|
Bygg och applicera ändringar på den lokala maskinen:
|
|
|
|
```bash
|
|
sudo nixos-rebuild switch --flake .#kronos
|
|
```
|
|
|
|
Testa en konfiguration utan att göra den permanent vid nästa boot:
|
|
|
|
```bash
|
|
sudo nixos-rebuild test --flake .#kronos
|
|
```
|
|
|
|
Bygg bara, utan att byta system direkt:
|
|
|
|
```bash
|
|
sudo nixos-rebuild build --flake .#kronos
|
|
```
|
|
|
|
Rensa gamla generationer och oanvända paket:
|
|
|
|
```bash
|
|
sudo nix-collect-garbage -d
|
|
```
|
|
|
|
Kontrollera `ZFS`-snapshots:
|
|
|
|
```bash
|
|
zfs list -t snapshot
|
|
```
|