Иногда понимаешь, что одна из последних команд rm была лишней. Конечно, лучшее средство восстановления случайно удаленных файлов — это бэкапы. Но бывает так, что резервная копия была создана раньше, чем файл появился в системе или же с момента создания бэкапа в файл было внесено много изменений: утром менеджер загрузил фотографии, а администратор не разобрался и удалил их. Тогда вариант из резервной копии будет неактуальным. Бэкап как бы есть, но по факту — его нет. На помощь приходит восстановление удаленных файлов — и чем раньше ты приступишь к этому процессу, тем выше вероятность успеха.
Для восстановления удаленных файлов существует много разных инструментов. Выбор инструмента зависит от типа файловой системы и типа самого файла. Так, при использовании файловой системы ext3/ext4 неплохие результаты показывает утилита extundelete. Если нужно восстановить изображение (JPEG/PNG/GIF и др.) лучшим выбором будет foremost. Универсальный солдат — утилита scalpel, с нее и начнем.
Используется для восстановления удаленных файлов с использованием базы данных заголовков. Перед запуском scalpel в ее конфигурационном файле нужно указать тип и заголовки файлов, которые необходимо восстановить. В конфигурационном файле по умолчанию уже «прописаны» заголовки самых популярных типов файлов, админу остается только раскомментировать соответствующие строки. Конечно, для восстановления экзотических форматов есть возможность указать собственные заголовки.
Посмотрим, как работает scalpel на практике. Установим утилиту:
sudo apt install scalpel
Открываем конфигурационный файл (/etc/scalpel/scalpel.conf или /etc/scalpel.conf). В нем уже описаны различные типы файлов. Перед запуском утилиты необходимо раскомментировать строки, соответствующие типам восстанавливаемых файлов. Например, для восстановления GIF и
# GIF and JPG files (very common) gif 5000000 \x47\x49\x46\x38\x37\x61 \x00\x3b gif 5000000 \x47\x49