Dentro de un sistema Linux, GNU ddrescue es una utilidad que puede utilizarse para reparar y copiar unidades. Se aplica a unidades flash, DVD, discos duros, particiones y cualquier medio de almacenamiento. Al replicar los datos en trozos, lleva a cabo la recuperación de datos. Aquí encontrarás un tutorial sobre la instalación y el uso de GNU Ddrescue para recuperar datos en Ubuntu.
En este artículo
Parte 1. ¿Qué es GNU Ddrescue?
GNU ddrescue es una herramienta de recuperación de datos para discos duros, DVDs, CDs y otros medios de almacenamiento digital. Gestiona de forma inteligente los errores de lectura para reducir la pérdida de datos eliminando los sectores buenos de los bloques leídos parcialmente, copiando bloques de almacenamiento sin procesar, como sectores de disco, de un dispositivo o archivo a otro.

La operación básica de Ddrescue está completamente automatizada. No necesita esperar a que se produzca un error, parar el programa, reiniciarlo desde una posición diferente, etc. La recuperación de los datos se realiza cuando se utiliza la función de archivo de mapa de Ddrescue (sólo se leen los bloques necesarios). Cuando detecta sectores defectuosos en la entrada, no escribe ceros en la salida y no trunca el archivo de salida a menos que se le pida. Cada vez que se ejecuta en el mismo archivo de salida, el programa intenta rellenar los huecos sin borrar los datos guardados anteriormente.
Si usted tiene dos o más copias dañadas de un archivo, cdrom, etc., y ejecuta Ddrescue en todas ellas, de una en una, con el mismo archivo de salida, debería obtener un archivo completo y sin errores. Esto se debe a que la probabilidad de que la misma área se dañe en todas las copias es baja (si los errores se localizan aleatoriamente).
Funciones
- La función Ddrescue sólo funciona en archivos de entrada y salida buscables (de acceso aleatorio) porque necesita leer y escribir en ubicaciones aleatorias.
- Ddrescue puede leer el archivo de entrada directamente del disco, saltándose la caché del kernel, si su sistema es capaz de hacerlo.
- Además, Ddrescue dispone de un "modo de relleno" que permite sobrescribir selectivamente partes del archivo de salida. Esta función puede ser útil para borrar datos, identificar áreas problemáticas o, en algunas circunstancias, incluso "reparar" sectores dañados.
- Una de las ventajas de Ddrescue es que es compatible con cualquier interfaz, por lo que puede utilizarse con cualquier dispositivo soportado por el kernel (ATA, SATA, SCSI, viejas unidades MFM, disquetes, o incluso tarjetas flash como SD).
Opciones de descarga
El GNU Ddrescue funciona en sistemas operativos tipo Unix, y aquí están los años y versiones del GNU ddrescue cuando fue lanzado.
- 2014: GPL-2.0-o-posterior
- 2007: GPL-3.0-o-posterior
- 2004: GPL-2.0-o-posterior
Historia de GNU Ddrescue
El programa GNU ddrescue es un software de código abierto escrito en el lenguaje de programación C++ que se publicó por primera vez el 12 de agosto de 2004 (hace 18 años). La mayoría de las distribuciones de Linux también incluyen un componente binario para ello.
Parte 2. Consejos para utilizar Ddrescue con seguridad
- GNU Ddrescue es una herramienta potente, como cualquier otra. Para usarlo con seguridad, hay que comprender primero lo que hace, seguido de alguna información sobre los dispositivos a los que hace esas cosas.
- NUNCA intente recuperar una partición montada r/w. La copia resultante puede tener que ser más eficaz. Será preferible que la partición a rescatar no esté montada, aunque sea de sólo lectura.
- NO repare un sistema de archivos en una unidad con errores de E/S; es casi seguro que perderá más datos.
- Si utilizas un dispositivo o partición como destino, los datos que contenga se sobrescribirán.
- Algunos sistemas pueden renombrar los dispositivos después de un reinicio. Si reinicia, vuelva a comprobar los nombres de los dispositivos antes de reiniciar Ddrescue.
- En caso de interferencia de rescate y luego reiniciar, cualquier partición copiada recientemente debe ocultarse antes de que cualquier sistema operativo que intente montar y "reparar" las particiones que ve pueda tocarlas.
Parte 3. Cómo instalar Ddrescue en Ubuntu
Antes de empezar, debe instalar Ddrescue en su sistema. La herramienta se puede instalar fácilmente desde los repositorios de software en línea de su distribución, aunque normalmente no se instala de forma predeterminada.
Utilice el gestor de paquetes de su sistema para instalar ddrescue ejecutando el comando que se indica a continuación. Siga estos pasos para instalarlo en cualquiera de las principales distribuciones de Linux:
- Para instalar ddrescue en Ubuntu, Debian o Linux Mint.
$ sudo apt install gddrescue
- Para instalar ddrescue en Fedora, CentOS, AlmaLinux y Red Hat.:
$ sudo dnf instalar ddrescue
- Para instalar ddrescue en Arch Linux y Manjaro.
$ sudo pacman -S ddrescue
Parte 4. Pequeño tutorial de Ddrescue con ejemplos
Esta guía está dirigida a personas que ya estén familiarizadas con el comando dd. Si usted no está familiarizado con dd, primero debe buscar en Internet algún material introductorio sobre dd y GNU Ddrescue.
Con el paso del tiempo, una unidad que falla desarrolla cada vez más errores. Por tanto, debería guardar los datos de una unidad inmediatamente en cuanto vea el primer error. Ten cuidado porque una unidad dañada puede emitir datos cada vez que se enciende y se apaga.
Lo mejor sería que crearas una copia de la unidad que está fallando utilizando Ddrescue y luego intentaras reparar la copia. Si sus datos son importantes, utilice la primera copia como patrón para una segunda copia e intente reparar la segunda copia. Si algo va mal, aún tienes el maestro al que recurrir.
Si desea recuperar una partición completa, primero repare la copia con e2fsck u otra herramienta adecuada para el tipo de partición que desea recuperar, luego monte la copia reparada e intente recuperar los archivos contenidos en ella.
Si la tabla de particiones está dañada, guarde todo el disco antes de reparar la tabla de particiones y las particiones de la copia. Y si la unidad dañada no aparece en /dev, no se puede recuperar. No con ddrescue, en cualquier caso.
Ejemplo 1: Rescate completamente automático de un disco completo con dos particiones ext2 en /dev/sda a /dev/sdb. No es necesario particionar /dev/sdb de antemano, pero si la tabla de particiones en /dev/sda está dañada, debe volver a crearla en /dev/sdb.
ddrescue -f -r3 /dev/sda /dev/sdb mapfile
fdisk /dev/sdb
e2fsck -v -f /dev/sdb1
e2fsck -v -f /dev/sdb2
Ejemplo 2: Mover una partición ext2 de /dev/sda2 a /dev/sdb2. Primero debe usar fdisk para crear la partición sdb2 con el tipo y tamaño adecuados.
ddrescue -f -n /dev/sda2 /dev/sdb2 mapfile
ddrescue -d -f -r3 /dev/sda2 /dev/sdb2 mapfile
e2fsck -v -f /dev/sdb2
mount -t ext2 -o ro /dev/sdb2 /mnt(lee los archivos rescatados de /mnt)
Ejemplo 3: Mientras se intenta rescatar toda la unidad /dev/sda a /dev/sdb, /dev/sda se congela en la posición 12345678.
ddrescue -f /dev/sda /dev/sdb mapfile # /dev/sda se congela aquí
(reinicie /dev/sda o reinicie el ordenador)
(reinicie la copia a una distancia segura del sector problemático)
ddrescue -f -i 12350000 /dev/sda /dev/sdb mapfile
(luego copie hacia atrás hasta el sector problemático)
ddrescue -f -R /dev/sda /dev/sdb mapfile
Ejemplo 4: Mientras transfiere datos de /dev/sda a /dev/sdb, /dev/sdb falla y debe transferir datos a una tercera unidad, /dev/sdc.
ddrescue -f -n /dev/sda /dev/sdb mapfile1 # /dev/sdb falla aquí
ddrescue -f -m mapfile1 /dev/sdb /dev/sdc mapfile2
ddrescue -f -n /dev/sda /dev/sdc mapfile2
ddrescue -d -f -r3 /dev/sda /dev/sdc mapfile2
Ejemplo 5: Durante el proceso de guardar una partición de /dev/sda1 en el archivo hdimage, /dev/sda1 deja de responder y comienza a responder con errores de lectura, lo que permite a ddrescue registrar el resto de la partición como no raspada.
ddrescue -n /dev/sda1 hdimage mapfile # /dev/sda1 falla aquí
(reinicie /dev/sda o reinicie el ordenador)
ddrescue -n -A -i<pos> -O /dev/sda1 hdimage mapfile
(si /dev/sda1 vuelve a fallar, reinicie /dev/sda o reinicie el ordenador y
luego repita el comando anterior tantas veces como sea necesario hasta
que tenga éxito. <pos> es la posición en la que la unidad dejó de responder)
ddrescue -d -r3 /dev/sda1 hdimage mapfile
Ejemplo 6: Después de rescatar una partición de /dev/sda1 al archivo hdimage, sda1 desaparece de /dev.
ddrescue -n /dev/sda1 hdimage mapfile # /dev/sda1 falla aquí
(reinicie /dev/sda o reinicie el ordenador y luego repita el
comando anterior tantas veces como sea necesario hasta que tenga éxito)
ddrescue -d -r3 /dev/sda1 hdimage mapfile
Ejemplo 7: Al rescatar una partición de /dev/sda1, el SO deja de reconocer sda1 en /dev y la tabla de particiones de /dev/sda se vuelve ilegible. La solución es mover el archivo map y leer la partición restante sda1 desde /dev/sda. Debe conocer el desplazamiento de la partición sda1 en la unidad sda y el tamaño de sda1.
ddrescue /dev/sda1 hdimage mapfile # la tabla de partición falla aquí
ddrescuelog --shift -o<offset> mapfile >
shifted_mapfileddrescue -i -<offset>o0 -s /<size>dev/sda hdimage shifted_mapfile
Ejemplo 8: Expanda hdimage para copiar toda la unidad en /dev/sda sin duplicar la partición copiada previamente en /dev/sda1 después de guardar una partición en /dev/sda1 en el archivo. Solución: renombrar el archivo map, copiar los datos de sda1 a su ubicación final en hdimage, y luego leer los datos restantes de /dev/sda. Debes conocer el offset de la partición sda1 en la unidad sda y el tamaño de sda1.
ddrescue /dev/sda1 hdimage mapfile # rescue partition
ddrescuelog --shift -o<offset> mapfile > shifted_mapfile
ddrescue --same-file -o<offset> -s<size> --reverse hdimage hdimage
ddrescue /dev/sda hdimage shifted_mapfile # rescatar el resto del disco
Parte 5. Uso de Ddrescue para recuperar datos en Ubuntu - Guía completo
Paso 1. Inicie un terminal de línea de comandos e identifique la ruta del dispositivo al disco duro o partición que desea clonar. Puedes hacerlo con herramientas como lsblk, fdisk, etc.
$ lsblk
Paso 2. La partición se copiará en un archivo de imagen utilizando la siguiente sintaxis de comando. En el ejemplo de abajo, estamos usando /dev/sdX, pero podrías sustituirlo fácilmente por tu partición o dispositivo. El contenido se guardará en un archivo backup.img.
$ sudo ddrescue -d /dev/sdX backup.img backup.logfile
Nota: La opción -d indica a ddrescue que omita la caché del kernel y acceda directamente al disco.
Paso 3. Tras el intento inicial descrito anteriormente, añada la opción -r si desea intentar recuperar datos de un disco dañado. Le dice a ddrescue que reintente los sectores defectuosos para recuperar tantos datos como sea posible. Después de la opción, puede especificar el número de reintentos.
$ sudo ddrescue -d -r3 /dev/sdX backup.img backup.logfile
Paso 4. El nuevo archivo de imagen se copiará en otro disco o partición. Para ello, podemos utilizar el comando dd.
$ sudo dd if=backup.img of=/dev/sdX
Como alternativa, utilice el comando ddrescue.
$ sudo ddrescue -f backup.img /dev/sdX clone.logfile
Nuestra salida se envía a un dispositivo de bloque en lugar de un archivo cuando usamos la opción -f.
Paso 5. Si desea clonar un disco o partición directamente a otro sin utilizar un archivo de imagen, utilice la siguiente sintaxis. En este ejemplo, estamos clonando la partición /dev/sdX1 a /dev/sdX2.
$ sudo ddrescue -d -f /dev/sdX1 /dev/sdX2 clone.logfile
Deberías poder acceder al almacenamiento clonado después de completar los pasos anteriores y ver todos tus datos después de que ddrescue los haya recuperado con éxito.
Parte 6. Eliminar/desinstalar Ddresuce de Ubuntu
Una vez recuperados tus datos en Ubuntu usando Ddrescue, puedes desinstalarlo para liberar espacio. Aquí se explica cómo desinstalar ddrescue de Ubuntu 12.04 LTS. Utilizando el comando apt, puede desinstalar fácilmente este paquete del sistema operativo Linux.
Paso 1. El siguiente comando se ejecuta para eliminar ddrescue:
sudo apt-get eliminar ddrescue
Paso 2. Utilice el siguiente comando para desinstalar el paquete ddrescue y todas sus dependencias:
sudo apt-get remove --auto-remove ddrescue
Ddrescue y todas sus dependencias serán eliminadas usando este comando porque ya no son necesarias para el sistema.
Elimine ddrescue y todos los archivos de configuración por completo:
Paso 3. Dado que borra todos los archivos y datos de configuración, el siguiente comando debe utilizarse con precaución:
sudo apt-get purge ddrescue
Paso 4. También puede ejecutar este comando para eliminar todos los archivos de configuración y datos del paquete ddrescue. Los datos borrados no se pueden recuperar, así que utiliza este comando con cuidado.
sudo apt-get purge --auto-remove ddrescue
Parte 7. [Opcional] Instalación de Recoverit - Una herramienta GUI para la recuperación de datos de Linux
Utilizar GNU ddrescue para Linux puede resultar un poco abrumador para los usuarios con pocos conocimientos de la línea de comandos; afortunadamente, existe una gran alternativa: Wondershare Recoverit Linux Data Recovery. Se trata de una solución de recuperación de datos para sistemas operativos Linux con interfaz gráfica. Puedes utilizarlo también para recuperar archivos borrados o perdidos de dispositivos Linux en sólo unos clics.

Wondershare Recoverit - Su software de recuperación de Linux seguro y fiable
Se han realizado 5.481.435 descargas.
Restaura de forma eficaz, segura y completa documentos, imágenes, películas, música, correos electrónicos y más de 1000 tipos de archivos perdidos o eliminados.
Todas las distribuciones populares de Linux, como Ubuntu, Linux Mint, Debian, Fedora, Solus, OpenSuse, Manjaro, etc., son compatibles con él.
Asiste en más de 500 escenarios de pérdida de datos, como borrado, formateo de disco, fallo del sistema operativo, corte de energía, ataque de virus, partición perdida y muchos más.
Puede recuperar rápidamente datos de discos duros Linux utilizando la interfaz intuitiva de apuntar y hacer clic.
Funciona a través de una conexión remota. Puede recuperar datos perdidos incluso cuando su dispositivo Linux se bloquea.
Aquí tienes un tutorial paso a paso sobre cómo realizar la recuperación de datos con el Wondershare Recoverit Linux Recovery para que puedas recuperar tus archivos cruciales lo antes posible.
Paso 1. Seleccionar la recuperación de Linux
Instala Wondershare Recoverit después de descargarlo. Luego, ábralo y seleccione NAS y Linux como la primera opción, seguido de Recuperación de Linux.

Paso 2. Conectarse remotamente a un dispositivo Linux
Rellene los campos necesarios para establecer una conexión remota. Cuando termines, pulsa el botón Conectar. A continuación, Recoverit realizará una búsqueda automática de los archivos perdidos.

Paso 3. Recuperación de archivos y guardado de datos
El volumen de datos escaneados determina la duración del proceso de escaneado, que puede verse en la barra inferior. Puede dejar de buscar cuando haya encontrado el archivo que desea recuperar.

Después de la exploración, puede examinar los archivos para asegurarse de que contienen los datos que desea recuperar. Selecciona Recuperar.

Sigue las instrucciones del software para guardar los archivos recuperados. Pulsa Recuperar para obtener los datos restaurados. Seleccione una ruta de archivo distinta de la última perdida.

Para Windows Vista/7/8/10/11
Para macOS X 10.10 - macOS 13
Resumen
Esta tutorial presenta GNU ddrescue para Linux. También aprenderá a instalar la herramienta GNU ddrescue en las principales distribuciones de Linux y a utilizarla para la recuperación. Asimismo, también ofrecemos la mejor alternativa a GNU ddrescue, que es el Wondershare Recoverit Linux Recovery para que las operaciones de recuperación sean más sencillas y menos molestas.