DistroClone Live ISO Builder
DistroClone Live ISO Builder — Create your own Live ISO from a running Debian-based system
DistroClone is an open source tool that creates a bootable ISO image from any running Debian-based system, preserving the current configuration, installed packages, desktop theme, and user settings. The generated ISO includes the Calamares installer, allowing permanent installation on other machines.
The project was born out of the need to quickly replicate an already configured and tested work environment, eliminating the time required to reconfigure a new installation from scratch.
Supported Distributions
DistroClone was designed primarily for SysLinuxOS and can also work with the main Debian-based distributions:
– SysLinuxOS
– Ubuntu (22.04 and later)
– Linux Mint
– LMDE (Linux Mint Debian Edition)
– Elementary OS
– Debian (Bookworm and later)
– Other Debian-based derivatives
Main Features
The tool includes a complete set of features to cover the most common use cases:
Automatic system detection: DistroClone identifies the distribution, version, and desktop environment in use, adapting the ISO configuration and Calamares branding accordingly.
Multilanguage interface: The graphical interface is available in Italian, English, French, Spanish, German, and Portuguese, with automatic detection from the system locale. A specific language can be forced via a command-line parameter or environment variable.
Advanced graphical interface: The main frontend uses YAD, with fallback to Zenity or terminal. A real-time log window shows the progress of all 30 build steps.
UEFI and Legacy BIOS dual boot support: The generated ISO is bootable on both modern UEFI systems and older hardware with a traditional BIOS, thanks to the combination of GRUB and isolinux.
Squashfs compression methods: Choose between standard (xz), fast (lz4), or maximum (xz+bcj) compression, depending on your needs for balancing ISO size and build time.
User configuration cloning: The current user’s desktop settings can be copied to `/etc/skel`, so that the live system and the final installation start with the pre-configured profile.
Manual chroot pause for modifications: Before the squashfs is created, it is possible to pause the process and manually access the chroot to apply additional customizations.
Automatic post-installation cleanup: A dedicated systemd service removes Calamares, live-boot, and build dependencies from the installed system at first boot, keeping the final installation clean.
Requirements
To run DistroClone you need:
– A running Debian-based system
– Root privileges
– At least 4-6 GB of free disk space in `/mnt`
– At least 2 GB of RAM
– Estimated build time: 10 to 30 minutes, depending on system size and the chosen compression method
Installation
Via .deb package (recommended)**
The simplest method is to install the `.deb` package available on the releases page:
sudo apt install -y yadsudo dpkg -i distroClone_1.3_all.debsudo apt install -f
Or alternatively:
wget https://github.com/fconidi/distroClone/releases/latest/download/distroClone_1.3.3_all.debsudo dpkg -i distroClone_1.3.3_all.debsudo apt install -f
Via script (standalone)
Alternatively, you can run the script directly without installation:
chmod +x DistroClone.shsudo ./DistroClone.sh
Required dependencies are installed automatically on first run.
Usage
From the applications menu
Launch DistroClone from the System category. Authentication will be requested via PolicyKit. Install `yad` first to immediately see the splash screen indicating the dependency installation; otherwise it will work in the background until `yad` is automatically installed.
From terminal:
sudo distroClone
Language Selection
The language is detected automatically from the system locale. To force a specific language:
sudo distroClone –lang=en
Or via environment variable:
DISTROCLONE_LANG=en sudo distroClone
Supported language codes: `en`, `it`, `fr`, `es`, `de`, `pt`.
The Build Process
The process consists of six main phases, with a total of 30 steps that can be monitored in real time from the log window:
1. Splash screen — The system initializes and detects information about the distribution in use.
2. Welcome dialog — Detected system information and build options are shown: compression type, root password, hostname.
3. User configuration — Choose whether to clone the current desktop settings to the live system.
4. 30-step build — System cloning, chroot configuration, package installation, Calamares setup, squashfs compression, GRUB/isolinux configuration, ISO creation.
5. Optional pause — Before the squashfs step, it is possible to access the chroot for manual modifications.
6. Final dialog — Reports the path and size of the generated ISO, or details of any errors.
Generated Output
The ISO is created in `/mnt/<distro>_live/` with the following naming convention:
<Distro>-<Version>-<Desktop>.iso
Examples: `SysLinuxOS-13-Mate.iso`, `Ubuntu-24.04-Gnome.iso`
MD5 and SHA256 checksums are generated automatically alongside the ISO.
Testing the ISO
With VirtualBox: create a new VM and mount the ISO file as an optical disc.
With a USB drive:
sudo dd if=/mnt/<distro>_live/<name>.iso of=/dev/sdX bs=4M status=progress
Desktop Environment Support
DistroClone handles certain desktop environments in a specific way to ensure compatibility with Calamares:
GNOME, Cinnamon, MATE, KDE, XFCE, Pantheon (Elementary OS)
Dependencies
Required (installed by .deb or script)
`bash`, `rsync`, `xorriso`, `mtools`, `syslinux-utils`, `syslinux-common`, `isolinux`, `imagemagick`, `grub-pc-bin`
Recommended (installed automatically during build)
`yad`, `zenity`, `calamares`, `calamares-settings-debian`, `live-boot`, `live-config`, `live-config-systemd`, `grub-efi-amd64`, `efibootmgr`, `os-prober`, `fdisk`
How It Works Internally
1. The running system is cloned via `rsync`, excluding virtual filesystems, temporary files, caches, snap directories, and user-specific data.
2. A chroot environment is set up in which `live-boot`, Calamares, and boot components are installed.
3. Calamares is configured with the branding of the detected distribution, the partition layout (ext4 with EFI partition), the correct display manager, and a systemd service that at first boot removes the build and live packages from the final installation.
4. The squashfs is created with the selected compression method.
5. The GRUB (EFI) and isolinux (BIOS) boot configurations are generated with menu entries translated into the selected language.
6. The final ISO is assembled with `xorriso`, bootable on both UEFI and Legacy BIOS systems.
7. Final cleanup: Calamares, live-boot, and build dependencies are removed from the host system.
File Structure
DistroClone.sh Main build script (multilanguage)
distroClone Launcher script (multilanguage splash)
distroClone-logo.png Calamares branding logo (optional, auto-generated)
distroClone-welcome.png Calamares welcome image (optional)
distroClone-grub.png GRUB background image (optional)
slide*.png Calamares slideshow images (optional)
If the optional image files are not present, the script generates them automatically via ImageMagick.
License
This project is distributed under the **GPL-3.0-or-later** license.
Further Info and Download
– Repository on GitHub
– Official DistroClone page on GitHub
– Edmond’s Weblog
DistroClone Live ISO Builder
enjoy 😉
