Wind turbines on the mountain


GNU ddrescue is a data recovery tool. DDRescue-GUI helps users recover important data fast, using GNU ddrescue but without having to understand the commandline, which can be daunting.

With any tool capable of erasing data, there is the opportunity to make a mistake such that the source data is damaged. You should allow the tool to finish, avoid running it on mounted partitions and never try to repair data on suspected damaged drives. You should take care to remember that any data on a chosen destination will be replaced. That is why it can be helpful to have a graphical user interface!

GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying to rescue the good parts first in case of read errors.

Ubuntu Circle of Friends for web - (CC BY-SA 3.0) Copyright 2017 Canonical Ltd.

TL:DR The best way to copy an exact image of a drive.

Installing on Ubuntu 20.04

The easiest way to install is to add the author's repository to your Ubuntu sources. Then its a matter of update and install in the usual way.

$ sudo add-apt-repository ppa:hamishmb/myppa
$ sudo apt update 
$ sudo apt install ddrescue-gui

Now you can use the system key to find and run DDRescue-Gui - just type 'DDRescue' and load the app. It requires sudo permissions because it can read, write, and destroy data!

An example of DDrescue-GUI in action

I needed to image a Windows hard drive for a friend, before inspecting it to confirm or deny a ransomware attack. This necessitated removing the drive from the laptop, a Lenovo, which was easy, then connecting it to a USB port on my Linux Computer. I used a USB 3.0 to SATA Adapter Cable for 2.5in SSD HDD Drives

I had another identical size external USB drive too, which I also attached. My Linux computer contains a hard drive too, so now there are three attached. Crucially the Windows drive and the new destination drive are not mounted.

You can use the lsblk -e7 to list available drives (which are known as block devices). This command prints all block devices (except RAM disks) in a tree-like format by default. Use lsblk --help to get a list of all available options.

$ sudo lsblk -e7
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
└─sda2   8:2    0   931G  0 part /
sdb      8:16   0 931.5G  0 disk 
├─sdb1   8:17   0  1000M  0 part 
├─sdb2   8:18   0   260M  0 part 
├─sdb3   8:19   0  1000M  0 part 
├─sdb4   8:20   0   128M  0 part 
├─sdb5   8:21   0 891.7G  0 part 
├─sdb6   8:22   0    25G  0 part 
└─sdb7   8:23   0  12.5G  0 part
sdc      8:16   0 931.5G  0 disk 
├─sdc1   8:17   0  1000M  0 part 
├─sdc2   8:18   0   260M  0 part 
├─sdc3   8:19   0  1000M  0 part 
├─sdc4   8:20   0   128M  0 part 
├─sdc5   8:21   0 891.7G  0 part 
├─sdc6   8:22   0    25G  0 part 
└─sdc7   8:23   0  12.5G  0 part

Optional, Install GParted — a graphical tool for managing disks on Linux

Running GParted

The focus of this article is on DDrescue-GUI, but GParted makes it very easy to understand which block device represents each drive which, and this is of course vitally important as the destination will be overwritten!

$ sudo apt update 
$ sudo apt install gparted

Now you can click on the drop down menu on the right hand side to check each block device and make sure you know which is which. I can see that the Windows 8.1 drive is /dev/sdb and my destination will be /dev/sdc simple!

Running DDRescue-Gui

Once you have DDRescue-Gui loaded it is a question of choosing a source, a destination and a recovery map file loction. In this example a 1TB drive is being copied to a new 1TB drive.

Running DDRescue-Gui

Further information is available under detailed info.

Running DDRescue-Gui

If you want to, you can see the terminal output.

Running DDRescue-Gui

A confirmation will appear once completed. Note that a 1TB drive took about 7 hours.

Running DDRescue-Gui

And you can mount the destination once the operation is completed.

DDRescue-GUI homepage
GNU ddrescue homepage