🚀 Guide: Custom Aurora NVIDIA-Image bauen
mit BlueBuild, sysusers, tmpfiles, Root-Passwort & Schweizer Tastatur Wir verwenden das Aurora NVIDIA-Open-Image (Universal Blue), das KDE Plasma, NVIDIA-Treiber und immutable bootc/OStree-Technologie enthält.
✅ Voraussetzungen
-
Linux with
podman -
GitHub Account
-
sudo-Rechte
Schritt 0: Podman mit Github anmelden
echo "DEIN_GITHUB_TOKEN" | sudo podman login ghcr.io -u DEIN_GITHUB_USERNAME --password-stdin
## Schritt 1: BlueBuild CLI installierenpodman run --pull always --rm ghcr.io/blue-build/cli:latest-installer | bashSchritt 2: Projektstruktur
mkdir -p os-base/files
cd os-baseSchritt 3: Starship-Prompt konfigurieren
cat <<EOF > files/starship.toml
# Starship prompt config (mit OS-Anzeige)
add_newline = true
format = '[$os$all] '
[os]
format = '[$symbol$name]($style)'
style = "bold blue"
[character]
success_symbol = "[➜](bold green) "
error_symbol = "[✗](bold red) "
EOFSchritt 4: systemd-sysusers – Fedora User
cat <<'EOF' > files/fedora-user.sysusers
# systemd-sysusers: Login-User "fedora"
u fedora 1000 "Fedora User" /var/home/fedora /bin/bash
m fedora wheel
EOFSchritt 5: systemd-tmpfiles – Home-Struktur
cat <<'EOF' > files/fedora-home.tmpfiles
d /var/home 0755 root root -
d /var/home/fedora 0700 fedora fedora -
d /var/home/fedora/.config 0700 fedora fedora -
d /var/home/fedora/.cache 0700 fedora fedora -
EOF🟦 Schritt 6: Tastaturlayout SCHWEIZ (ch)
Wir setzen dauerhaft:
-
Konsole → CH
-
X11/Wayland (KDE) → CH
-
System-wide locale → de_CH.UTF-8
6.1 vconsole.conf (TTY)
cat <<'EOF' > files/vconsole.conf
KEYMAP=ch
FONT=latarcyrheb-sun32
EOFWird nach /etc/vconsole.conf deployed.
6.2 X11 Keyboard Layout (KDE & Wayland)
cat <<'EOF' > files/00-keyboard.conf
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "ch"
Option "XkbModel" "pc105"
Option "XkbVariant" ""
EndSection
EOFNach /etc/X11/xorg.conf.d/00-keyboard.conf.
6.3 Systemweite Locale (de_CH.UTF-8)
cat <<'EOF' > files/locale.conf
LANG=de_CH.UTF-8
LC_TIME=de_CH.UTF-8
LC_MONETARY=de_CH.UTF-8
LC_NUMERIC=de_CH.UTF-8
LC_PAPER=de_CH.UTF-8
EOFNach /etc/locale.conf.
🟥 Schritt 7: Benutzer & Passwörter (Root + Fedora)
✔ Root aktivieren
Wir setzen im Build:
echo "root:root" | chpasswd
passwd -u root✔ Fedora Passwort setzen (richtiger Weg)
Wir setzen kein Passwort im Build (weil der User erst beim Boot entsteht).
Stattdessen setzen wir das Passwort nach der ersten initialisation korrekt:
passwd -d fedora # entfernt Pflicht für "current password"
passwd fedora # setzt neues Passwort→ Im VM-Boot einfach eingeben: fedora
🟩 Schritt 8: Vollständige recipe.yml
Hier ist die fertige, korrekte Datei:
---
name: os-base
description: Custom Aurora NVIDIA System mit Extras, Flatpaks & CH Keyboard
base-image: ghcr.io/ublue-os/aurora-nvidia-open
image-version: latest
modules:
- type: dnf
install:
packages:
- passwd
- xorg-x11-drv-vmware
- qemu-guest-agent
- type: files
files:
- source: starship.toml
destination: /usr/etc/starship.toml
# user + home definition
- source: fedora-user.sysusers
destination: /usr/lib/sysusers.d/50-fedora.conf
- source: fedora-home.tmpfiles
destination: /usr/lib/tmpfiles.d/50-fedora-home.conf
# keyboard + locale
- source: vconsole.conf
destination: /etc/vconsole.conf
- source: 00-keyboard.conf
destination: /etc/X11/xorg.conf.d/00-keyboard.conf
- source: locale.conf
destination: /etc/locale.conf
- type: script
snippets:
# root login aktivieren
- echo "root:root" | chpasswd
- passwd -u root
- echo "Customizations applied."
- type: default-flatpaks
configurations:
- scope: system
install:
- com.brave.Browser
- com.visualstudio.code
- md.obsidian.Obsidian🟩 Schritt 9: Build
touch cosign.pub cosign.key
bluebuild template recipe.yml -o Containerfile
sudo podman build -t os-base:latest .🟩 Schritt 10: QCOW2 erzeugen
sudo podman run --rm --privileged \
-v .:/output \
-v /var/lib/containers/storage:/var/lib/containers/storage \
quay.io/centos-bootc/bootc-image-builder:latest \
--type qcow2 \
--rootfs btrfs \
localhost/os-base:latest🟩 Schritt 11: Boot in QEMU
sudo qemu-system-x86_64 \
-machine q35,accel=kvm \
-cpu host \
-m 4096 \
-smp 4 \
-drive file=qcow2/disk.qcow2,if=virtio,format=qcow2 \
-device virtio-vga \
-display sdl \
-netdev user,id=net0 -device virtio-net-pci,netdev=net0 \
-bios /usr/share/ovmf/OVMF.fdLogin:
-
root / root
-
fedora / (nach erstem Login setzen)
🎉 FERTIG — dein Image ist jetzt:
✔ Mit CH-Tastatur
✔ Mit systemd-sysusers User
✔ Mit persistentem /var/home
✔ Mit systemweiten Flatpaks
✔ Mit Root-Login
✔ Mit funktionierendem Fedora-User
✔ Perfekt bootc/Silverblue-konform
🛠️ Manchmal installieren flatpaks nach dem start nicht automatisch
-
Status 🔎:
systemctl status system-flatpak-setup.timer -
Neustart 🚀:
sudo systemctl restart system-flatpak-setup.timer -
Oder Tool 🔧:
ujust(oderjust) ist ein Kommandozeilen-Runner, der in BlueBuild-Images verwendet wird. Er funktioniert wie ein vereinfachtes Makefile und bündelt komplexe, oft wiederkehrende Befehle in einfache, benutzerfreundliche Aliase (wieinstall-flatpaks). Es macht das Leben einfacher, indem man sich nicht die langen Systemd-Befehle merken muss.
ujust install-flatpaks -
Installed Flatpaks
sudo flatpaks list -
Danach 🔄:
Abmelden/Neustart.