A local build system for creating a customized Clonezilla Live ISO with additional packages and custom applications.
This project automates downloading, extracting, customizing, and repacking Clonezilla Live ISO images. It is intended for local builds on a Linux host using sudo and chroot.
- Linux host (Debian/Ubuntu/other)
sudoprivileges- Required tools:
bash,7z,unsquashfs,mksquashfsxorrisochroot,mount,umountapt-getinside the rootfs
live-local-clonezilla/
├─ build-scripts/ # Scripts for building and customizing ISO
├─ config/ # Configuration files (packages.txt)
├─ boot-files/ # Custom bootloader files (EFI, isolinux)
├─ artifacts/ # Downloaded ISO and extracted rootfs
├─ custom-apps/ # Custom apps to include in rootfs
├─ scripts/ # Helper scripts for development/testing
├─ output/ # Final ISO output
├─ rootfs/ # Extracted Clonezilla root filesystem
Main build script. Performs the following steps:
- Cleans previous
rootfs - Downloads Clonezilla ISO
- Extracts ISO and SquashFS
- Customizes rootfs (installs packages, copies custom apps)
- Repackages ISO
- Produces final ISO in
output/
Customizes the extracted rootfs:
- Mounts pseudo-filesystems (
/dev,/proc,/sys,/dev/pts) - Installs packages listed in
config/packages.txt - Copies custom applications from
custom-apps/opt/ - Cleans up mounted pseudo-filesystems
- Uses
chroot(requiressudo) for package installation
- Downloads the selected Clonezilla Live ISO to
artifacts/clonezilla/ - Verifies SHA256 checksum
- Creates a symlink
clonezilla-base.isofor consistent naming
- Extracts the downloaded ISO to
artifacts/extracted/ - Extracts SquashFS filesystem into
rootfs/
- Repackages the customized rootfs and ISO
- Supports both BIOS (isolinux) and UEFI (GRUB) boot
- Copies custom bootloader files from
boot-files/
- Optional extra ISO customizations (e.g., boot menu modifications)
- Can be used to override default boot settings
- Helper scripts to manually enter or run commands inside the rootfs
- Useful for testing or debugging before repacking
- Both scripts use
sudo chroot "$ROOTFS_DIR"environment
setup-network.sh— optional networking setup inside rootfsupdate-boot-files.sh— updates bootloader files inside the ISOfix-scripts-format-to-utf8-lf.sh— normalizes line endingslogging.sh— helper functions for standardized logging
config/packages.txt— list of Debian/Ubuntu packages to install inside the rootfs.
Example:
isc-dhcp-client
python3
curl
-
custom-apps/opt/— custom applications copied to/optinside the rootfs. -
boot-files/— custom EFI and isolinux boot files.
Run the main build script:
cd live-local-clonezilla
./build-scripts/build-local.sh- You will be prompted for your
sudopassword. - The script handles mounting, chroot, package installation, and cleanup automatically.
- Packages listed in
config/packages.txtwill be installed in the rootfs.
- Final ISO is located in:
output/hardclone/ - ISO filename format:
hardclone-clonezilla-live-<version>-<timestamp>.iso - ISO label format:
HC-Clonezilla-<version>
License — see LICENSE file for details.