Mount CloneZilla image

From WickyWiki
Revision as of 08:29, 15 September 2013 by Wilbert (talk | contribs)


CloneZilla is not always able to restore an image, in that case you could try do do this manually. On the other hand you just might want to look inside the image without having to restore it to a physical partition.

Windows NTFS partition

Note: I didn't test this yet (201309).

Guide:

Extract

Install partclone:

add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
apt-get update
apt-get install partclone

Install ntfsclone:

sudo apt-get install ntfsprogs

Locate the CloneZilla image and go there, you will find files like: "sda1.ntfs-img.aa" and "sda1.ntfs-img.ab" ...

Find what compression has been used, gzip, bzip or lzop?

file *.ntfs-img.aa

Extract partition image (sdb1) from CloneZilla, we assume gzip has been used.

Note: the image you are about to extract will be sized to the original partition-size, unused space included. This can take quite some time and disk space.

Options:

  • -C ignore size errors
  • -F force
  • -O overwrite
  • -s <> source, specify - to use standard input (pipe)
  • -o <outputfile>
cat sdb1.ntfs-ptcl-img.gz.* | gzip -d -c | partclone.restore --restore_row_file -F -O -C -s - -o sdb1.img

Define device md0 and mount it:

mdconfig -a -t vnode -f sdb1.img md0
mkdir /media/mnt
mount -t ntfs /dev/md0 /mnt

Resize

Check for errors:

dmesg | tail

Check for the minimum size:

ntfsresize -m /dev/md0

Apply the resize (in this example 36Mb)

After the resize, the imagefile stays at its original size, it's not automatically truncated. We use ntfsclone to extract the relevant data in the next step.

Note that this can take considerable time:

ntfsresize --size 36M /dev/md0

Clone to get the minimum size. The --force is necessary because the resize action flags the volume for a chkdsk check.

ntfsclone --force -o sdb1_shrunk.img /dev/md0
mdconfig -d -u /dev/md0

Restore

Restore to partition, in this example /dev/sda1.

THIS WILL OVERWRITE THE TARGET PARTITION!! 
ALL DATA ON THAT PARTITION WILL BE LOST!!

Note: after this only the earlier 'minimum size' of the partition is used

partclone.restore -d -s sdb1_shrunk.img -o /dev/sda1

Resize to fit partition:

ntfsresize -x /dev/sda1

Linux ext4 partition

Extract

Install partclone:

add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
apt-get update
apt-get install partclone

Lets say compression is gzip (as it probably is), then we need to extract the image using gzip.

Note: the image you are about to extract will be sized to the original partition-size, unused space included. This can take quite some time and disk space.

cat sda5.ext4-ptcl-img.gz.* | gzip -d -c | partclone.restore --restore_row_file -F -O -C -s - -o sda5.img

Mount/unmount with:

mkdir /media/ubuntutje
mount -o loop -t ext4 sda5.img /media/sda5img
umount /media/sda5img

Resize

You can do this instead of using CloneZilla if you have 'geometry' errors or other problems.

Check for (mount) errors:

dmesg | tail

Fix errors (if any)

fsck.ext4 -f sda5.img
e2fsck -f sda5.img

Resizing the filesystem on sda5.img to minimum size. Note: this can take a lot of time

resize2fs -M sda5.img

Restore

Restore to partition, in this example /dev/sda3.

THIS WILL OVERWRITE THE TARGET PARTITION!! 
ALL DATA ON THAT PARTITION (/dev/sda3) WILL BE LOST!!

Note: after this only the earlier 'minimum size' of the partition is used

partclone.restore -d -s sda5.img -o /dev/sda3

Resize partition to fit the whole available space:

e2fsck -f /dev/sda3
resize2fs /dev/sda3