nixos-cesium/README.md
2026-02-10 17:38:47 +01:00

151 lines
3.4 KiB
Markdown

# 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
# Short for all the stuff below !!! ONLY ON EMPTY DRIVES !!!
curl -L https://www.fischer.im/nixos/minimal-install --output install.sh
chmod 744 ./install.sh
./install.sh
```
### 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. System installieren
```bash
nixos-install
```
Nach der Installation wird ein Root-Passwort abgefragt. Danach:
```bash
reboot
```
### 9. Nach dem ersten Start
```bash
nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
nix-channel --update
# 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
```