# NixOS ## Playground (QEMU) ```bash sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ``` - Video: QXL - In `configuration.nix`: `services.spice-vdagentd.enable = true;` - Falls die HDD zu klein ist: `qemu-img resize nixos.qcow2 +20G` ## Manuelle Installation (UEFI) ### 1. Root-Shell starten ```bash sudo -i # Use german keyboard layout loadkeys de # List block devices lsbkl ``` ### 2. Partitionierung Das folgende Schema erstellt fuenf Partitionen auf `/dev/sda`: | Partition | Typ | Groesse | Mountpoint | |-------------|----------------|-------------------|------------| | `/dev/sda1` | FAT32 (EFI) | 512 MB | `/boot` | | `/dev/sda2` | linux-swap | 8 GB | — | | `/dev/sda3` | ext4 (Root) | Rest minus Home | `/` | | `/dev/sda4` | ext4 (Home) | 50% des Rests | `/home` | **Hinweis:** Die Groessen muessen an die eigene Festplatte angepasst werden. Im Beispiel wird eine 100 GB Festplatte verwendet. ```bash # GPT-Partitionstabelle erstellen parted /dev/sda -- mklabel gpt # EFI-Partition (512 MB) parted /dev/sda -- mkpart esp fat32 1MB 512MB parted /dev/sda -- set 1 esp on # Swap-Partition (8 GB) parted /dev/sda -- mkpart swap linux-swap 512MB 8626MB # Root-Partition (ca. 45 GB) parted /dev/sda -- mkpart root ext4 8636MB 40000MB # Home-Partition (Rest) parted /dev/sda -- mkpart home ext4 40000MB 100% # Ergebnis pruefen parted /dev/sda -- print ``` ### 3. Dateisysteme erstellen ```bash # EFI-Partition formatieren mkfs.fat -F 32 -n boot /dev/sda1 # Swap-Partition formatieren mkswap -L swap /dev/sda2 # Root-Partition formatieren mkfs.ext4 -L nixos /dev/sda3 # Home-Partition formatieren mkfs.ext4 -L home /dev/sda4 ``` ### 4. Partitionen einhängen Die Reihenfolge ist wichtig — zuerst Root, dann die Unterverzeichnisse: ```bash # Root mounten mount /dev/disk/by-label/nixos /mnt # Boot-Verzeichnis erstellen und mounten mkdir /mnt/boot mount -o umask=077 /dev/disk/by-label/boot /mnt/boot # Home-Verzeichnis erstellen und mounten mkdir -p /mnt/home mount /dev/disk/by-label/home /mnt/home # Swap aktivieren swapon /dev/disk/by-label/swap ``` ### 6. Konfiguration generieren ```bash nixos-generate-config --root /mnt ``` Dies erzeugt zwei Dateien: - `/mnt/etc/nixos/hardware-configuration.nix` — erkannte Hardware und Mountpoints - `/mnt/etc/nixos/configuration.nix` — Grundkonfiguration ### 7. Bootloader konfigurieren In `/mnt/etc/nixos/configuration.nix` sicherstellen, dass der Bootloader korrekt eingerichtet ist: ```nix boot.loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; ``` ### 8. Home Manager Channel hinzufuegen ```bash nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager nix-channel --update ``` ### 9. System installieren ```bash nixos-install ``` Nach der Installation wird ein Root-Passwort abgefragt. Danach: ```bash reboot ``` ### 10. Nach dem ersten Start ```bash # Konfiguration anwenden sudo nixos-rebuild switch # SMB-Zugangsdaten einrichten (falls Netzlaufwerke genutzt werden) sudo /etc/nixos/setup-smb-credentials.sh ``` ## Wartung ```bash # Nix Store optimieren und alte Generationen entfernen sudo nix-store --optimise && sudo nix-collect-garbage -d ```