||1 year ago|
|src||1 year ago|
|.gitignore||1 year ago|
|Cargo.lock||1 year ago|
|Cargo.toml||1 year ago|
|LICENSE||1 year ago|
|README.md||1 year ago|
BTRFS I/O Error Deleter
I've got a problem: my computer froze while moving a BTRFS partition.
Scrubbing did not fix my problem.
- Metadata: RAID1C4
- System: RAID1C4
- Data: Single
- Disks: 4
Scrubbing would not be able to fix my problem.
I knew files were already lost, despite them showing up in file manager with cached thumbnails.
Opening files for reading was not a problem, but reading a block with mismatching CSUM resulted in an I/O Error (OS Error code 5). All the times.
To remove those references to a content that doesn't exist anymore, ArchWiki, SuperUser, and SuperUser suggested scrubbing, then checking kernel logs (that doesn't include all affected files), and, finally, removing each file.
Running as many scrubs as needed over 2TB data on 80MB/s (at best conditions) hard drives (not SSDs) would take... like... "forever". I don't have such a humongous amount of time.
After scrubbing once after the disaster and realizing you have unrepairable data on disk, you run this program.
It recursively lists files in a directory, opens and reads each one of them to the end. All files that produce an OS Error with code 5 will be deleted (as its data isn't there anymore).
You need to run this only once.
This code doesn't handle corrupted metadata. (yet)