Поддерживаю komix'а - ddrescue.
К счастью, все современные утилиты форматируют "быстро", т.е. очищают только структуры данных файловой системы, а данные физически не уничтожаются. Утилиты, вроде ddrescue, игнорируют ФС, смотрят каждый сектор с такого-то по такой-то и копируют все данные, которые находят. Единственное, что не восстанавливаются имена файлов и расширения, но, поскольку Линукс при определении типа файла смотрит на тип МИМЕ, а не на расширение, то тут проблем нет.
Фирмы делают примерно то же самое, но они так же восстанавливают данные с поврежденных носителей. Тогда требуется физически восстановить носитель, и тут нужна "чистая комната", оборудование и прямые руки. Только и всего.