Вот собственно мы и подошли к главному, принципу работы программ восстановления файлов. Он довольно прост, программа сканирует кластер или группу кластеров и восстанавливает затёртую информацию.
Вообщето это не тот алгоритм. Сканирование кластеров на выявление цепочек - это другое.
Ты забыл сказать, что при удалении файла еще запись о нем в файловой системе, в каталоге файлов, помечается как удаленная, однако там остаются все его параметры - начальный кластер, размер и т.п.
Поэтому программы просто сканируют файловую систему на наличие "стертых" записей в каталоге. А при запросе на восстановление берут оттуда начальный кластер и восстанавливают всю цепочку. Информация об имени файла и атрибутах в этом случае не теряется, если не затерта запись в каталоге ФС.
А уж если поврежден каталог ФС, тогда действительно кластеры просто тупо сканируются. Причем, поскольку информация об имени файла хранится в каталоге ФС, то имена не восстанавливаются в этом случае. Обычно программы восстановления сканируют заголовок восстановленного файла для определения формата (exe это, или dll, или, может быть, mp3) и обзывают его соответственно, например FIL4657.MP3
ЗЫ. Еще есть неплохая прога Easy Recovery, которая умеет анформатить диски (есесно те, которые были не физически отформатированы, а только логически), восстанавливать стертые файлы при отсутствии повреждений ФС и восстанавливать стертые файлы по цепочкам кластеров, если каталога ФС уже нет.
+ умеет восстанавливать архивы, документы ms word и еще много чего =)