Modern technology gives us many things.

How to Easily Clone and Restore a Linux Disk Image With dd


When the time comes to wipe, backup, or restore data on Linux, there are several apps you can pick. GParted is one of the most proven options out there. GNOME Disks is a more modern alternative that looks great in the GNOME desktop environment. But no matter which Linux operating system you run, there’s one option that always works—dd.

You can use Linux without ever needing to dip into the terminal. But once you add certain commands to your repertoire, not only will you save time, but you will learn skills that you can use across any version of Linux.

Why Use dd?

Whether you’re on a desktop or a server, dd simply works. dd began as a Unix command, so in addition to Linux, it supports other Unix-like operating systems such as FreeBSD and macOS.

dd also takes mere seconds to initiate a wipe or create a disk image. Once you know what to type, you can open a terminal and erase a drive in the time it takes you to type in a search for instructions online.

With great power comes great responsibility. The command to clone a drive isn’t all that different from the one to erase one. You need to pay extra attention to what you type when working with commands that can delete files.

Related: How to Format Storage Drives Using the Linux Terminal


Are you nervous? Good. Even once you’re a dd expert, you always want to type out commands carefully. An absent mind can, at worst, ruin hardware and, more likely, result in data loss. Now, let’s get started.

Cloning a Drive With dd

Cloning a drive is a sure-fire way to make a backup of your computer. You can back up data to a portable hard drive or Dropbox, but this only saves your files.

To save your apps, you have to learn how to back up each individual app. For some, that means exporting a specific file. For others, that means copying a hidden folder. Then there are those apps that you can’t back up at all.

dd gets around this by creating an exact copy of your entire hard drive or partition. When you restore this copy, you bring your computer back to exactly how it was. You will get back your files, your apps, your browsing history, and even your system settings. Everything.

To clone your drive, you will need a second drive that has more space than the one you’re copying. Likely, this will be a portable hard drive or a large flash drive.

Start by opening the terminal. You will need administrator rights to execute any dd commands. You can type su to sign in as an administrator or type sudo at the beginning of the dd command.

When you’re ready to copy, type the command below. Note, it will erase any pre-existing data on the second drive, so make sure to back up any data beforehand.

dd if=/dev/sdX of=/dev/sdY

Now, let’s make sense of what’s going on. dd is the command. if is the input, as in the location you want to copy. of is the output or the location you’re replacing with your copy.

sdX and sdY refer to the drives you are interacting with. Drives are often given a name such as /dev/sda, /dev/sdb, or /dev/sdc. You can find out the names using a partition editor. Or, since you’re already in the terminal, you can use the lsblk command.

Creating a Disk Image

Another way to clone a drive is to create a disk image that you can move around and restore as you would do with a bootable USB.

Creating image files allows you to save multiple backups to a single destination, such as a large portable hard drive. Again, this process only requires one command:

dd if=/dev/sdX of=path/to/your-backup.img

To save space, you can have dd compress your backup.

dd if=/dev/sdX | gzip -c > path/to/your-backup.img.gz

This command shrinks your backup into an IMG.GZ file, one of the many compression formats Linux can handle.

Restoring a Drive With dd

What good are the backups if you can’t use them? When you’re ready to restore an image with dd, you have two options. If you used the first approach, simply swap the two destinations.

dd if=/dev/sdY of=/dev/sdX

When restoring from an image file, the same concept applies:

dd if=path/to/your-backup.img of=/dev/sdX

If your image file is compressed, then things get a little different. Use this command instead:

gunzip -c /path/to/your-backup.img.gz | dd of=/dev/sdX

To be clear, gunzip is “g unzip,” as in the opposite of “g zip.” This command decompresses your backup. Then dd replaces the existing drive with this image.

Parameters to Consider

You can alter your command by sticking a parameter at the end. By default, dd can take a while to transfer data. You can speed up the process by increasing the block size. Do so by adding bs= at the end.

dd if=/dev/sdX of=/dev/sdY bs=64

This example increases the default block size from 512 bytes to 64 kilobytes.

conv=noerror tells dd to continue despite any errors that occur. The default behavior is to stop, resulting in an incomplete file. Keep in mind that ignoring errors isn’t always safe. The resulting file may be corrupted.

conv=sync adds input blocks with zeroes whenever there are any read errors. This way data offsets remain in sync.

You can combine these last two as conv=noerror,sync if you so desire. There is no space after the comma.

Getting to Know dd

In case you’re interested, dd’s name refers to a statement in IBM’s Job Control Language. If you don’t understand what’s going on there, no sweat. That doesn’t make the command any harder to use.

Need more information to help with dd? The wiki page is pretty thorough. There’s also a great write-up on the Arch Linux wiki. Again, it doesn’t matter if you’re using Arch or not. dd works the same way regardless of your Linux operating system.

If it turns out dd isn’t for you, you’re not out of luck. There are other ways to clone a hard drive!

How to Clone Your Linux Hard Drive: 4 Methods

Need to clone your Linux hard disk drive or partition? Use one of these drive cloning tools to clone your Linux disk.

Read Next

About The Author

Source link

Leave A Reply

Your email address will not be published.