>>Меня однажды в похожей ситуации выручил старый добрый dd
>
>Можно немного подробнее? Исходим из того, что файл испорчен не целиком, а только какие-то блоки. Нужна команда вроде такой:
dd if=/путь/к/файлу of=/куда/копировать bs=<размер блока> conv=sync,noerror
Размер блока можно взять 2048, так во FreeBSD Handbook'е рекомендуется для копирования CD, чтоб наверняка. Можно взять и побольше, тогда копирование пойдет быстрее.
Опция noerror заставит программу плевать на ошибки копирования, а опция sync заставит ее заполнять сбойные блоки нулями, без этой опции такие блоки будут просто выбрасываться, что в нашем случае нехорошо.
А вообще - man dd - там все хорошо расписано.