И так ситуация: у вас случайно были удалены очень нужные файлы на разделе с ext3.Что же делать? Вешаццо? Стреляццо?
Некоторые несознательные личности, конечно, скажут, мол, болт с ними, с файлами, и да порнуха та, была не так уж и нужна, и что музон с киношками можно накачать по новой. Соглашусь, но если в трэш улетели документы и отчеты (архивы, проекты и т.д. и т.п.), которые, делались не один день и их, к примеру, завтра утром, нужно предъявить шефу/заказчику/преподу, то это повод для покупки вазелина с ромашковым запахом.

Но вот утих первый взрыв горя, и когда, вырванный в порыве отчаянья, клок шевелюры будет упорно отказываться сесть на старое место, вдруг внезапно осенит: «э… а чо, нельзя шо ли как нидь тово их… назад?!»

Конечно можно, этим сейчас и займёмся :)

Сразу скажу, что восстановление удаленных файлов дело вероятностное, и чем больше времени пройдёт от момента стирания до попытки восстановления, тем менее вероятно получить назад свои файлики в целости.

Итак, для примера, пусть на машине будет раздел /dev/sda2 с файловой системой ext3, на которой нужно восстановить удаленные файлы.

Кстати, если затрудняетесь на каком именно разделе восстанавливать файлы, то будет не лишним заглянуть в /etc/fstab , в котором описываются используемые файловые системы и точки их подключения, а также посмотреть в консоли вывод команды df -kh

Устанавливаем пакет ext3grep, и под рутом, в консоли, начинаем работу:

  • Чтобы восстановить конкретный удаленный файл /home/user/topsecret/1.txt на разделе /dev/sda2

    ext3grep /dev/sda2 –restore-file home/user/topsecret/1.txt

  • Для восстановления папки /home/user/topsecret/ в разделе /dev/sda2:

    ext3grep /dev/sda2 –restore-file /home/user/topsecret/

  • Если точный путь до удаленного имущества не известен, то можно получить дамп путей стёртых файлов/папок и работать по нему, восстанавливая, как уже описано выше:

    ext3grep /backup/sda2 –dump-names

  • Если нет времени на получение дампа путей, можно запустить восстановление для всего раздела.

    ext3grep /backup/sda2 –restore-all

    Однако, в этом случае утилита ext3grep попытается восстановить всё, что сможет, а нам нужно только то, что было стёрто, предположим, не позднее двух часов назад. Для этого в программе есть специальные фильтры, позволяющие четко определить временные рамки для обработки стертых файлов.
    Фильтр –before определяет, что обрабатываться будут только файлы и папки стёртые до указанной даты и времени, а фильтр –after, что обрабатываться будут только файлы и папки удаленные после указанной даты и времени.
    Дата и время для этих фильтров указывается в формате UNIX-времени (UNIX-time)
    Переконвертировать нужное время в Unix-time можно в онлайн Unix-time конверторе или прямо в консоли:

    date -d «2009-09-11 00:45:00-00:00″ +%s

    Предположим, что два часа назад, когда у нас данные еще не были удалены, были справедливы указанные выше дата и время, в Unix-time это значение 1252629900 , его то и подставим в фильтр –after

    Итак, чтобы запустить восстановление содержимого раздела /backup/sda2 , стертого не более чем два часа назад, пишем:

    ext3grep /backup/sda2 –restore-all –after=1252629900

Все восстановленные файлы будут записаны в папку RESTORED_FILES, находящуюся в «хомяке».

Вот и всё, этой информации вполне хватит для оперативного восстановления удаленных файлов, а для более детального ознакомления с утилитой ext3grep могу сказать одно: man ext3grep :)

Related Blogs