1. predrečník jasne napísal, že používa kombináciu badblocks+porovnanie SMART counterov pred/po
2. disk môže realokovať až pri zápise. Pri čítaní, ak ani po interných retry cykloch nesedí CRC sektora, môže akurát tak vrátiť chybu (a označiť si sektor ako "pending"). Badblocks sa dá celkom úspešne použiť na dump zoznamu LBA sektorov, kde disk vrátil nejakú chybu. Následne sa dá napr. skúsiť prepísať ich pôvodným obsahom (resp. teda tým, čo z neho zostalo), na spôsob takéhoto RW refreshu:
dd if=/dev/sdX of=/dev/sdX bs=512 iflag=direct oflag=direct conv=noerror seek=LBA skip=LBA count=C
Zápis na ten "pending" sektor sa vtedy buď podarí (a vyradí ho z pending listu), alebo nepodarí a realokuje ho.
Prípadne sa ten RW refresh dá preventívne spustiť na celý disk (ak je záloha, tak kľudne aj s rádovo väčším bs - tak, aby napr. trebárs sekundu bez seekovania lineárne čítal a následne seekol späť a obsah zapísal). Samozrejme vtedy bez seek/skip/count parametrov.