| config | ||
| scripts | ||
| .editorconfig | ||
| .gitignore | ||
| CLAUDE.md | ||
| install.sh | ||
| kvm.xml | ||
| README.md | ||
NixOS
Playground (QEMU)
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
- Video: QXL
- If the HDD for the VM is too small:
qemu-img resize nixos.qcow2 +20G
Manuelle Installation (UEFI)
1. Root-Shell starten
sudo -i
# Use german keyboard layout
loadkeys de
# Short for all the stuff below !!! TAKE CARE OF THE USERDATA !!!
curl -L https://www.fischer.im/nixos/minimal-install --output install.sh
chmod 744 ./install.sh
./install.sh
reboot
If you don't use the installation script, you need to follow the steps 2-8
2. Partitionierung
The following schema creates four partitions on /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 |
HINT: The sizes must be adapted to your hard drive. In the example it's assumed that a 100GB drive is in use.
# GPT-partition table
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%
# Check result
parted /dev/sda -- print
3. Dateisysteme erstellen
# 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:
# 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. Generate configuration
nixos-generate-config --root /mnt
This creates two files:
/mnt/etc/nixos/hardware-configuration.nix— detected hardware and mountpoints/mnt/etc/nixos/configuration.nix— Base configuration
7. Check the detected bootloader
Check in /mnt/etc/nixos/configuration.nix, that the bootloader is configured like this:
{
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
}
8. Install system
nixos-install
# After the installation the script sets your root password. (Test1)
reboot
9. After the first reboot
curl --output release.tar.gz https://gitea.fischer.im/sebastian/nixos-cesium/archive/[0.0.2].tar.gz
tar xzf release.tar.gz
chmod 744 nixos-cesium/script/post-install.sh
./nixos-cesium/script/post-install.sh
If you don't use the post-installation script, follow the next step
cp -r ~/nixos-cesium/config/* /etc/nixos/
# Remember to activate vm-guest.nix or vm-host.nix in configuration.nix
nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
nix-channel --update
# Konfiguration anwenden
nixos-rebuild switch --option experimental-features "nix-command flakes"
reboot
10. Post Installation
Generate SMB-credentials (if network mounts are used)
sudo /etc/nixos/setup-smb-credentials.sh
Wartung
Optimise Nix Store and remove old generations
sudo nix-store --optimise && sudo nix-collect-garbage -d