Stefan Strobl c9fbc5486c fix(config): add size validation and improve swap normalization
Add validate_size() function to check format of user-provided
size inputs (ESP_SIZE, ROOT_END, SWAP_SIZE) before they reach
partitioning tools. Prevents cryptic parted errors from invalid
formats like "abc" or "1X".

Improve SWAP_SIZE normalization to handle all zero variants
(0, 0G, 0GB, 0GiB, 0M, 0MB, 0MiB) consistently.

Decision: Validate at config phase rather than partition phase
to provide early, clear feedback. Use regex pattern that matches
parted's expected format (number + optional unit or percentage).

Alternative considered: Let parted handle validation, rejected
because error messages would be less user-friendly.
2025-12-24 15:22:50 +01:00

Void Bootstrapp Wrapper

Ein Bash-Wrapper, der die kritischen Vorarbeiten fuer eine verschluesselte Void-Linux-Installation erledigt und danach den offiziellen void-installer nutzt.

Ablauf

  1. Sanity Checks (Root, UEFI, Zielplatte)
  2. Partitionierung (GPT, ESP + Root)
  3. LUKS-Verschluesselung und Mapping
  4. Dateisysteme (btrfs oder ext4)
  5. Mounts fuer den Installer
  6. Installer-Handoff (manuelle Mountpoints, kein Reformat)
  7. Post-Install (crypttab, dracut, GRUB, optional Swapfile)

Usage

sudo ./src/main.sh [--dry-run] [--skip-installer]

Flags

  • --dry-run: Zeigt die Konfiguration und bricht ohne Aenderungen ab.
  • --skip-installer: Laesst den Start von void-installer aus (manuell starten).

Installer Bedienung nach dem Script

Im void-installer musst du die vorbereiteten Mounts uebernehmen und darfst nichts formatieren.

  1. Waehle die manuelle Partitionierung.
  2. Setze nur die Mountpoints, ohne Formatierung.
  3. Root:
    • Device: /dev/mapper/cryptroot
    • Label: void-root (btrfs und ext4)
    • Mountpoint: /
    • Format: aus
  4. ESP:
    • Device: erste Partition der Disk (meist ...1)
    • Label: EFI
    • Mountpoint: /boot/efi
    • Format: aus

Wenn Labels nicht angezeigt werden, pruefe mit lsblk -f, welches Device void-root bzw. EFI traegt. Bei btrfs sind Subvolumes bereits angelegt und gemountet: @, @home, @var, @log, @snapshots, @swap. Der Installer soll keine neuen Subvolumes anlegen oder formatieren, sondern die vorhandenen Mounts unveraendert lassen. Es reicht, im Installer nur / und /boot/efi zu setzen; die Subvolumes werden im Post-Install in /etc/fstab eingetragen. Mapping der Subvolumes (gesetzt durch den Wrapper/Post-Install):

  • @ -> /
  • @home -> /home
  • @var -> /var
  • @log -> /var/log
  • @snapshots -> /.snapshots
  • @swap -> /swap

Hinweise

  • Der Wrapper ist destruktiv und loescht die Zielplatte nach expliziter Bestaetigung.
  • UEFI ist Pflicht; BIOS-Installationen sind nicht unterstuetzt.
  • Logs landen unter /tmp/void-wrapper-YYYY-MM-DD-HHMMSS.log.
Description
No description provided
Readme 141 KiB
Languages
Shell 100%