Sometimes device can't boot at all because of these badblocks here:
[ 1.486708] Bad eraseblock 5 at 0x0000000a0000
[ 1.531196] Bad eraseblock 553 at 0x000004520000
[ 1.534826] Bad eraseblock 559 at 0x0000045e0000
[ 1.573070] Bad eraseblock 1014 at 0x000007ec0000
Can we do something about these?
What I would do is pull the flash chip (make sure this the same as your device), make an image of it with something like ddrescue, order another chip with the same product number and replace it. This does require soldering equipment, flash reader and fair soldering skills. So if you don't have these, take the device to your local repair shop (make sure they can fix electronics). The most important part: stop using the device. Further use may reduce the chance of successful data recovery.
I brought mine to the recycling center.
Seriously: I had one a couple of years ago. IIRC, it was already UBI-based which should handle bad blocks. You can try to re-flash the firmware to get them excluded, but I don't remember if I was successful with this. Since I moved away from DSL, I got a faster router by that time.
I am thinking maybe move mtdparts in such a way it avoids those badblocks. But how? I have 128MB flash which is plentiful.
Probably there is a way to mark blocks as bad and avoid using them, but I don't know how. Also once flash cells start to go bad, typically this will continue with other cells. So personally as a computer technician, whenever I see 1 bad block, that's enough reason for me to recommend drive replacement, as anything else is a waste of time, as far as I'm concerned. In this case, since the flash storage is built into the motherboard, it's either replacing the drive or replacing the whole device.
1 Like