---
# System prepended metadata

title: Scalpel

---

# Scalpel

## Теоретическое введение
У всех в жизни случалось что удалили файлы в той папке, где этого не следовало делать. Для Linux систем существует утилита Scalpel, которая позволяет восстановить удалённые файлы.

Scalpel является форком проекта Foremost (с версии 0.69), начавший свою историю с 2005 года. Имеет свой github репозиторий и является более быстрым по скорости восстановления данных. 

**Возможности которые предоставляет Scalpel:**

1. Восстановление независимо от файловой системы
2. Выставление минимального и максимального размеров восстанавливаемого файла
3. Использование многопоточности на многоядерных системах
4. Асинхронные операции ввода/вывода дающие прирост при поиске по шаблону
5. Использование TRE регулярных выражений для поиска по началу и концу файла
6. Возможность восстановления из вложенных структур данных
7. Для гиков доступна возможность использования GPU, что доступно только для Linux и требует предустановленного NVIDIA CUDA SDK и небольших модификаций исходного кода (поиск c применением регулярных выражений не работает с GPU)

## Подготовка к работе
Для работы со Scalpel можно создать новую виртуальную машину, с помощью VMware Workstation, и установлить операционную систему Parrot, одна из версий которой содержит в себе необходимую нам утилиту. 
![](https://i.imgur.com/juDzUBi.png)

Образ для виртуальной машины можно скачать с официального [сайта](https://www.parrotsec.org/) Parrot OS.
Если у вас уже установален, например, Ubuntu,  то можно установить утилиту через терминал с помощью команды:
` apt-get install scalpel`
Создаём папки, куда будут воостанавливаться файлы: restore_1, restore_2, restore_usb. В первую воостановим файлы с жёсткого диска, во вторую с дополнительного раздела памяти, в третью с флеш-накопителя.
![](https://i.imgur.com/Ung7rZZ.png)

Теперь запустим Scalpel и подготовим его для работы. Отредактируем файл конфигурации  раскомментировав строки, которые отвечают за форматы jpg, pdf, doc, txt.

С помощью команды `/etc/scalpel/scalpel.conf`  открываем файл, и видно как раскомментирован формат файлов (txt).
![](https://i.imgur.com/AvRUxYC.png)
## Работа с утилитой
Теперь мы можем приступать к **сканированию, начнём с основого диска**. Вводим следующую команду:

`sudo scalpel /dev/sda1 -o /home/sveta/restore_1 -v`

Видим как происходит сканирование. В зависимости от размера и типа диска, восстановление может занять некоторое время.
![](https://i.imgur.com/qCPg9lV.png)

По завершении, в указанной нами папке restore_1 можно будет найти все восстановленные файлы.
![](https://i.imgur.com/C22ryPB.png)

**Для восстановления файлов с флеш-носителя** вводим команду:

`sudo scalpel /dev/sdb -o /home/sveta/restore_usb -v`

Запускается сканирование.
![](https://i.imgur.com/Fm2lznJ.png)

![](https://i.imgur.com/BxwYbYa.png)

Аналогично, с предыдущим сканированием в указанной директории найдем восстановленные файлы
![](https://i.imgur.com/54NYyae.png)
**Для воссановления из другого раздела диска** используем: 

`sudo scalpel /dev/sda2 -o /home/sveta/restore_2 -v`

После сканирования, найдем восстановленные файлы в папке restore_2.
![](https://i.imgur.com/soImqqB.png)

********

*Подготовлено в рамках Практической работы №2, студентfvb группы БСБО-07-19 Буздаловой Светланой, Меркуловым Максимом.*

