Clonezilla creates disk images in various formats depending on the chosen options. The most common formats are:
- Partclone images (.ntfs-ptcl, .ext4-ptcl, etc.)
- Raw disk images (.img)
- Compressed archives (.gz, .bz2)
For partclone images, you'll need partclone utilities:
sudo apt-get install partclone
partclone.restore -s /path/to/image.ntfs-ptcl -o /dev/loop0 -r
sudo mount -o ro /dev/loop0 /mnt/clonezilla
For raw images, use standard loop mounting:
sudo losetup -fP /path/to/image.img
sudo mount /dev/loop0p1 /mnt/clonezilla
For gzipped images, use a combination of tools:
zcat image.ntfs-ptcl.gz | partclone.restore -o /dev/loop0 -r -O -
sudo mount /dev/loop0 /mnt/clonezilla
Clonezilla actually includes a hidden file browser mode:
sudo clonezilla -b -s /path/to/images -d /mnt/extract
Here's a Python script to automate extraction from mounted images:
import os
import shutil
import subprocess
def extract_from_clonezilla(image_path, target_file, output_dir):
# Create temporary mount point
temp_mount = "/tmp/clonezilla_mount"
os.makedirs(temp_mount, exist_ok=True)
try:
# Mount the image
subprocess.run(["sudo", "mount", "-o", "ro", image_path, temp_mount], check=True)
# Find and copy the target file
for root, dirs, files in os.walk(temp_mount):
if target_file in files:
src = os.path.join(root, target_file)
shutil.copy2(src, output_dir)
return True
finally:
# Clean up
subprocess.run(["sudo", "umount", temp_mount], quiet=True)
os.rmdir(temp_mount)
return False
If your Clonezilla image is encrypted, you'll need to decrypt first:
sudo cryptsetup open --type luks /path/to/image.img clonezilla_decrypted
sudo mount /dev/mapper/clonezilla_decrypted /mnt/clonezilla
- Always mount images as read-only (-o ro) to prevent accidental modifications
- Clean up mount points after extraction to avoid system clutter
- For Windows images, you may need additional tools like ntfs-3g
Clonezilla creates disk images in specialized formats (like partclone or dd) that aren't directly browsable through conventional file managers. While perfect for full system recovery, this presents a hurdle when you need just one misconfigured Apache config file or that critical Python script from yesterday's backup.
The most flexible approach involves mounting the image as a virtual filesystem. Here's how to handle common Clonezilla formats:
# For partclone images (most common Clonezilla format)
sudo losetup -f --show sda1.ext4-ptcl-img
sudo partclone.restore -s /dev/loop0 -o /mnt/temp_mount -b
# For raw dd images
sudo mount -o loop,ro sda1.dd-img /mnt/temp_mount
Using partclone_restore Directly
For quick checks without mounting:
partclone.restore -s backup.img -L - | grep "important_file.conf"
Windows Users Solution
Try these tools for NTFS partitions:
# Using 7-Zip with plugin
7z l backup.img
# Or with OSFMount for GUI access
Here's a Python script to automate finding and extracting files:
import subprocess
import os
def extract_from_clonezilla(image_path, target_file, output_dir):
temp_mount = "/mnt/temp_clonezilla"
os.makedirs(temp_mount, exist_ok=True)
try:
subprocess.run(["sudo", "mount", "-o", "loop,ro", image_path, temp_mount], check=True)
found_files = []
for root, _, files in os.walk(temp_mount):
if target_file in files:
src = os.path.join(root, target_file)
dst = os.path.join(output_dir, target_file)
subprocess.run(["sudo", "cp", src, dst])
found_files.append(dst)
return found_files
finally:
subprocess.run(["sudo", "umount", temp_mount], check=True)
For LUKS-encrypted Clonezilla backups, first decrypt:
sudo cryptsetup luksOpen backup.img clonezilla_decrypted
sudo mount /dev/mapper/clonezilla_decrypted /mnt/temp_mount
When working with large images:
- Use
ionice -c 3
for low-priority I/O - Consider
pv
for progress monitoring - For network storage, first copy locally