IT, Записи

Как восстановить удалённый файл в Linux

АУЕ

Использование Scalpel

Scalpel – это программа с открытым исходным кодом для восстановления файлов используя базу данных заголовков, колонтитулов. Может восстанавливать с образов дисков или устройств с сырыми блоками, заголовки и колонтитулы устанавливаются пользователем. Программа используется не только для восстановления файлов, но и цифровых криминалистических исследований.

Установка Scalpel в Ubuntu, Linux Mint и Debian

Откройте терминал и скопируйте в него команду:

1sudo apt-get install scalpel

После завершения установки scalpel, вам нужно найти файл scalpel.conf:

1locate scalpel.conf

Обычно он размещается в /etc/scalpel/scalpel.conf или /etc/scalpel.conf. Откройте этот файл текстовым редактором, вы увидите, что все строки закомментированы (начинаются с #). Т.е. перед запуском scalpel вам нужно раскомментировать форматы файлов, которые вы хотите восстановить. Если раскомментировать весь файл, то потребуется много времени и появится много ложных результатов.

Допустим, я хочу восстановить только файлы .jpg, тогда я просто раскомментирую секцию jpg в конфигурационном файле scalpel.

1234# GIF and JPG files (very common)gif     y       5000000         \x47\x49\x46\x38\x37\x61        \x00\x3bgif     y       5000000         \x47\x49\x46\x38\x39\x61        \x00\x3bjpg     y       200000000       \xff\xd8\xff\xe0\x00\x10        \xff\xd9

В командной строке вам нужно указать расположение удалённых файлов, которые вы пытаетесь восстановить (в данном примере это /dev/sda1):

1sudo scalpel /dev/sda1-o output

Переключатель -o указывает на директорию вывода, где вы хотите сохранить ваши восстановленные файлы. Перед запуском программы убедитесь, что это директория является пустой, в противном случае вы получите ошибку. Вывод команды:

12345Scalpel version 1.60Written by Golden G. Richard III, based on Foremost 0.69.Opening target "/dev/sda1"Image file pass 1/2./dev/sda1:   6.1% |*****        |    6.6 GB    39:16 ETA

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

Использование extundelete

extundelete – утилита, позволяющая восстанавливать файлы, которые были удалены с разделов ext3/ext4.

Установить extundelete в Ubuntu, Linux Mint и Debian можно выполнив команду:

1sudo apt-get install extundelete

Как только вы поняли, что удалили нужные файлы, надо отмонтировать раздел:

1umount /dev/<partition>

или перемонтировать в режиме «только чтение»

1mount -o remount,ro /dev/<partition>

Так же следует создать резервную копию раздела прежде, чем начинать с ним работу по восстановлению файлов:

1dd bs=4M if=/dev/<partition> of=partition.backup

Зайдите в каталог, в который будут восстанавливаться удаленные данные. Он должен быть расположен на разделе отличном от того, на котором хранились восстанавливаемые данные:

1cd /<путь_к_каталогу_куда_восстанавливать_данные>

Запустите extundelete, указав раздел, с которого будет происходить восстановление и файл, который необходимо восстановить:

1sudo extundelete /dev/<partition> --restore-file /<путь к файлу>/<имя_файла>

Можно так же восстанавливать содержимое каталогов:

1sudo extundelete /dev/<partition> --restore-directory /<путь_к_директории>

Можно задать для восстановления рамки по времени удаления восстанавливаемых файлов, например так:

1sudo extundelete --after <дата> /dev/<partition> --restore-directory /<путь_к_директории>

Дату необходимо указывать в UNIX-времени:

1date -d "March 28 19:34" +%s

Некоторые файлы могут восстановиться под другим именем и расширением, хотя это не повлияет на содержимое файла.

Полный список параметров extundelete можно посмотреть на странице https://kali.tools/?p=2574

Использование foremost

foremost производит поиск и восстановление данных по сигнатурам. Хорошо подходит для восстановления фотографий и скриншотов с битых карт памяти и флешек.

Установка foremost в Ubuntu, Linux Mint и Debian:

1sudo apt-get install foremost

Пример использования для восстановления изображений с диска /dev/sdb в каталог ~/out_dir:

1sudo foremost -t jpg,gif,png,bmp -i /dev/sdb -o ~/out_dir

Полный список параметров foremost можно посмотреть на странице https://kali.tools/?p=2494

Удалён файл, открытый в программе

Если вы считаете, что удалённый файл ещё открыт в какой-то программе (например, фильм, который в настоящий момент проигрывается медиа плеером) и вы знаете имя файла, но для начала попробуйте эту процедуру:

12lsof|grep "путь/до/файла"progname 5559 user 22r REG 8,5 1282410 1294349 /path/to/file

Запоминаем номер во втором столбце, это 5559, и номер в четвёртой колонке, это 22. Тогда команда восстановления:

1cp /proc/5559/fd/22 restored.file

Если этот трюк не дал результата, то немедленно размонтируйте файловую систему с удалённым файлом или переведите её в режим только чтения.