Implement runit service activation for essential services: - dhcpcd enabled by default for network connectivity - Helper function enable_service() for extensibility - Service validation before symlink creation Decision: Enable only dhcpcd by default. Minimal service activation reduces attack surface and resource usage. Additional services (sshd, chronyd) can be added via future config file support. Alternative considered: NetworkManager rejected as default. dhcpcd is lighter and sufficient for server/minimal systems. Desktop users can switch to NetworkManager post-install. Trade-off: Automatic dhcpcd activation means network works immediately after boot but may conflict with users who prefer NetworkManager. Future config will allow service selection. Service definition validation: Check if /etc/sv/<service> exists before creating symlink. Prevents broken links if package not installed. Returns error code but continues installation to avoid cascading failures from optional services.
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.