Linux Copy One Hard Disk to Another Using dd Command

by Vivek Gite on November 19, 2007 · 15 comments

Q. How can I copy one hard disk to another using dd command?

A. dd command can copy disk in raw format. It will copy partition table and bootloader and all partitions within this disk. For example, you can copy /dev/sda to /dev/sdb (same size) using the following dd command. dd should complete with no errors, but output the number of records read and written.

Login as the root user (use sudo or su command)

WARNING! These examples may result into data loss, ensure there are good backups before doing this, as using dd wrong way can be dangerous.

Open terminal or shell prompt and type the following dd command:
# dd if=/dev/sda of=/dev/sdb
Where,

  • if=/dev/sda : Input disk (source)
  • of=/dev/sdb : Output disk (destination)

You can also copy hard disk or partition image to another system using a network and netcat (nc) command.

Featured Articles:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 15 comments… read them below or add one }

1 Anil Waghmare February 5, 2008

Hi,
Please check your steps. Instead of if & of you have written if twice

Reply

2 Dorin September 1, 2008

Is is possible to copy one disc to another, a bigger one?

Reply

3 Shams August 17, 2010

I want to know the reply of Dorin’s question

Reply

4 Youpi February 17, 2009

please answer Dorin’s question…

Reply

5 Andy February 22, 2009

I want to know the answer of Dorin’s question too. Thanks~~

Reply

6 Looo June 19, 2009

I would also appreciate an answer please ….

Reply

7 Dorin June 20, 2009

I guess we will have to try to copy one small disk to a bigger one.

Reply

8 Jeff July 3, 2009

you can dd one smaller hdd to one larger hdd, depending on the tools, you can then resize the partition to fit the entire new hdd

Reply

9 Kerem ERSOY July 19, 2009

You can copy a smaller disk to alarger one. But initially the Filesyem over the large disk will be exactly s it is over the smaller disk. Then if you’re using ext2 / ext3 you can directly modify the partition size using resize2fs command. If you’re using LVM then you’ll need to expand LVM first.

Reply

10 Don Lassini July 21, 2009

You can copy a small disk to a larger disk, and then resize the partition with gparted.
You can also copy one partition from one disk to another, and then resize that partition afterwards.
e.g. dd if=/dev/sdb1 of=/dev/sdc1

Again, you can use gparted to resize the partition afterwards.

Reply

11 Ashu August 22, 2009

Hi…

I was looking if any one can provide me the instructions on how to resize my linux hard disk (sda)

I am unable to perform wirte command after I making the changes in fdisk /dev/sda command.
Please help me out with this.

Thank you.
Ashu

Reply

12 Arjan September 3, 2009

You can try to boot your system with a ubuntu live cd, and start the partition editor (gparted) when the system is booted. Or use a linux recovery cd

You should not resize a partition you are working on (=mounted)

Reply

13 Hmm September 21, 2009

GNU ddrescue is better, since it shows progress, won’t make any errors, and you can interrupt it without worry.

Reply

14 Ashrock November 15, 2010

I have a external hard drive of 250GB capacity mounted on /mnt/sda2.
The device is at /dev/sda2.
So, if i want to copy the complete hard drive to take a backup using this dd command.
Do i have to unmount it first and then use dd command.
There are actually two partitions in the hard drive i want to copy.
One is of 5.5GB other is of 63GB.
Can i copy both using dd command, if so, would i be able to preserve the filesytem for later recovery.

Thanks.

Reply

15 yashwanth December 14, 2010

Hey, my question is something different.

I have a 55GB hard disk … but it has only 30 GB filled with partitions and remaining 25G I have not even extended,
now my question is if I have one more disk with 49GB hard disk … can I copy the 30GB data into the 49G disk … ?

pls reply me as soon as possible …. I need it very urgent ..!!

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 9 + 14 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.




Previous post:

Next post: