DistroClone – Crea la tua Live ISO da un sistema Debian in esecuzione
DistroClone Live ISO Builder e’ uno strumento open source che consente di creare un’immagine ISO avviabile a partire da qualsiasi sistema Debian-based in esecuzione, preservando la configurazione attuale, i pacchetti installati, il tema del desktop e le impostazioni utente. L’ISO generata include il programma di installazione Calamares, che permette di installare il sistema su altre macchine in modo permanente.
Il progetto nasce dall’esigenza di replicare rapidamente un ambiente di lavoro gia’ configurato e testato, eliminando il tempo necessario per riconfigurare da zero una nuova installazione.
Distribuzioni supportate
DistroClone e’ stato progettato principalmente per SysLinuxOS e quindi può anche funzionare con le principali distribuzioni basate su Debian:
– SysLinuxOS
– Ubuntu (22.04 e versioni successive
– Linux Mint
– LMDE (Linux Mint Debian Edition)
– Elementary OS
– Debian (Bookworm e versioni successive)
– Altre distribuzioni derivate da Debian
Caratteristiche principali
Lo strumento include un set completo di funzionalita’ per coprire i casi d’uso piu’ comuni:
Rilevamento automatico del sistema: DistroClone identifica la distribuzione, la versione e l’ambiente desktop in uso, adattando di conseguenza la configurazione dell’ISO e il branding di Calamares.
Interfaccia multilingue: L’interfaccia grafica e’ disponibile in italiano, inglese, francese, spagnolo, tedesco e portoghese, con rilevamento automatico dal locale di sistema. E’ possibile forzare una lingua specifica tramite parametro da riga di comando o variabile d’ambiente.
Interfaccia grafica avanzata: Il frontend principale utilizza YAD, con fallback su Zenity o terminale. Una finestra di log in tempo reale mostra l’avanzamento di tutti i 30 passaggi del processo di build.
Supporto dual boot UEFI e Legacy BIOS: L’ISO generata e’ avviabile sia su sistemi UEFI moderni che su hardware piu’ datato con BIOS tradizionale, grazie alla combinazione di GRUB e isolinux.
Metodi di compressione squashfs: E’ possibile scegliere tra compressione standard (xz), rapida (lz4) o massima (xz+bcj), in base alle proprie esigenze di bilanciamento tra dimensione dell’ISO e tempo di build.
Clonazione della configurazione utente: Le impostazioni desktop dell’utente corrente possono essere copiate in `/etc/skel`, in modo che il sistema live e l’installazione finale partano gia’ con il profilo configurato.
Pausa manuale per modifiche al chroot: Prima della creazione dello squashfs e’ possibile sospendere il processo e accedere manualmente al chroot per applicare personalizzazioni aggiuntive.
Pulizia automatica post-installazione: Un servizio systemd dedicato rimuove Calamares, live-boot e le dipendenze di build dal sistema installato al primo avvio, mantenendo l’installazione finale pulita.
Requisiti
Per eseguire DistroClone e’ necessario:
– Un sistema Debian-based in esecuzione
– Privilegi di root
– Almeno 4-6 GB di spazio libero in `/mnt`
– Almeno 2 GB di RAM
– Tempo stimato di build: da 10 a 30 minuti, a seconda della dimensione del sistema e del metodo di compressione scelto
Installazione
Tramite pacchetto .deb (consigliato)
Il metodo piu’ semplice e’ installare il pacchetto `.deb` disponibile nella pagina delle release:
sudo apt install -y yad sudo dpkg -i distroClone_1.3_all.deb sudo apt install -f
oppure:
wget https://github.com/fconidi/distroClone/releases/latest/download/distroClone_1.3.3_all.deb sudo dpkg -i distroClone_1.3.3_all.deb sudo apt install -f
Tramite script (standalone)
In alternativa, e’ possibile eseguire lo script direttamente senza installazione:
chmod +x DistroClone.sh sudo ./DistroClone.sh
Le dipendenze necessarie vengono installate automaticamente al primo avvio.
Utilizzo
Dal menu delle applicazioni
Avviare DistroClone dalla categoria Sistema. Verra’ richiesta l’autenticazione tramite PolicyKit. Installare prima yad per vedere subito lo splash che indica l’installazione delle dipendenze, altrimenti lavorerà in background fino all’installazione automatica di yad.
Da terminale
sudo distroClone
Selezione della lingua
La lingua viene rilevata automaticamente dal locale di sistema. Per forzare una lingua specifica:
sudo distroClone --lang=en
Oppure tramite variabile d’ambiente:
DISTROCLONE_LANG=it sudo distroClone
Codici lingua supportati: `en`, `it`, `fr`, `es`, `de`, `pt`.
Il processo di build
Il processo si articola in sei fasi principali, con un totale di 30 passaggi monitorabili in tempo reale dalla finestra di log:
1. Schermata iniziale — Il sistema si inizializza e rileva le informazioni sulla distribuzione in uso.
2. Dialogo di benvenuto — Vengono mostrate le informazioni rilevate e le opzioni di build: tipo di compressione, password root, hostname.
3. Configurazione utente — Si sceglie se clonare le impostazioni desktop correnti nel sistema live.
4. Build in 30 passaggi — Clonazione del sistema, configurazione del chroot, installazione pacchetti, setup Calamares, compressione squashfs, configurazione GRUB/isolinux, creazione ISO.
5. Pausa opzionale — Prima dello squashfs e’ possibile accedere al chroot per modifiche manuali.
6. Dialogo finale — Viene riportato il percorso e la dimensione dell’ISO generata, oppure i dettagli dell’eventuale errore.
Output generato
L’ISO viene creata in `/mnt/<distro>_live/` con la seguente convenzione di nomenclatura:
<Distro>-<Versione>-<Desktop>.iso
Esempi: `SysLinuxOS-13-Mate.iso`, `Ubuntu-24.04-Gnome.iso`
Insieme all’ISO vengono generati automaticamente i checksum MD5 e SHA256.
Verifica e test dell’ISO
Con VirtualBox: creare una nuova VM e montare il file ISO come disco ottico.
Con una chiavetta USB:
sudo dd if=/mnt/<distro>_live/<nome>.iso of=/dev/sdX bs=4M status=progress
Supporto ambienti desktop
DistroClone gestisce in modo specifico alcuni ambienti desktop per garantire la compatibilita’ con Calamares:
Gnome, Cinnamon, MATE, KDE, XFCE Pantheon (Elementary OS)
Dipendenze
Richieste (installate dal .deb o dallo script)
`bash`, `rsync`, `xorriso`, `mtools`, `syslinux-utils`, `syslinux-common`, `isolinux`, `imagemagick`, `grub-pc-bin`
Consigliate (installate automaticamente durante la build)
`yad`, `zenity`, `calamares`, `calamares-settings-debian`, `live-boot`, `live-config`, `live-config-systemd`, `grub-efi-amd64`, `efibootmgr`, `os-prober`, `fdisk`
Come funziona internamente
1. Il sistema in esecuzione viene clonato tramite `rsync`, escludendo filesystem virtuali, file temporanei, cache, directory snap e dati specifici dell’utente.
2. Viene allestito un ambiente chroot in cui vengono installati `live-boot`, Calamares e i componenti di avvio.
3. Calamares viene configurato con il branding della distribuzione rilevata, il layout delle partizioni (ext4 con partizione EFI), il display manager corretto e un servizio systemd che al primo avvio rimuove dall’installazione finale i pacchetti di build e live.
4. Lo squashfs viene creato con il metodo di compressione selezionato.
5. Le configurazioni di avvio GRUB (EFI) e isolinux (BIOS) vengono generate con le voci di menu tradotte nella lingua selezionata.
6. L’ISO finale viene assemblata con `xorriso`, avviabile sia in modalita’ UEFI che Legacy BIOS.
7. Pulizia finale: Calamares, live-boot e le dipendenze di build vengono rimossi dal sistema host.
Struttura dei file
DistroClone.sh Script principale di build (multilingue)
distroClone Script launcher (splash multilingue)
distroClone-logo.png Logo branding Calamares (opzionale, autogenerato)
distroClone-welcome.png Immagine di benvenuto Calamares (opzionale)
distroClone-grub.png Immagine di sfondo GRUB (opzionale)
slide*.png Immagini slideshow Calamares (opzionali)
Se i file immagine opzionali non sono presenti, lo script li genera automaticamente tramite ImageMagick.
Licenza
Il progetto e’ distribuito sotto licenza GPL-3.0-or-later
Ulteriori info e Download:
– Repository su GitHub
– Pagina Ufficiale DistroClone su GitHub






