Stefan Strobl 98aebc5f09 fix(postinstall): improve error handling and user feedback
Add three critical improvements to post-install phase:

1. Cleanup trap for bind mounts: Ensure /dev, /proc, /sys, /run
   are unmounted even if chroot script fails. Prevents orphaned
   mounts blocking cleanup.

2. Fallocate fallback: Use dd as fallback if fallocate fails
   (can happen on some filesystems or with insufficient space).
   Includes intelligent size conversion and progress display.

3. Progress messages: Add informative echo statements before
   long-running operations (xbps-reconfigure, grub-install,
   grub-mkconfig) so users know the system is working.

Decision: Use trap EXIT instead of manual cleanup to guarantee
execution on both success and error paths. Remove redundant
explicit cleanup call.

Trade-offs: dd fallback is slower but ensures swap file creation
succeeds. Progress messages add noise but significantly improve
UX during multi-minute operations.
2025-12-24 15:27:14 +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%