1
0
Fork
You've already forked void-live-creator
0
Create a live ISO from a running system
  • Python 97.9%
  • Shell 2.1%
2026年06月13日 08:43:28 +02:00
i18n.py Dateien nach „/" hochladen 2026年06月13日 08:25:42 +02:00
install.sh Dateien nach „/" hochladen 2026年06月13日 08:43:28 +02:00
iso_builder.py Dateien nach „/" hochladen 2026年06月13日 08:25:42 +02:00
main.py Dateien nach „/" hochladen 2026年06月13日 08:25:42 +02:00
README.md README.md aktualisiert 2026年06月13日 08:29:29 +02:00

Void Linux Live ISO Creator

A modern GTK4 application for building custom Void Linux Live ISO images with full internationalization support, dependency checking, and real-time build monitoring.

License Platform Python

Features

  • User Configuration — Create custom live users or use the default anon account
  • Selective Data Copy — Choose specific folders (Documents, Pictures, Downloads, .config, .local) or copy the entire /home directory
  • Custom Paths — Include additional host directories in the ISO
  • System Overlay — Apply custom file overlays to the live system
  • Service Configuration — Auto-detect or manually select the Display Manager (LightDM, GDM, SDDM, LXDM)
  • System Cleanup — Remove logs, cache, SSH keys, and NetworkManager connections before packaging
  • Real-time Progress — Live build status with progress bar and cancel support
  • Full i18n — Interface and build messages available in German, English, Spanish, French
  • Dependency Check — Validates required tools at startup
  • Configuration Save/Load — Persist settings between sessions
  • Build Logging — Complete log written to /var/tmp/void-live-build/build.log
  • Error Handling — Detailed error dialogs with expandable tracebacks

Requirements

System

  • Void Linux (x86_64 or i686)
  • Root privileges required (uses pkexec for elevation)
  • GTK 4.0 runtime

Python Dependencies

xbps-install -S python3-gobject python3-cairo

Build Dependencies

The app checks for these at startup and warns if any are missing:

Tool Void Package Purpose
rsync rsync File synchronization
mksquashfs squashfs-tools Filesystem compression
dracut dracut Initramfs generation
grub-mkrescue grub ISO creation
uuidgen util-linux Machine ID generation

Install all at once:

xbps-install -S rsync squashfs-tools dracut grub util-linux

Installation

From Source

git clone https://codeberg.org/pinguin-void/void-live-creator.git
cd void-live-creator
chmod +x install.sh
sudo ./install.sh

Run Directly

sudo python3 main.py

The app will automatically request root privileges via pkexec if not already running as root.

Usage

1. User Setup

  • Default anon user — Quick setup with standard credentials (anon:voidlinux)
  • Custom user — Specify username and password (empty password falls back to voidlinux)
  • Toggle password visibility with the eye checkbox

2. Data Selection

  • Full /home copy — Includes all user data (excluding .cache)
  • Granular selection — Pick individual folders:
    • Documents, Pictures, Downloads
    • .config (application settings)
    • .local (data and binaries)
  • Additional paths — Add any host directory (e.g., /opt/my-app)

3. Services & Cleanup

  • Display Manager — Auto-detect from host, or select manually
  • System cleanup — Remove logs, caches, SSH host keys, and connection profiles
  • NetworkManager and D-Bus are always enabled automatically

4. System Overlay

Apply a custom directory structure that gets merged into the live system root — useful for pre-installing configs, themes, or custom scripts.

5. ISO Configuration

  • Boot menu name — Custom label shown in GRUB (e.g., "My Gaming System")
  • Output path — Defaults to /var/tmp/void-custom.iso

6. Build & Monitor

  • Click "Create ISO" to start
  • Monitor progress in real-time
  • Click "Cancel" at any time to abort and clean up
  • Build logs are saved to /var/tmp/void-live-build/build.log

Configuration Persistence

Settings are automatically saved to ~/.config/void-iso-creator/config.json and restored on next launch:

{
 "language": "de",
 "iso_config": {
 "user_mode": "new",
 "new_user": "armin",
 "full_home": false,
 "home_parts": {
 "Documents": true,
 "Pictures": true,
 "Downloads": false,
 ".config": true,
 ".local": true
 },
 "custom_paths": ["/opt/my-app"],
 "overlay_path": "/home/armin/overlay",
 "cleanup": true,
 "display_manager": "auto",
 "iso_name": "Void Custom Live",
 "output": "/var/tmp/void-custom.iso"
 }
}

File Structure

void-live-creator/
├── main.py # GTK4 application window & UI logic
├── iso_builder.py # ISO build engine with subprocess management
├── i18n.py # Translation system & configuration persistence
└── README.md # This file

Architecture

Build Process

  1. Prepare workspace — Create /var/tmp/void-live-build structure
  2. Copy base systemrsync root filesystem (excluding /home, /proc, /sys, etc.)
  3. Copy user data — Selected home directories or full /home
  4. Apply overlays — Custom paths and overlay directory
  5. Configure services — Enable runit services (NetworkManager, D-Bus, Display Manager)
  6. System cleanup — Remove sensitive/temporary data
  7. Configure users — Create accounts and set passwords via chroot
  8. Build initramfs — Generate Dracut image with dmsquash-live module
  9. Configure bootloader — Write GRUB config with ISO label
  10. Create SquashFS — Compress root filesystem with XZ
  11. Build ISO — Generate bootable image with grub-mkrescue

Cancel Safety

All subprocesses are tracked in a list. On cancel:

  1. SIGTERM sent to all running processes
  2. Wait 5 seconds, then SIGKILL if still running
  3. Working directory removed via shutil.rmtree()
  4. "Build cancelled" written to log

Troubleshooting

"Missing Dependencies" Dialog

Install the listed packages:

xbps-install -S <package-names>

"Not enough free disk space"

Ensure at least 15 GB free space on the target partition. The build requires space for:

  • Base system copy (~4-8 GB)
  • User data
  • Initramfs and kernel
  • SquashFS image (compressed)
  • Final ISO file

Build fails with GRUB error

Ensure grub-i386-efi and grub-x86_64-efi are installed alongside grub:

xbps-install -S grub-i386-efi grub-x86_64-efi xorriso

Check build logs

cat /var/tmp/void-live-build/build.log

Localization

The app automatically detects the system language from LC_ALL, LC_MESSAGES, LANG, or LANGUAGE environment variables. Supported languages:

Language Code Status
German de Complete
English en Complete
Spanish es Complete
French fr Complete

Language preference is saved to ~/.config/void-iso-creator/config.json.

Contributing

Contributions welcome! Priority areas:

  • Additional language translations
  • Void Linux musl support
  • ARM architecture support
  • Custom kernel selection
  • Package list customization

License

MIT License — See LICENSE for details.


Built for Void Linux, by Void Linux enthusiasts.