Version 1.3.3 - Debian-based systems

distroClone

Create a bootable live ISO from any running Debian-based system. Clone your environment, preserve your configuration, distribute it anywhere.

Debian Ubuntu Linux Mint LMDE Elementary OS SysLinuxOS

Overview

Version
1.3.3
Architecture
all (architecture-independent)
License
GPL-3.0-or-later
Maintainer
Franco Conidi (edmond)
Section
admin
Build time
10 to 30 minutes

distroClone is a shell-based tool that generates a complete, bootable live ISO image directly from the running system. Unlike snapshot utilities that require a separate live environment, distroClone operates from within the installed system and produces an ISO ready for distribution, testing, or archival.

The resulting ISO includes the Calamares graphical installer, allowing the cloned system to be permanently installed on other machines with UEFI or Legacy BIOS firmware.

Supported distributions

Debian (Bookworm and later) Ubuntu 22.04+ Linux Mint LMDE Elementary OS SysLinuxOS Other Debian derivatives

Features

Automatic detection

Detects distribution, version, and desktop environment at runtime. No manual configuration required.

Multilanguage interface

Auto-detected from the system locale. Supports English, Italian, French, Spanish, German, and Portuguese. Override with --lang=.

Graphical interface

Uses YAD for an advanced graphical experience, with Zenity and terminal fallback for compatibility across environments.

Real-time build log

A dedicated window shows all 30 build steps in real time, providing full visibility into the ISO creation process.

Calamares installer

Integrates Calamares with dynamic branding per distribution. Detects the display manager and configures post-install cleanup automatically.

Dual boot support

Generates both GRUB (UEFI) and isolinux (Legacy BIOS) configurations. The ISO boots on any modern or older system.

Compression options

Choose between standard xz, fast lz4, or maximum xz+bcj squashfs compression depending on build time and size requirements.

Desktop cloning

Optionally copies current user configuration to /etc/skel, so the live system and installed system reflect your desktop setup.

Manual chroot pause

Optional pause before squashfs creation allows direct chroot modifications for advanced customization before the final image is built.

Desktop environment support

Handles GNOME, Pantheon, Cinnamon, MATE, KDE, XFCE. Applies specific workarounds per environment where needed.

Checksums

MD5 and SHA256 checksums are generated alongside the ISO automatically at the end of every successful build.

Automatic cleanup

Live packages and build tools are removed from the host system after the ISO is built. The host is left in its original state.

Requirements

Note: distroClone must be run on a Debian-based system. Root privileges are required. The /mnt partition must have sufficient free space to hold a full system clone.
System
Debian-based Linux distribution
Privileges
Root (sudo or direct)
Free disk space
Minimum 4 to 6 GB in /mnt
RAM
Minimum 2 GB

Installation

Recommended method - from the .deb package

  1. Download the package from the releases page on GitHub.
    wget https://github.com/fconidi/distroClone/releases/latest/download/distroClone_1.3.3_all.deb
  2. Install the package with dpkg.
    sudo dpkg -i distroClone_1.3.3_all.deb
  3. Resolve any missing dependencies automatically.
    sudo apt install -f

Alternative method - standalone script

  1. Make the script executable.
    chmod +x DistroClone.sh
  2. Run it as root. Required packages are installed automatically on first run.
    sudo ./DistroClone.sh

What the package installs

Path Description
/usr/bin/distroClone Launcher script with multilanguage splash screen
/usr/share/distroClone/ Main build script and branding resources
/usr/share/applications/distroClone.desktop Desktop menu entry (System category)
/usr/share/polkit-1/actions/ PolicyKit policy for graphical authentication
/usr/share/icons/hicolor/ Application icon at 48x48, 128x128, and 256x256 px

Usage

From the desktop menu

Launch distroClone from the System category in your application menu. Authentication is requested via PolicyKit - no terminal needed.

From the terminal

sudo distroClone

Or run the main script directly:

sudo ./DistroClone.sh

Language selection

The interface language is detected from the system locale automatically. To override, pass the language code as a flag:

sudo distroClone --lang=fr

Or via environment variable:

DISTROCLONE_LANG=de sudo distroClone

Supported codes: en, it, fr, es, de, pt.

Build process

  1. Splash screen appears while the system initializes.
  2. Welcome dialog shows the detected distribution, version, desktop environment, and build options: compression type, root password, hostname.
  3. Optional dialog asks whether to clone the current desktop configuration to the live system.
  4. Build proceeds through 30 steps visible in the real-time log window: cloning via rsync, chroot configuration, package installation, Calamares setup, squashfs compression, GRUB and isolinux configuration, ISO creation with xorriso.
  5. Optional pause before squashfs allows manual chroot modifications.
  6. Final dialog reports success with the ISO path and size, or error details if the build failed.

Output

The ISO is created in /mnt/<distro>_live/ following this naming convention:

<Distro>-<Version>-<Desktop>.iso

Examples:

Ubuntu-24.04-Gnome.iso
SysLinuxOS-12-Mate.iso
Debian-12-XFCE.iso

MD5 and SHA256 checksum files are generated in the same directory.

Testing the ISO

Write to a USB drive:

sudo dd if=/mnt/<distro>_live/<name>.iso of=/dev/sdX bs=4M status=progress

Or mount in a virtual machine such as VirtualBox or QEMU:

qemu-system-x86_64 -m 2G -cdrom /mnt/<distro>_live/<name>.iso -boot d

Dependencies

Required

Installed automatically when using sudo apt install -f after dpkg.

Package Purpose
bash Shell interpreter for the main script
rsync System cloning with exclusion rules
xorriso ISO image creation
mtools FAT filesystem tools for EFI partition handling
syslinux-utils Syslinux utilities for BIOS boot
syslinux-common Common Syslinux files
isolinux Legacy BIOS bootloader
imagemagick Generation of placeholder branding graphics
grub-pc-bin GRUB binaries for i386-pc target

Recommended

Installed automatically during the build process if not already present.

Package Purpose
yad Advanced graphical dialog interface
zenity Fallback graphical dialog interface
calamares Graphical system installer included in the ISO
calamares-settings-debian Default Calamares configuration for Debian-based systems
live-boot Scripts for booting a live system from the ISO
live-config Live system configuration scripts
live-config-systemd Systemd integration for live-config
grub-efi-amd64 GRUB for UEFI systems
efibootmgr EFI boot entry management
os-prober Detection of other operating systems for GRUB
fdisk Partition table manipulation during install

How it works

  1. System clone via rsync
    The running system is copied to a staging directory, excluding virtual filesystems, temporary files, caches, snap directories, and user-specific data.
  2. Chroot environment setup
    A chroot is configured inside the staging directory. live-boot, Calamares, and boot components are installed within the chroot.
  3. Calamares configuration
    Branding, partition layout (ext4 with EFI), display manager detection, and a post-install systemd service are configured. The service removes live packages from the installed system after first boot.
  4. Squashfs creation
    The chroot is compressed into a squashfs filesystem using the selected compression algorithm (xz, lz4, or xz+bcj).
  5. Boot configuration
    GRUB (EFI) and isolinux (BIOS) configurations are written with translated menu entries matching the selected language.
  6. ISO assembly
    xorriso builds the final ISO with dual boot support. MD5 and SHA256 checksums are generated.
  7. Host cleanup
    Calamares, live-boot, and build dependencies are removed from the host system. The staging directory is deleted.

License

distroClone is distributed under the GNU General Public License version 3 or later (GPL-3.0-or-later).

You are free to use, study, modify, and distribute this software under the terms of the GPL-3.0. See the copyright file included in the package for the full license text, or refer to gnu.org/licenses/gpl-3.0.