You can already find plenty of solutions to recover deleted files, but it can be a hassle to recover overwritten files. RecoverPy searches through every block of your partition to find your request.
Demo
Installation
RecoverPy is currently only available on Linux systems.
Dependancies
Mandatory: To list and search through your partitions, recoverpy uses grep
, dd
, and lsblk
commands.
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
Installation from pip
python3 -m pip install recoverpy
Usage
python3 -m recoverpy
You must have root access to use recoverpy.
If you are not logged as root use sudo recoverpy
or log in with su -
before execution.
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.
Note that searching a string in a whole partition may take a while. (see euphemism)
Default save path is /tmp/
, click on Settings to edit configuration.
Start search, Results will appear in the left-hand box.
Select a result to display the corresponding partition block content in the right-hand box.
Once you have found your precious, select Save
.
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 found your file:
- Use the option to explore neighboring blocks to make sure you do not miss some part of your file.