Gostaria de arrancar a partir de um CD Linux ao vivo (como Recovery is Possible Linux) e, em seguida, verificar o HD usando "badblocks", bem como "smartctl". Esteja avisado: se você encontrar mais do que alguns (ou mesmo apenas um) setor ruim no HD, a melhor coisa que você pode fazer é descartá-lo, já que está prestes a morrer.
Para ter mais certeza, use "smartctl" e marque a variável "Reallocated sector count". Se tiver um número significativamente alto (nas centenas) e houver setores defeituosos, jogue o disco.