Add spinlock driver_lock to protect queue_count, working_queue and request_queue from concurrent access between IOCTL handler and block device request handler. Wrap all cross-context flag reads (stop_signal, data_drive_active, lockup_detected, return_zeros_on_error, io_scsi_only) with READ_ONCE and all writes with WRITE_ONCE to prevent compiler-mangled reads and tearing. These flags are accessed from both the IOCTL control path and the block device data path without an explicit lock. Protect queue counter resets in START command with the spinlock.
OpenSuperClone
A powerful data recovery utility for Linux with many advanced features based on Scott Dwyer's HDDSuperClone.
✨ Features • 💾 Installation • 📖 Documentation • ✏️ Changelog • 💵 Credits • 📄 License
✨ Features
- Advanced drive cloning capability akin to that of ddrescue
- Virtual Disk Mode for targeted data extraction
- Direct AHCI/IDE capability to circumvent OS drivers
- USB Relay Control for automatic power cycling of drives
- Script Engine for advanced interaction with drives
📋 Planned Changes
See the Roadmap for a list of planned changes.
💾 Installation
Pre-built DEB and RPM packages for OpenSuperClone can be found on the Release page.
Instructions for installing OpenSuperClone from source can be found on the Wiki.
Alternatively to installing OpenSuperClone, a Linux Live ISO containing the project is now provided by xak77.
📖 Documentation
Documentation for OpenSuperClone can be found on the Wiki. Note that the Wiki is currently a work-in-progress and incomplete.
✏️ Changelog
OpenSuperClone 2.5.1 (Work-In-Progress)
- OSCDriver 2.6.8: add support up to kernel 6.18.0 (thanks to piernov)
- Add ability to save and load recovery settings, and change default settings for program start
- OSCViewer: performance improvements and improved UI
OpenSuperClone 2.5
- Implemented DKMS for driver installation
- OSCDriver 2.6.6: add support up to kernel 6.11.0 (thanks to piernov)
- Disabling the USB Mass Storage driver now also disables the USB Attached SCSI driver
- Various UI improvements including tooltips for most controls and improved SMART, Analysis, and Identify views
- Added some more known SMART attributes and Identify flags
- Increased the maximum amount of retry runs from 8 to 1000 (useful for solid state recovery)
OpenSuperClone 2.4.1
- Fixed a bug where the UI labels would show bogus strings
OpenSuperClone 2.4
- Removal of licensing related code
- Implemented CMake as build system
- Switched from GTK2 to GTK3
- Replaced localization system with gettext
- OSCDriver 2.6.1: add support up to kernel 5.19.11 (thanks to piernov)
- Minor improvements to OSCViewer (color picker, minor graphical changes)
💵 Credits
Credit belongs to Scott Dwyer for his excellent work on HDDSuperClone, and piernov for his work on updating the kernel module.
This project makes use of the following libraries/programs:
- GLADE (https://glade.gnome.org/)
- GTK (https://www.gtk.org/)
- libconfig (https://hyperrealm.github.io/libconfig/)
- libintl (https://www.gnu.org/software/gettext/)
- libusb (https://libusb.info/)
- Font Awesome (https://fontawesome.com/)
📄 License
This software is licensed under the GPLv2.
