Universal Live ISO Builder for Debian-based distributions
DistroClone creates a bootable live ISO image from any running Debian-based system, preserving the current configuration, installed packages, desktop theme, and user settings. The resulting ISO includes the Calamares installer for permanent installation on other machines.
DEFAULT PASSWORD LIVE = root
| Distribution | Versions |
|---|---|
| Debian | Bookworm and later |
| Ubuntu | 22.04 and later |
| Linux Mint | All current releases |
| LMDE | Linux Mint Debian Edition |
| Elementary OS | All current releases |
| SysLinuxOS | All releases |
| Other Debian-based derivatives | ZorinOS 18 |
- Auto-detection of distribution, version, and desktop environment
- Multilanguage interface: English, Italian, French, Spanish, German, Portuguese -- auto-detected from system locale
- Graphical interface via YAD (advanced) with Zenity and terminal fallback
- Real-time build log window showing all 30 build steps
- Calamares installer with dynamic branding per distribution
- UEFI and Legacy BIOS dual boot (GRUB + isolinux)
- Squashfs compression: standard xz, fast lz4, maximum xz+bcj
- User configuration cloning to
/etc/skel - Optional manual chroot pause for custom modifications before squashfs
- Automatic cleanup of live packages after installation
- Splash screen and completion/error dialogs
- Snap directory exclusion for Ubuntu-based systems
- A running Debian-based system
- Root privileges
- Minimum 4-6 GB free disk space in
/mnt - Minimum 2 GB RAM
- Estimated build time: 10-30 minutes depending on system size and compression method
sudo apt install -y yad
sudo apt install -y ./distroClone_1.3.6_all.deb # recommended
sudo dpkg -i distroClone_1.3.6_all.deb
sudo apt install -fThe package installs:
| Path | Description |
|---|---|
/usr/bin/distroClone |
Launcher script with multilanguage splash |
/usr/share/distroClone/ |
Main script and branding resources |
/usr/share/applications/distroClone.desktop |
Desktop menu entry |
/usr/share/polkit-1/actions/ |
PolicyKit policy for graphical auth |
/usr/share/icons/hicolor/ |
DC icon at 48, 128, 256 px |
chmod +x DistroClone.sh
sudo ./DistroClone.shThe script will install required packages automatically on first run.
Launch DistroClone from the System category. Authentication will be requested via PolicyKit.
sudo apt install -y yad
sudo distroCloneOr directly:
sudo ./DistroClone.shThe interface language is detected automatically from the system locale. To override:
sudo distroClone --lang=frOr via environment variable:
DISTROCLONE_LANG=de sudo distroCloneSupported language codes: en, it, fr, es, de, pt.
- Splash screen appears while the system initializes.
- Welcome dialog shows detected system info and build options: compression type, root password, hostname.
- User configuration dialog asks whether to clone current desktop settings to the live system.
- The build proceeds through 30 steps visible in the Build Log window: system cloning, chroot configuration, package installation, Calamares setup, squashfs compression, GRUB/isolinux configuration, ISO creation.
- Optional pause before squashfs for manual chroot modifications.
- Final dialog reports success with ISO path and size, or error details.
The ISO is created in /mnt/<distro>_live/ with the naming convention:
<Distro>-<Version>-<Desktop>.iso
Examples: Ubuntu-24.04-Gnome.iso, SysLinuxOS-12-Mate.iso
MD5 and SHA256 checksums are generated alongside the ISO.
With VirtualBox:
Create a new VM and mount the ISO file.
With a USB drive:
sudo dd if=/mnt/<distro>_live/<n>.iso of=/dev/sdX bs=4M status=progressbashrsyncxorrisomtoolssyslinux-utils,syslinux-commonisolinuximagemagickgrub-pc-bin
yadzenitycalamares,calamares-settings-debianlive-boot,live-config,live-config-systemdgrub-efi-amd64,efibootmgros-proberfdisk
DistroClone detects the running desktop environment and applies specific handling where needed:
| Desktop | Notes |
|---|---|
| GNOME | Desktop icon trust mechanism for Calamares launcher, Wayland/X11 wrapper for slideshow compatibility |
| Pantheon (Elementary OS) | pkexec DISPLAY passthrough, Calamares wrapper exclusion |
| Cinnamon, MATE, KDE, XFCE | Standard handling, no special workarounds required |
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)
Optional image files are placed alongside the script. If absent, the script generates placeholder graphics via ImageMagick.
- Clones the running system via
rsyncwith exclusion of virtual filesystems, temporary files, caches, snap directories, and user-specific data. - Sets up a chroot environment and installs
live-boot, Calamares, and boot components. - Configures Calamares branding, partition layout (ext4 default with EFI), display manager detection, and a post-install systemd service that removes live packages and build tools from the installed system.
- Creates the squashfs filesystem with the selected compression.
- Builds GRUB (EFI) and isolinux (BIOS) boot configurations with translated menu entries.
- Generates the final ISO with
xorriso, bootable on both UEFI and Legacy BIOS systems. - Cleans up: removes Calamares, live-boot, and build dependencies from the host system.
This project is licensed under the GPL-3.0-or-later license.
See the LICENSE file for details.
Franco Conidi (aka edmond)
fconidi@gmail.com