И так ситуация: у вас случайно были удалены очень нужные файлы на разделе с 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 /dev/sda2 --dump-names

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

ext3grep /dev/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 :)