/DataRecovery

A GTK4/Libadwaita application for data recovery using ddrescue and PhotoRec

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

DataRecovery

Alpha Release - Feature complete but needs wider testing across different distributions.

A GTK4/Libadwaita application for data recovery using ddrescue and PhotoRec. Recovers all files (not just deleted ones) from storage devices or disk images, organises them by file type, and optionally removes duplicates using rdfind.

Important: Requires significant disk space as images are created first, then files recovered from those images.

Process

  1. Source Selection: Choose a storage device or existing disk image file
  2. Destination Selection: Choose where recovered files will be saved
  3. Mount Safety: Automatically detects and handles mounted partitions to prevent corruption
  4. Imaging (devices only): Creates disk images using 4 passes of ddrescue (details below)
  5. File Recovery: PhotoRec recovers files from the disk images
  6. File Organization: Recovered files sorted by extension into organized folders

User Options

  • Save Images
  • Save Logs
  • Remove Duplicates
  • Keep Corrupted Files

ddrescue 4-Pass Details

  1. Pass 1 - Fast Copy: Quick sequential read without retries to capture easily readable data
  2. Pass 2 - Direct Access Retry: Up to 3 retry attempts using direct I/O to bypass system caching
  3. Pass 3 - Reverse Retry: Read failed sectors in reverse order to minimise mechanical stress
  4. Pass 4 - Final Scraping: Final attempt with scraping mode for stubborn sectors

Installation

From Source (meson)

Dependencies:

openSUSE:

sudo zypper install git meson ninja gtk4-devel libadwaita-devel glib2-devel python3-gobject python3-gobject-devel desktop-file-utils gnu_ddrescue photorec rdfind udisks2 polkit

Build and Install:

git clone https://github.com/koxt2/datarecovery.git
cd datarecovery
meson setup builddir
meson compile -C builddir
sudo mkdir -p /usr/local/share/glib-2.0/schemas
sudo meson install -C builddir

Packages

Packages can be can be downloaded openSUSE Build Service (home:koxt2:datarecovery)

Acknowledgments

GTK4/Libadwaita - Modern Linux desktop integration (link)

UDisks2 - Reliable device management interface (link)

GNU ddrescue - Core imaging technology (link)

PhotoRec/TestDisk - File recovery capabilities (link)

rdfind - Used for duplicate file detection and removal (link)

License

GPL-2.0-or-later - See LICENSE file for full license text.