Recover overwritten or deleted data.
RecoverPy
RecoverPy is a powerful tool that leverages your system capabilities to recover lost files.
Unlike others, you can not only recover deleted files but also overwritten data.
Every block of your partition will be scanned. You can even find a string in binary files.
Demo
Installation
Dependencies
Mandatory: To list and search through your partitions, recoverpy uses grep
, dd
, and lsblk
commands. Although, if you're running a major Linux distrucition these tools should already be installed.
Optional: To display real time grep progress, you can install progress
.
To install all dependencies:
- Debian-like:
apt install grep coreutils util-linux progress
- Arch:
pacman -S grep coreutils util-linux progress
- Fedora:
dnf install grep coreutils util-linux progress
Run with pipx
You can directly run recoverpy with pipx in an isolated environment without installing it.
To install pipx, follow the official documentation.
To run recoverpy with pipx, simply run:
sudo pipx run recoverpy
Installation from pip
python3 -m pip install recoverpy
Installation from AUR
yay -S python-recoverpy
Usage
python3 -m recoverpy
-
Select the system partition in which your file was. If you are out of luck, you can alternatively search in your home partition, maybe your IDE, text editor, etc. made a backup at some point.
-
Type a text string to search. See tips below for better results.
-
Start search, Results will appear in the left-hand box.
-
Select a result.
-
Once you have found your precious, select
Open
. -
You can now either save this block individually or explore neighboring blocks for the remaining parts of the file. You could then save it all in one file.
Tips
- Always do backups! Yes, maybe too late...
- Unmount your partition before you do anything! Although you can search with your partition still mounted, it is highly recommended to unmount your partition to avoid any alteration to your file.
Regarding the searched string:
- Be concise, find something that could be unique to your file.
- Stay simple, your string is escaped but exotic characters may affect your results.
- Try to remember the last edit you have made to your file.
When you have found your file:
- You might see multiple results. Your system often use different partion blocks to save successive versions of a file. Make sure you've found the last version.
- Try exploring neighboring blocks to be sure to save your whole file.
Contributing
Thank you for considering contributing to RecoverPy. Any request, bug report or PR are welcome. Please read the contributing guide.