In Linux, we can do
dd if=/dev/sdb of=bckup.img
but if the disk is of 32GB with only 4GB used, the 32GB image file is waste of space-time. Is there any way or tool to create images with only valid data?
The best thing to do is
Copy all the files from all the partitions preserving meta data
mkdir -p myimage/partition1
mkdir myimage/partition2
sudo cp -rf --preserve=all /media/mount_point_partition1/* myimage/partition1/
sudo cp -rf --preserve=all /media/mount_point_partition2/* myimage/partition2/
Extract the MBR
sudo dd if=/dev/sdX of=myimage/mbr.img bs=446 count=1
replace /dev/sdX
with the corresponding device.
Partition the destination disk into partitions with sizes greater than copied data and should be of the same format and same flags using gparted
. Google how to partition a disk.
Mount the freshly formatted and partitioned disk. On most computers, you just need to connect the disk and you can find the mounted partitions in /media
folder.
Copy the previously copied data to destination partitions using following commands
sudo cp -rf --preserve=all myimage/partition1/* /media/mount_point_partition1/
sudo cp -rf --preserve=all myimage/partition2/* /media/mount_point_partition2/
Copy back the MBR
sudo dd if=myimage/mbr.img of=/dev/sdX bs=446 count=1
Now njoy Ur new disk!