Ddrescue

Last updated
ddrescue
Original author(s) Antonio Diaz Diaz
Initial release12 August 2004;19 years ago (2004-08-12)
Stable release
1.27 [1]   OOjs UI icon edit-ltr-progressive.svg / 23 January 2023
Written in C++
Operating system Unix-like
Type Data recovery
License 2014: GPL-2.0-or-later [lower-alpha 1]
2007: GPL-3.0-or-later [lower-alpha 2]
2004: GPL-2.0-or-later [lower-alpha 3]
Website www.gnu.org/software/ddrescue/

GNU ddrescue is a data recovery tool for disk drives, DVDs, CDs, and other digital storage media. It copies raw blocks of storage, such as disk sectors, from one device or file to another, while handling read errors in an intelligent manner to minimize data loss by scraping good sectors from partially read blocks.

Contents

GNU ddrescue is written in the C++ programming language, and is available as open-source software that was originally released in 2004. It is also available in binary form as a component in most Linux distributions.

Description

ddrescue uses a sophisticated algorithm to copy data from disk drives, and other storage devices, causing as little additional damage, if they are failing, as possible. [2] It is considered to have the most sophisticated implementation of a block-size-changing algorithm in free and open source software, [3] [4] and is considered an essential data recovery tool. [5] [6]

The status of the copy process is recorded in a map file (previously called logfile) that aids in the progress of multiple stages of the recovery algorithm, and facilitates interrupting the recovery, and repeating it as needed to recover more data. The program does not write zeros to the output in place of bad blocks, so that additional errors not encountered previously do not destroy previously recovered blocks. This makes it possible to merge multiple defective copies of CDs or DVDs into one backup file. By virtue of the map file, only the needed blocks are read from the second and successive copies.

ddrescue also features a fill mode, able to selectively overwrite parts of the output file, which has uses such as wiping data, marking bad areas or even, in some cases, repair damaged sectors. [7]

Unrelated recovery tools

GNU ddrescue is not a derivative of dd which also copies blocks of storage from disk storage, but does not operate in a strategic, algorithmic manner.

GNU ddrescue is also distinct from the similarly named program dd_rescue. [8]

See also

Notes

  1. GPL-2.0-or-later since version 1.19 (2014-10-03).
  2. GPL-3.0-or-later from version 1.5 (2007-06-29) until version 1.18.1 (2014-06-10).
  3. GPL-2.0-or-later from version 0.1 (2004-08-12) until version 1.4 (2007-06-18).

Related Research Articles

New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred filesystem on Windows and is supported in Linux and BSD as well. NTFS reading and writing support is provided using a free and open-source kernel implementation known as NTFS3 in Linux and the NTFS-3G driver in BSD. By using the convert command, Windows can convert FAT32/16/12 into NTFS without the need to rewrite all files. NTFS uses several files typically hidden from the user to store metadata about other files stored on the drive which can help improve speed and performance when reading data. Unlike FAT and High Performance File System (HPFS), NTFS supports access control lists (ACLs), filesystem encryption, transparent compression, sparse files and file system journaling. NTFS also supports shadow copy to allow backups of a system while it is running, but the functionality of the shadow copies varies between different versions of Windows.

RAID is a data storage virtualization technology that combines multiple physical disk drive components into one or more logical units for the purposes of data redundancy, performance improvement, or both. This is in contrast to the previous concept of highly reliable mainframe disk drives referred to as "single large expensive disk" (SLED).

A disk image is a snapshot of a storage device's structure and data typically stored in one or more computer files on another storage device. Traditionally, disk images were bit-by-bit copies of every sector on a hard disk often created for digital forensic purposes, but it is now common to only copy allocated data to reduce storage space. Compression and deduplication are commonly used to reduce the size of the image file set. Disk imaging is done for a variety of purposes including digital forensics, cloud computing, system administration, as part of a backup strategy, and legacy emulation as part of a digital preservation strategy. Disk images can be made in a variety of formats depending on the purpose. Virtual disk images are intended to be used for cloud computing, ISO images are intended to emulate optical media and raw disk images are used for forensic purposes. Proprietary formats are typically used by disk imaging software. Despite the benefits of disk imaging the storage costs can be high, management can be difficult and they can be time consuming to create.

Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk, memory card or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems. The first part of the formatting process that performs basic medium preparation is often referred to as "low-level formatting". Partitioning is the common term for the second part of the process, dividing the device into several sub-devices and, in some cases, writing information to the device allowing an operating system to be booted from it. The third part of the process, usually termed "high-level formatting" most often refers to the process of generating a new file system. In some operating systems all or parts of these three processes can be combined or repeated at different levels and the term "format" is understood to mean an operation in which a new disk medium is fully prepared to store files. Some formatting utilities allow distinguishing between a quick format, which does not erase all existing data and a long option that does erase all existing data.

<span class="mw-page-title-main">Live CD</span> Complete, bootable computer installation that runs directly from a CD-ROM

A live CD is a complete bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loading from a hard disk drive. A live CD allows users to run an operating system for any purpose without installing it or making any changes to the computer's configuration. Live CDs can run on a computer without secondary storage, such as a hard disk drive, or with a corrupted hard disk drive or file system, allowing data recovery.

<span class="mw-page-title-main">SystemRescue</span> Linux distribution

SystemRescue is a Linux distribution for x86 64 and x86 computers. The primary purpose of SystemRescue is to repair unbootable or otherwise damaged computer systems after a system crash. SystemRescue is not intended to be used as a permanent operating system. It runs from a Live CD, a USB flash drive or any type of hard drive. It was designed by a team led by François Dupoux, and is based on Arch Linux since version 6.0. Starting with version 6.0, it has systemd as its init system.

In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "back up", whereas the noun and adjective form is "backup". Backups can be used to recover data after its loss from data deletion or corruption, or to recover data from an earlier time. Backups provide a simple form of disaster recovery; however not all backup systems are able to reconstitute a computer system or other complex configuration such as a computer cluster, active directory server, or database server.

dd is a command-line utility for Unix, Plan 9, Inferno, and Unix-like operating systems and beyond, the primary purpose of which is to convert and copy files. On Unix, device drivers for hardware and special device files appear in the file system just like normal files; dd can also read and/or write from/to these files, provided that function is implemented in their respective driver. As a result, dd can be used for tasks such as backing up the boot sector of a hard drive, and obtaining a fixed amount of random data. The dd program can also perform conversions on the data as it is copied, including byte order swapping and conversion to and from the ASCII and EBCDIC text encodings.

<span class="mw-page-title-main">Disk editor</span> Computer software

A disk editor is a computer program that allows its user to read, edit, and write raw data on disk drives ; as such, they are sometimes called sector editors, since the read/write routines built into the electronics of most disk drives require to read/write data in chunks of sectors. Many disk editors can also be used to edit the contents of a running computer's memory or a disk image.

<span class="mw-page-title-main">SpinRite</span>

SpinRite is a computer program for scanning RAS Random Access Storage devices such as hard disks, reading and rewriting data using proprietary programming methods to resolve and retrieve data that is unreadable by DOS or Windows. The first version was released in 1987 by Steve Gibson. The current version, 6.0, was released in 2004., with ongoing development open to the public at https://www.grc.com/dev/spinrite/

Data remanence is the residual representation of digital data that remains even after attempts have been made to remove or erase the data. This residue may result from data being left intact by a nominal file deletion operation, by reformatting of storage media that does not remove data previously written to the media, or through physical properties of the storage media that allow previously written data to be recovered. Data remanence may make inadvertent disclosure of sensitive information possible should the storage media be released into an uncontrolled environment.

<span class="mw-page-title-main">Atari DOS</span>

Atari DOS is the disk operating system used with the Atari 8-bit family of computers. Operating system extensions loaded into memory were required in order for an Atari computer to manage files stored on a disk drive. These extensions to the operating system added the disk handler and other file management features.

In computing, data recovery is a process of retrieving deleted, inaccessible, lost, corrupted, damaged, or formatted data from secondary storage, removable media or files, when the data stored in them cannot be accessed in a usual way. The data is most often salvaged from storage media such as internal or external hard disk drives (HDDs), solid-state drives (SSDs), USB flash drives, magnetic tapes, CDs, DVDs, RAID subsystems, and other electronic devices. Recovery may be required due to physical damage to the storage devices or logical damage to the file system that prevents it from being mounted by the host operating system (OS).

<span class="mw-page-title-main">GParted</span> Partition editor

GParted is a GTK front-end to GNU Parted and an official GNOME partition-editing application. GParted is used for creating, deleting, resizing, moving, checking, and copying disk partitions and their file systems. This is useful for creating space for new operating systems, reorganizing disk usage, copying data residing on hard disks, and mirroring one partition with another. It can also be used to format a USB drive.

NILFS or NILFS2 is a log-structured file system implementation for the Linux kernel. It was developed by Nippon Telegraph and Telephone Corporation (NTT) CyberSpace Laboratories and a community from all over the world. NILFS was released under the terms of the GNU General Public License (GPL).

<span class="mw-page-title-main">PhotoRec</span> Open source data recovery software

PhotoRec is a free and open-source utility software for data recovery with text-based user interface using data carving techniques, designed to recover lost files from various digital camera memory, hard disk and CD-ROM. It can recover the files with more than 480 file extensions . It is also possible to add custom file signature to detect less known files.

<span class="mw-page-title-main">Clonezilla</span> Drive cloning software

Clonezilla is an open-source suite of disk cloning, disk imaging and system deployment utilities. Clonezilla Server Edition uses multicast technologies to deploy a single image file to a group of computers on a local area network. Clonezilla was designed by Steven Shiau and developed by the NCHC Free Software Labs in Taiwan.

lzip Data compression utility

lzip is a free, command-line tool for the compression of data; it employs the Lempel–Ziv–Markov chain algorithm (LZMA) with a user interface that is familiar to users of usual Unix compression tools, such as gzip and bzip2.

bcache is a cache in the Linux kernel's block layer, which is used for accessing secondary storage devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices, such as hard disk drives (HDDs); this effectively creates hybrid volumes and provides performance improvements.

ZFS is a file system with volume management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an open source license as OpenSolaris for around 5 years from 2005 before being placed under a closed source license when Oracle Corporation acquired Sun in 2009–2010. During 2005 to 2010, the open source version of ZFS was ported to Linux, Mac OS X and FreeBSD. In 2010, the illumos project forked a recent version of OpenSolaris, including ZFS, to continue its development as an open source project. In 2013, OpenZFS was founded to coordinate the development of open source ZFS. OpenZFS maintains and manages the core ZFS code, while organizations using ZFS maintain the specific code and validation processes required for ZFS to integrate within their systems. OpenZFS is widely used in Unix-like systems.

References

  1. Antonio Diaz Diaz (26 January 2023). "GNU ddrescue 1.27 released" . Retrieved 27 January 2023.
  2. "GNU ddrescue Manual". The GNU project. Retrieved 6 September 2013.
  3. "Disk drive recovery: ddrescue, dd_rescue, dd_rhelp". John Gilmore. Archived from the original on 30 May 2013. Retrieved 6 September 2013.
  4. "Damaged Hard Disk". www.cgsecurity.org. Archived from the original on 14 November 2023. Retrieved 6 September 2013.
  5. "Best Data Recovery Tools - Top 10 List". Geekyprojects. Retrieved 6 September 2013.
  6. "12 essential system recovery tools". PC Plus (Issue 303). 22 January 2011. Retrieved 6 September 2013.
  7. "ddrescue - Data recovery tool". The GNU project. Retrieved 6 September 2013.
  8. Kurt Garloff's dd_rescue