Repairing an USB-flash-drive

TL;DR: USB flash-drives can be repaired in Software.

I have broken quite a few USB-flash-drives in my life. It’s commonly not the file system but something in the nand-flash itself, caused by too many read/write-cycles, caused by compiling me gentoo system. BTRFS states these errors:


[30368.777688] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.778927] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.780173] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.781472] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.782803] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.784066] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.785463] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.786771] BTRFS: bad tree block start 18446744073709551615 63586304
[30368.788016] BTRFS: bad tree block start 18446744073709551615 63586304

Or:
Check tree block failed, want=6513782784, have=16055006018754333136
Check tree block failed, want=6513782784, have=16055006018754333136
Check tree block failed, want=6513786880, have=2383393514151126713
Check tree block failed, want=6513786880, have=2383393514151126713
Check tree block failed, want=6513790976, have=16055006018754333136
Check tree block failed, want=6513790976, have=16055006018754333136
Check tree block failed, want=6513803264, have=2383393514151126713
Check tree block failed, want=6513803264, have=2383393514151126713
Check tree block failed, want=6513807360, have=16055006018754333136
Check tree block failed, want=6513807360, have=16055006018754333136
Check tree block failed, want=6513811456, have=2383393514151126713
Check tree block failed, want=6513811456, have=2383393514151126713
Check tree block failed, want=6513815552, have=16055006018754333136
Check tree block failed, want=6513815552, have=16055006018754333136
Check tree block failed, want=6513823744, have=2694405405089572093
Check tree block failed, want=6513823744, have=2694405405089572093
Check tree block failed, want=6513827840, have=15760670549538196372
Check tree block failed, want=6513827840, have=15760670549538196372
Check tree block failed, want=6513844224, have=15760670549538196372
Check tree block failed, want=6513844224, have=15760670549538196372
Check tree block failed, want=6513897472, have=5778329707338269008
Check tree block failed, want=6513897472, have=5778329707338269008
Check tree block failed, want=6513901568, have=12676952824933969465
Check tree block failed, want=6513901568, have=12676952824933969465
Check tree block failed, want=6513905664, have=5778329707338269008
Check tree block failed, want=6513905664, have=5778329707338269008

Here is what i did to make my drives work again:
– Don’t try formating, dd or tampering physically. It doesn’t work if the flash itself is damaged

– open your drive and note the usb-controller-marking.
In my case, it is AU9660 and IS916.
image

– Search the web for things like “my_controller mp tool” and download a few. Those trusty russians will help you free of charge.

– Afterwards, try to make those tools recognize your flash drive.

– If it worked try a low level format. I also increased the reserved blocks as the drive is already predamaged.

AU6990 Interface

is916MPTool Interface

– Ehen asked for a password, try the 10 most common.

Leave Comment