Cómo recuperar archivos borrados en Linux: guía práctica con las mejores herramientas

El problema de borrar archivos en Linux: no hay papelera de reciclaje real

En Windows borras algo y va a la papelera. Puedes sacarlo cuando quieras. En Linux, si ejecutas un rm desde terminal, el archivo desaparece. No hay red de seguridad. No hay «¿Está seguro?». Se fue. Y si usas rm -rf por accidente en el directorio equivocado… bueno, todos conocemos a alguien que ha pasado por eso. O lo hemos sido nosotros mismos a las tres de la madrugada con el servidor de producción.

La buena noticia es que «borrar» en Linux no significa que los datos se destruyan inmediatamente. Lo que hace el sistema es eliminar la referencia al archivo en el journal del sistema de archivos y marcar esos bloques como disponibles. Mientras nada nuevo los sobrescriba, los datos siguen ahí, intactos, esperando a que alguien los busque. Y ahí es donde entran las herramientas que vamos a ver.

Eso sí, hay una regla de oro que necesito que te grabes a fuego: cuanto menos uses el disco después de borrar el archivo, más posibilidades tienes de recuperarlo. Si puedes, desmonta la partición afectada inmediatamente. Si es la partición raíz, arranca desde un USB live. Cada segundo que el sistema sigue escribiendo en ese disco, se reduce la probabilidad de éxito.

Método 1: Extundelete (la opción más fiable para ext3/ext4)

Si tuviera que elegir una sola herramienta para recuperar archivos borrados en particiones ext3 y ext4 (que es el 95% de las instalaciones Linux actuales), sería Extundelete. No tiene interfaz gráfica, no es bonita, pero hace su trabajo de forma fiable y lleva años siendo la referencia en la comunidad.

Instalación

En distribuciones basadas en Debian (Ubuntu, Mint, Pop!_OS):

sudo apt install extundelete

En Fedora y derivados:

sudo dnf install extundelete

En Arch:

sudo pacman -S extundelete

Si no está en los repositorios de tu distro (pasa con algunas rolling release), puedes compilarlo desde el código fuente disponible en SourceForge. Necesitarás e2fsprogs-dev y las herramientas de compilación habituales (build-essential).

Uso paso a paso

Paso 1 — Identifica la partición. Necesitas saber en qué partición estaba el archivo borrado. Usa lsblk o df -h para ver los puntos de montaje:

lsblk -f

Verás algo como /dev/sda2 montado en /home. Si el archivo estaba en tu carpeta personal, esa es la partición objetivo.

Paso 2 — Desmonta la partición. Esto es crítico. Si no la desmontas, cada operación del sistema puede sobrescribir los bloques que necesitas:

sudo umount /dev/sda2

Si es la partición raíz y no puedes desmontarla, arranca desde un USB live con cualquier distribución (Ubuntu Live funciona perfecto) y trabaja desde ahí.

Paso 3 — Recupera el archivo. Si sabes el nombre exacto:

sudo extundelete /dev/sda2 --restore-file ruta/al/archivo.txt

La ruta es relativa a la raíz de la partición, no absoluta. Si el archivo estaba en /home/usuario/documentos/informe.pdf y la partición montada en /home, la ruta sería usuario/documentos/informe.pdf.

Si no recuerdas el nombre exacto o quieres recuperar todo un directorio:

sudo extundelete /dev/sda2 --restore-directory usuario/documentos/

Y si la situación es desesperada y quieres intentar recuperar todo lo que se pueda:

sudo extundelete /dev/sda2 --restore-all

Los archivos recuperados aparecen en una carpeta llamada RECOVERED_FILES en el directorio desde donde ejecutaste el comando. Importante: asegúrate de que ese directorio está en un disco DIFERENTE al que estás recuperando. Si escribes los archivos recuperados en la misma partición, podrías sobrescribir otros datos que aún no has rescatado.

¿Cuándo funciona y cuándo no?

Extundelete funciona muy bien cuando el borrado es reciente (minutos u horas) y la partición no ha tenido mucha actividad desde entonces. Si boraste un archivo hace tres días y el sistema ha seguido funcionando con normalidad, las posibilidades bajan bastante. También tiene problemas con archivos muy fragmentados o con particiones que tienen journaling muy agresivo.

Método 2: Ext4magic (para recuperaciones basadas en tiempo)

Ext4magic es una alternativa interesante a Extundelete que tiene una particularidad muy útil: permite buscar archivos borrados en un rango temporal específico. Si sabes que borraste algo «hace una hora» o «ayer entre las 14:00 y las 16:00», ext4magic puede acotar la búsqueda.

Instalación

sudo apt install ext4magic        # Debian/Ubuntu
sudo dnf install ext4magic         # Fedora

En algunas distribuciones no está en los repos oficiales. En ese caso toca compilar desde fuente (disponible en GitHub). Necesita libext2fs-dev, libbz2-dev y zlib1g-dev.

Uso práctico

Recuperar archivos borrados en las últimas 24 horas:

sudo ext4magic /dev/sda2 -r -a $(date -d "-24 hours" +%s)

El parámetro -a indica «después de esta fecha» en formato Unix timestamp. -r activa el modo de recuperación recursiva.

Para un rango más específico:

sudo ext4magic /dev/sda2 -r -a $(date -d "2026-04-01 14:00" +%s) -b $(date -d "2026-04-01 18:00" +%s)

Si la recuperación normal no da resultados, ext4magic tiene un modo «journal» que busca en los registros del journal ext4:

sudo ext4magic /dev/sda2 -rJ

Este modo es más lento pero puede encontrar archivos que la búsqueda estándar no detecta.

Método 3: TestDisk y PhotoRec (el plan B universal)

Si Extundelete y ext4magic no han funcionado, antes de rendirte prueba con la combinación TestDisk/PhotoRec. Ya hemos hablado de estas herramientas en otro artículo, pero merece la pena mencionar que PhotoRec funciona en Linux de forma nativa y, a diferencia de las dos anteriores, no depende del sistema de archivos.

PhotoRec hace file carving: busca firmas de archivos conocidos (cabeceras de JPG, PDF, DOCX, etc.) directamente en los sectores del disco, sin importar si la partición es ext4, NTFS, FAT32 o incluso si ya no tiene sistema de archivos. La contrapartida es que no recupera nombres ni estructura de carpetas — los archivos salen renombrados como f0001234.jpg.

sudo apt install testdisk       # PhotoRec viene incluido
sudo photorec /dev/sda2

PhotoRec te guiará por un asistente de texto donde eliges la partición, el tipo de sistema de archivos y la carpeta de destino. El proceso puede tardar bastante en discos grandes (horas en un disco de 2 TB), pero es sorprendentemente eficaz incluso en situaciones donde otras herramientas fallan.

Método 4: Foremost (carving para casos extremos)

Foremost es otra herramienta de file carving, originalmente desarrollada por la Oficina de Investigaciones Especiales de las Fuerzas Aéreas de Estados Unidos para análisis forense. Sí, suena excesivo para recuperar las fotos de tus vacaciones, pero funciona muy bien.

sudo apt install foremost
sudo foremost -t jpg,png,pdf,doc -i /dev/sda2 -o /media/disco_externo/recuperados/

El parámetro -t especifica los tipos de archivo a buscar (puedes usar all para todos). -i es el dispositivo de entrada y -o la carpeta de salida. De nuevo: la carpeta de salida debe estar en otro disco.

Foremost es algo más antiguo que PhotoRec y generalmente menos preciso en los resultados, pero en algunos escenarios concretos (especialmente con imágenes y documentos) da mejores resultados. Merece la pena probarlo si PhotoRec no ha encontrado lo que buscas.

Método 5: debugfs (para expertos con datos del journal)

Este método no es para cualquiera, pero si sabes moverte por las herramientas de bajo nivel de ext2/3/4, debugfs puede ser tu mejor aliado. Viene incluido con e2fsprogs, que ya está instalado en prácticamente cualquier distribución Linux.

sudo debugfs /dev/sda2

Dentro del shell de debugfs:

debugfs: lsdel

Esto lista los inodos borrados recientemente con su tamaño, fecha de borrado y número de bloques. Si identificas el inodo del archivo que buscas, puedes volcar su contenido:

debugfs: dump <12345> /media/externo/archivo_recuperado.pdf

Donde 12345 es el número del inodo. Este método requiere saber qué es un inodo y tener cierta práctica con herramientas de bajo nivel. Si el párrafo anterior te ha sonado a chino, es mejor que uses Extundelete.

El caso especial de Btrfs y ZFS

Si tu sistema usa Btrfs (cada vez más común en Fedora y openSUSE) o ZFS, tienes una ventaja enorme que mucha gente desconoce: los snapshots.

Btrfs hace snapshots automáticos en muchas distribuciones (especialmente si usas Timeshift o Snapper). Antes de lanzarte a usar herramientas de carving, comprueba si existe un snapshot anterior al borrado:

sudo btrfs subvolume list /
sudo snapper list

Si hay un snapshot reciente, puedes montar la versión anterior del sistema de archivos y copiar el archivo directamente:

sudo mount -o subvol=@/.snapshots/42/snapshot /mnt/snapshot
cp /mnt/snapshot/ruta/al/archivo.txt /home/usuario/

En ZFS la lógica es similar con zfs list -t snapshot y zfs rollback o zfs diff para localizar cambios. Si usas ZFS y no tienes snapshots automáticos configurados, párate ahora mismo y configúralos. En serio.

Para Btrfs sin snapshots, las herramientas clásicas como Extundelete no funcionan. Btrfs tiene una estructura interna completamente diferente a ext4. En ese caso, btrfs restore (incluido con btrfs-progs) es la opción nativa:

sudo btrfs restore /dev/sda2 /media/externo/recuperados/

La tabla de decisión rápida

Situación Herramienta recomendada Dificultad
Archivo borrado hace minutos en ext4 Extundelete Baja
Borrado reciente, sabes la hora aproximada Ext4magic con rango temporal Media
Borrado antiguo o partición con mucha actividad PhotoRec (file carving) Baja
Imágenes y documentos específicos Foremost Baja
Sabes el inodo del archivo debugfs Alta
Btrfs con snapshots Montar snapshot anterior Baja
Btrfs sin snapshots btrfs restore Media
Partición perdida completa TestDisk Media

Errores que he visto cometer (y que tú vas a evitar)

Escribir en el disco que estás recuperando

Ya lo he dicho antes, pero lo repito porque es el error número uno: si instalas la herramienta de recuperación en el mismo disco, ya estás sobrescribiendo datos. Si arrancas un USB live, descarga la herramienta en RAM o en el propio USB. Si copias los archivos recuperados al mismo disco, podrías estar destruyendo otros archivos que aún no has rescatado.

No desmontar la partición

El segundo error más común. Si intentas recuperar datos de una partición montada, el kernel puede decidir reutilizar esos bloques en cualquier momento. Desmonta primero, o arranca desde un medio externo. No hay atajos aquí.

Usar herramientas ext4 en otros sistemas de archivos

Extundelete y ext4magic solo funcionan con ext3 y ext4. Si tu partición es XFS, Btrfs, ReiserFS o cualquier otra cosa, necesitas herramientas específicas o file carving genérico (PhotoRec, Foremost). Puedes comprobar el sistema de archivos con:

sudo blkid /dev/sda2

Entrar en pánico y hacer cosas sin pensar

El peor enemigo de una recuperación de datos no es el borrado en sí — es la reacción precipitada. He visto gente que, en un intento de «arreglar» las cosas, ha formateado la partición, ha ejecutado fsck en una partición que debería haber dejado en paz, o ha reiniciado el servidor varias veces «a ver si aparece». Cada una de esas acciones reduce las posibilidades de recuperación. Si acabas de borrar algo importante: para, respira, piensa, y luego actúa.

Prevención: configura esto ahora y no vuelvas a sufrir

Ninguna herramienta de recuperación es tan fiable como un buen backup. Algunas medidas que recomiendo en cualquier sistema Linux:

  • Alias para rm: Añade alias rm='rm -i' a tu .bashrc. Te pedirá confirmación antes de borrar. Sí, es molesto. También lo es perder tus datos.
  • Usa trash-cli: Un paquete que implementa una papelera de reciclaje para la terminal. trash-put archivo.txt en lugar de rm. Recuperable con trash-restore.
  • Snapshots automáticos: Si usas Btrfs, configura Snapper o Timeshift. Si usas ext4, considera LVM snapshots.
  • Backups con rsync o Borg: Un cron que ejecute rsync a un disco externo o servidor remoto cada noche. Borg Backup si quieres deduplicación y cifrado.

Como dice el refrán en el mundo de la administración de sistemas: no hay dos tipos de personas — las que hacen backups y las que los van a necesitar. Solo hay uno: todos vamos a necesitarlos. La diferencia es si los tendremos o no cuando llegue el momento.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *