Я рекомендую. — Обзор программ восстановления удаленных данных в linux
Вот эти программы я буду по очереди натравливать на свою флешку, для того чтобы определить кто же из них лучший (Список программ скорее всего не полный, возможно есть еще добрый десяток программ для восстановления данных, но вот то, что нашел):
Foremost
Scalpel
The Sleuth Kit
Magicrescue
NtfsUnDelete
Photorec
RecoverJpeg
ntfsundelete из пакета ntfstools
Раз уж ФС у нас NTFS, то и первой программой которую мы будем проверять будет ntfsundelete. Восстанавливать, как видно из названия, она может только с NTFS.
Читам man ntfsundelete, и пытаемся получить список файлов доступных для восстановления (Флешка должна быть отмонтированна):
# ntfsundelete -fs /dev/sdh
Получаем список файлов (у меня получилось 1231, то есть все те файлы которые я и удалил):
Inode Flags %age Date Size Filename
-------------------------------
28 FN. 100% 2009-11-29 50527456 dotnetfx35.exe
29 FN. 100% 2009-11-29 8012905 DriverGenius.exe
...
1464 FN. 100% 2010-01-015 462 foremost-1.4-config-location.path
1465 FN. 100% 2010-01-015 52660 foremost-1.5.6.tar.gz
1466 FN. 100% 2010-01-015 52600 foremot-1.5.60.tar.gz
1467 FR. 100% 2010-01-015 358 foremost-makefile.diff
1468 FN. 100% 2010-01-015 923 foremost.tar.gz
1469 FN. 100% 2010-01-015 1120 PKGBUILD
1470 °F.! 0% 1970-01-01 0
1471 °F.! 0% 1970-01-01 0
Files with potentially recoverable content: 1231
Получили табличку с полутора тысячами строк. Теперь по порядку. В первой колонке у нас уникальный номер каждого файла (потребуется для восстановления), во второй набор флагов, в третей качество файла, в четвертой дата создания файла, в пятой размер в байтах, ну и в шестой имя этого самого файла.
Поэксперементировав с ключами к ntfsundelete можно найти файлы по расширению или по части имени файла (ключ -m):
# ntfsundelete -fsm «*.ods» /dev/sdh
или, найти только те файлы которые были удалены 2 дня назад (ключ -t):
# ntfsundelete -fst 2d /dev/sdh
ключ -f означает force, ключ -s == -scan
чтобы восстановить файлы нужно вместо -s писать -u (undelete)
-d указать куда восстанавливать, -i файл с каким inode восстанавливать.
Например:
# ntfsundelete -fu -i 29 -d output/ /dev/sdh
восстановит файл DriverGenius.exe в папку output/ , а:
# ntfsundelete -fum «*» —o output /dev/sdh
восстановит все файлы в папку output/
в третей колонке таблицы можно увидеть состояние файла (измеряется в процентах), если 100% то значит файл восстановить можно, если 0% то файл утерян и восстановить его нельзя (как правило если файл поврежден на 5%, то восстанавливать его уже нет смысла).
# ntfsundelete -fsp 100 /dev/sdh
Найдет все файлы которые гарантированно (100%) можно восстановить.
Если вдруг нужно восстановить удаленные данные с NTFS раздела, то лучше использовать именно ее, если же ФС у Вас отлична от NTSF то лучше всего использовать The Sleuth Kit.
The Sleuth Kit
The Sleuth Kit — это набор программ по восстановлению данных (fls, icat, ffind, ifind, mmls, fsstat, etc.), появляющихся при установке пакета sleuthkit. Чем-то очень напоминает вышеописанный ntfsundelete, но в отличии от него, может работать не только с NTFS разделами. Поддерживаемые файловые системы: NTFS, FAT, UFS1, UFS2, FFS, Ext2, Ext3 и ISO 9660.
Как и в прошлом примере, попытаемся получить список файлов доступных для восстановления, это можно сделать воспользовавшись программой fls(рекомендую прочитать man fls):
# fls -rd /dev/sdh
Ключ -r нужен для рекурсивного поиска по директориям (без ключа появится только список файлов и директорий в корне), -d покажет только удаленные файлы (Если запустить без этого ключа, то покажет еще и те файлы которые не были удалены, удаленные отмечены звездочкой). Выведет следующий список:
Получилось 1465 строк (1231 файл + 204 директории + 30 файлов с альтернативными потоками NTFS;))
Чтобы восстановить файл есть утилита icat(man icat):
# icat -r /dev/sdh1 28-128-4 > dotnetfx35.exe
Остальные программы из этого пакета служат для определения файловой системы, поиска inode’ов, и др. про них можете прочитать в соответствующих манах.Эти две программы нам помогут только в том случае если жива ФС и таблица файлов. Если же она повреждена или устройство отформатировано, то помогут нам другие программы, о них ниже.
Попробуем убить фс. Как и в прошлом обзоре нам поможет все тот же dd и видео-файл в 40 Мег.
# dd if=MOV04000.MPG of=/dev/sdh bs=8M
Теперь в дело пойдут программы анализирующие структуру устройства, и ищущие файлы по их сигнатурам. Первой в нашем списке будет recoverjpeg.Recoverjpeg
recoverjprg — программа созданная специально для того, чтобы восстанавливать jpeg’и больше ничего. Запускается командой # recoverjpeg /dev/sdh. Со своей работой не справилась. Восстановила 128 jpeg’ов из 254 удаленных (foremost см. дальше восстановил 254 файла) . Больше сказать о ней нечего.Foremost
В man foremost, в разделе AUTHORS написано следующее:Original Code written by Special Agent Kris Kendall and Special Agent Jesse Kornblum of the United States Air Force Office of Special Investigations. Modification by Nick Mikus a Research Associate at the Naval Postgraduate School Center for Information Systems Security Studies and Research. The modification of Foremost was part of a masters thesis at NPS.
Что означает, что программу писали два спецагента ВВС США из управления специальных расследований.Пробуем запустить:
# foremost /dev/sdh
Ждем где-то около 4 минут, пока программа отработает, и находим в том каталоге, из которого запустили эту программу, новую папку — output, в которой лежит файлик aduit.txt с отчетом о восстановленных файлах и кучу каталогов с восстановленными файлами, каждый тип файлов в своем каталоге. Имен, конечно же, нет, и каждый файл придется запускать и проверять вручную.Можно так же вручную указать директорию куда сохранять восстановленные файлы (ключ -o) и тип файлов которые нужно восстановить (ключ -t). Полный список поддерживаемых файлов можно найти в man foremost. Например.
# foremost -t doc -o /home/todeus/recovered/ /dev/sdh
Восстановит все файлы MS Word в папку recovered в домашней директории пользователя todeus.У меня эта программа смогла восстановить 1015 файлов включая тот самый mpg которым я «испортил» ФС.
P. S. : Директория куда происходит восстановление должна быть обязательно пустая, иначе процесс восстановления не начнется, либо она должна отсутствовать (Тогда папка создастся сама.)
Scalpel
Программа написанная на основе foremost версии 0.69 (актуальная версия foremost на момент написания статьи 1.5.6). По умолчанию не восстанавливает ничего, нужно отредактировать файл /etc/scalpel.conf и раскоментировать строки с нужными типами файлов. Запускаем:# scalpel /dev/sdh
И видим, что как и в случае с foremost, появилась директория scalpel-output, с отчетом внутри и кучей папок, в каждой из которых по типам файлов лежат файлы. Файлов восстановилось 1542. Ни один файл запустить или открыть не удалось.Photorec
Программу photorec можно найти в пакете TestDisk, поддерживает photorec довольно таки много различных форматов, полный их список можно найти здесь(Хоть в названии и написано что это Фото Рековер:), поддерживает он и другие отличные от фотографий форматы). запускаем:# photorec /dev/sdh
И видим, что восстановлен всего один файл. Тот самый mpg который мы записали на флэшку с помощью dd.Magicrescue
Так же восстанавливает файлы с диска или образа. Работает так:# magicrescue -r jpeg-jfif -d outputMR/ /dev/sdhВосстановило 227 JPG’ов.
Ключи:
-r то-же самое, что и -t в foremost, но список возможных форматов невелик (можно найти в /usr/share/magicrescue/recipes/)
-d папка для восстановленных файлов
Все восстановленные файлы сбрасывает в одну папку, что не удобно. Неудобно, так же, и то, что нужно обязательно указывать тип восстанавливаемого файла, т. е. все файлы сразу восстановить не получится (или придется извращаться со скриптами).
Выводы
В общем, по всему сказанному хочется сказать пару слов. Если вдруг вы что-то случайно удалили, или отформатировали, то всегда есть шанс это восстановить. Если вы устройство не форматировали и ФС жива, то нужно пользоваться либо ntfsundelete либо пакетом The Sleuth Kit, если ФС NTFS, то конечно же лучше ntfsundelete, оно просто удобнее, для других ФС — хорошо справляется The Sleuth Kit. Если же устройство форматировалось или раздел был поврежден, то я бы советовал выбирать foremost.P. S. : В foremost, scalpel и magicrescue можно добавлять свои форматы. в foremost — это файл /etc/foremost.conf, в scalpel — /etc/scalpel.conf, magicrescue — каталог /usr/share/magicrescue/recipes/ в котором отдельными файлами лежат доступные форматы. Как добавить новый формат для восстановления, я думаю вы догадаетесь прочитав man, ну, а у кого не получится, спрашивайте;)
Кросспост с todeus.ru