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.
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
- Sanity Checks (Root, UEFI, Zielplatte)
- Partitionierung (GPT, ESP + Root)
- LUKS-Verschluesselung und Mapping
- Dateisysteme (btrfs oder ext4)
- Mounts fuer den Installer
- Installer-Handoff (manuelle Mountpoints, kein Reformat)
- 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 vonvoid-installeraus (manuell starten).
Installer Bedienung nach dem Script
Im void-installer musst du die vorbereiteten Mounts uebernehmen und darfst nichts formatieren.
- Waehle die manuelle Partitionierung.
- Setze nur die Mountpoints, ohne Formatierung.
- Root:
- Device:
/dev/mapper/cryptroot - Label:
void-root(btrfs und ext4) - Mountpoint:
/ - Format: aus
- Device:
- ESP:
- Device: erste Partition der Disk (meist
...1) - Label:
EFI - Mountpoint:
/boot/efi - Format: aus
- Device: erste Partition der Disk (meist
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.