My Linksys e8450 started to have bad messages in dmesg:
[ 109.493877] blk_update_request: I/O error, dev mtdblock2, sector 256 op 0x0:(READ) flags 0x84700 phys_seg 32 prio class 0
[ 109.505522] blk_update_request: I/O error, dev mtdblock2, sector 264 op 0x0:(READ) flags 0x84700 phys_seg 31 prio class 0
[ 109.517064] blk_update_request: I/O error, dev mtdblock2, sector 272 op 0x0:(READ) flags 0x84700 phys_seg 30 prio class 0
[ 109.528220] blk_update_request: I/O error, dev mtdblock2, sector 280 op 0x0:(READ) flags 0x84700 phys_seg 29 prio class 0
[ 109.539396] blk_update_request: I/O error, dev mtdblock2, sector 288 op 0x0:(READ) flags 0x84700 phys_seg 28 prio class 0
[ 109.550546] blk_update_request: I/O error, dev mtdblock2, sector 296 op 0x0:(READ) flags 0x84700 phys_seg 27 prio class 0
[ 109.561676] blk_update_request: I/O error, dev mtdblock2, sector 304 op 0x0:(READ) flags 0x84700 phys_seg 26 prio class 0
[ 109.572783] blk_update_request: I/O error, dev mtdblock2, sector 312 op 0x0:(READ) flags 0x84700 phys_seg 25 prio class 0
[ 109.583915] blk_update_request: I/O error, dev mtdblock2, sector 320 op 0x0:(READ) flags 0x84700 phys_seg 24 prio class 0
[ 109.595036] blk_update_request: I/O error, dev mtdblock2, sector 328 op 0x0:(READ) flags 0x84700 phys_seg 23 prio class 0
[ 109.614709] Buffer I/O error on dev mtdblock2, logical block 32, async page read
[ 109.622291] Buffer I/O error on dev mtdblock2, logical block 32, async page read
It may or may not be relevant, but there was an electricity brown-out earlier today.
I do have a backup of mtd2
, created when I followed the installation instructions, using the "full backup" method.
I have manually checked, and the first 128 KB of the backup does match the readable portion of mtdblock2
before the first error. The only other non-0000
and non-ffff
area in the original backup is very small, just 12 bytes:
0007fff0: ffff ffff e89f 80d4 9ec4 e89f 80d4 9ec3 ................
Is it possible/safe to use that backup to paper over the read error, by overwriting mtdblock2
with the backup? Or, what's the proper way to proceed?
EDIT: the backup successfully verifies:
root@OpenWrt:/tmp# mtd verify mtd2 /dev/mtd2
Verifying /dev/mtd2 against mtd2 ...
30a428094ece3fd77af06d4a59d8d598 - /dev/mtd2
30a428094ece3fd77af06d4a59d8d598 - mtd2
Success
So the error only affects /dev/mtdblock2
, not /dev/mtd2
.
EDIT 2: I remember that I created a similar topic for Netgear R7800. There, I was assured that it is not dying. Could anyone please reconfirm that, especially because the "bad" sectors are not in the very beginning, and because the whole saga with UBI mentioned rewriting something to get rid of ECC errors?