Восстановление информации в Linux
Введение
Для восстановления удалённых файлов в Линукс мы будем использовать утилиту Foremost, обычно эта утилита изначально не входит в состав дистрибутивов, так что придётся её скачать по ссылке выше и установить из исходников, либо поискать собраный пакет для вашего дистрибутива. Все вопросы по установке программы можно задать здесь - Установка и настройка Linux.
Общая информация
Изначально Foremost был разработан Отделом Специальных Исследований Военно-Воздушных сил и Информационным центром программы безопасности обучения и исследований (естественно в США). Когда военные с ней наигрались, утилита была представлена широкой публике. В этой статье я постараюсь описать одно очень полезное её свойство – восстановление удалённых файлов в Linux, функционал утилиты на этом не ограничивается и в умелых руках foremost представляет собой мощный инструмент по нацеленному поиску и распознаванию глубоко запрятанных файлов, но мы не об этом
Принцип работы foremost
Если совсем просто, то foremost сканирует и распознаёт файловую структуру известных ему типов файлов, распознав начало знакомого типа файла утилита пытается найти конец файла, собрать всё это воедино и записать на диск. Тип файла, который нужно восстановить, задаётся опцией “-t”, например:
foremost -t zip
Поддерживаемые типы файлов: avi, bmp, dll, doc, exe, gif, htm, jar, jpg, mbd, mov, mpg, pdf, png, ppt, rar, rif, sdw, sx, sxc, sxi, sxw, vis, wav, wmv, xls, zip. Также возможен запуск с опцией “-all”, в этом случае foremost будет искать все поддерживаемые типы файлов. Другие возможные опции можно посмотреть, набрав в терминале
man foremost
Хочу сразу предупредить о паре особенностей этой утилиты – во-первых, foremost должен быть запущен НЕ с того раздела диска, с которого собрались восстанавливать файлы, в приципе это не проблема, если директория /home у Вас выделена в отдельный раздел, а вот если /root и /home у вас на общем разделе, то придётся запускать foremost с Live-CD или флешки(foremost присутствует на некоторых Live-CD, а как создать из диска загрузочную флешку можно почитать в этой статье - Установка Linux на флешку. Второй момент - восстанавливаемые файлы должны записываться на раздел отличный от того, с которого они восстанавливаются(понятно? ). Ну и в третьих, при восстановлении имена файлов не сохраняются.
Ниже предлагаю рассмотреть работу foremost на конкретном примере.
Подготовка к сканированию
Чтобы несколько разнообразить эксперимент, файлы я решил восстанавливать на карту памяти. Для этого надо отформатировать её в файловую систему EXT3, делать это нужно, когда карта НЕ смонтирована. Для начала форматирования вводим в терминале с правами суперпользователя(root):
mkfs /dev/sdc1, где /dev/sdc1 – ваша карта памяти или флешка
Примерный вывод при положительном исходе:
# mkfs /dev/sdc1
mke2fs 1.41.1 (01-Sep-2008)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
122880 inodes, 490116 blocks
24505 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
60 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
После того, как форматирование завершено нужно вытащить карту, вставить снова и примонтировать(если этого не делается автоматически). Если всё прошло успешно, то на карте памяти появится директория “lost+found”.
Запуск сканирования foremost
Для начала сканирования и поиска удаленных файлов вводим в консоли с правами суперпользователя:
cd /
foremost -v -T -t jpg -i /dev/sda8 -o /media/disk/disk
где
-v – выводить информацию о прогрессе во время сканирования
-Т – проставить время в названии директории для восстановленных файлов
-t jpg,xls – искать и восстанавливать только файлы типа *jpg (можно перечислять несколько типов файлов через запятую)
-i /dev/sda8/ - раздел винчестера, с которого нужно провести восстановление данных
-o /media/disk/disk – здесь /media/disk/disk это директория на карте памяти в которую должны восстанавливаться файлы.
Примечание: если хотите восстановить файлы Office необходимо указывать "ole" как значение типа файла(-t ole)
Ниже скриншот работы утилиты:
Папка с восстановленными файлами(обратите внимание, благодаря опции -T при запуске сканирования, в название директории добавлено время начала работы программы):
В выходной директории, по завершении работы foremost, вы найдёте папки с названиями искомых типов файлов и текстовый файл с сохраненным логом программы.
Заключение
Собственно сканирование раздела размером 30гб у меня заняло порядка получаса, на выходе я получил 61020 *jpg файлов(чуть больше 1гб), большая часть из них - временные файлы интернета, но есть, естественно, и вручную удалённые мной файлы.
Все вопросы связанные с установкой и настройкой дистрибутивов Linux обсуждаются здесь - Linux. Вопросы и ответы