Clone larger disk into smaller one with dd

Linux_DD_Fdisk_Sgdisk_

Clone larger disk into smaller one with dd

Disclaimer
Please make sure to backup your data before attempting to try this method. Use at your own risk .

I recently had to clone a disk of 250GB capacity into an other one of 80GB capacity . The first disk had about 30GB of used space divided into 2 partitions .
I tried using clonezilla using the option -lcds as many suggested, but without luck .
however the dd command saved the day .

I placed both disks in the same computer, and then booted into an Ubuntu live CD, the fdisk -l chose the following results :



So the goal is to clone the sda drive into sdb. In my case it will translate into cloning the first 30GB .

dd command uses the number of sectors and their count  instead of number Gigabytes :

30 Gigabytes =  32212254720 Bytes
Our sector size is 512 Bytes, so 32212254720 / 512  = 62914560 sectors .

We will formulate the dd command as follow :


Be extra careful of the disks labels, to not switch them up, dd will give no confirmation ! .

So this will translate into copying 62914560 sectors of 512 Bytes , which should be 30 GB . 
Now  we have to wait for the copy to complete.

While this should be enough in most cases, in my case i wasn't able to boot using the cloned disk, it was something to do with the GPT table wasn't correctly copied . To fix that with can copy it as well from the original disk using these 2 sgdisk commands :


If you check fdisk -l  again , you should see that the target disk has 2 partitions similar to the original disk :




Comments :