You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Adler Neves 0abd62ea2e fix: docs: add license file 3 months ago
src Initial commit 3 months ago
.gitignore Initial commit 3 months ago
Cargo.lock Initial commit 3 months ago
Cargo.toml Initial commit 3 months ago
LICENSE fix: docs: add license file 3 months ago
README.md fix: docs: Grammar and spelling 3 months ago

README.md

BTRFS I/O Error Deleter

The problem

I've got a problem: my computer froze while moving a BTRFS partition.

Scrubbing did not fix my problem.

My scenario:

  • 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.

Observed behavior

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.

Existing solutions

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.

My solution

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.

Shortcomings

This code doesn't handle corrupted metadata. (yet)

License

MIT