случилась тут неприятность — часть секторов на жестком диске перестали читаться. Прогнал badblocks, определил их номера, перезаписал с помощью dd. Вроде диск «ожил» (т.е. в SMART Current_Pending_Sector обнулился).
На всякий пожарный захотелось весь диск перечитать и переписать заново. И чего-то гугл молчит на тему. Т.е. что, задача настолько нестандартная, что проще самому написать скрипт, который блоками по, скажем, 10 мегабайт, читает диск и пишет их назад?