Воскресенье, 17.11.2024, 03:40

Компьютерная помощь

Записки системного администратора

Меню сайта
Категории раздела
Компьютер [36]
Общекомпьютерные темы
Windows server [18]
Статьи по версиям windows для серверов.
Windows [30]
Статьи по версиям windows для рабочих станций.
Unix [65]
Статьи на тему unix-подобных систем. Linux, FreeBSD и т.п.
Видеомонтаж [10]
Статьи по нелинейному видеомонтажу
Программирование [9]
Заметки по программированию
Databases [10]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Вход на сайт

Поиск

Главная » Статьи » Unix

Восстановление удалённый файл в Linux

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

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

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

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

1
sudo apt-get install scalpel

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

1
locate scalpel.conf

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

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

1
2
3
4
# GIF and JPG files (very common)
gif     y       5000000         \x47\x49\x46\x38\x37\x61        \x00\x3b
gif     y       5000000         \x47\x49\x46\x38\x39\x61        \x00\x3b
jpg     y       200000000       \xff\xd8\xff\xe0\x00\x10        \xff\xd9

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

1
sudo scalpel /dev/sda1-o output

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

1
2
3
4
5
Scalpel version 1.60
Written 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 можно выполнив команду:

 
1
sudo apt-get install extundelete

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

1
umount /dev/<partition>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1
sudo apt-get install foremost

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

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

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

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

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

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

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

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

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

https://zalinux.ru/?p=877

Категория: Unix | Добавил: admin (13.10.2017)
Просмотров: 738 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: