Восстановление данных с жёстких дисков, карт памяти и других носителей
T.me К восстановлению данных приходится прибегать при случайном удалении нужных файлов, при форматировании файловой системы с нужными данными, при «слёте» файловой системы, когда по каким-то причинам диск просто перестаёт определяться операционной системой, либо при повреждении носителя информации, в результате чего некоторые файлы становятся недоступными или исчезают.
В данной статье приведён список программ, которые так или иначе связаны с восстановлением файлов, папок, фотографий, документов и т.п. с носителей информации. Абсолютно все эти программы являются бесплатными, у каждой из них открыт исходный код.
Эти программы я разделил на четыре группы:
- Программы для восстановления удалённых файлов
- Программы для восстановления файловых систем
- Программы для восстановления данных с повреждённых носителей
- Криминалистические программы с функцией восстановления данных
Деление несколько условное, поскольку некоторые программы имеются широкую функциональность, и могут быть помещены сразу в несколько групп.
У программ имеются свои особенности: ОС, в которых они работают, используемые методы, типы файлов, которые они способны найти, файловые системы, используемые методы и т.д. Если одна из программ не дала результатов, то имеет смысл попробовать другую.
Все описанные здесь программы работают в Linux, некоторые из них являются кроссплатформенными и работают в других операционных системах, например, Windows. Это будет отмечаться в описании программы.
Обычно при удалении файла не удаляется его содержимое, а удаляется информация об этом файле. Примерно это же происходит и при быстром форматировании носителей. Именно этим и пользуются многие программы по восстановлению файлов – они отыскивают содержимое файла и копируют его, этот процесс и называется «восстановлением файла». Место (область на диске), которое занимал файл, после удаления считается незанятым (не распределённым) и может быть перезаписано при сохранении другого файла. Поэтому крайне важно не сохранять новые данные на носитель. Если вы этого не делаете, то программы и системные процессы могут это делать без вашего участия. Операционные системы непрерывно обращаются к файловой системе. Например, ОС Windows несколько раз каждую секунду на протяжении всей работы компьютера обращается в свой реестр. Многие процессы, о которых вы даже не догадываетесь, также работают с файловой системой. Отсюда следуют вполне очевидные правила:
- не записывайте новые файлы на диск или флешку, с которой вы хотите восстановить удалённый или пропавший файл;
- восстанавливаемые файлы обязательно сохраняйте на другой носитель, а не на тот, с которого ведётся восстановление, поскольку эти файлы затирают данные и шансы на восстановление каждого последующего файла падают;
- если вы работаете в Linux, то отмонтируйте раздел или перемонтируйте его только для чтения;
- если это системный раздел, то рекомендуется выключить компьютер и работать с Live-диска или с образом данного раздела.
Хорошей практикой является не работать с носителем напрямую, а сделать его образ и работать с файлом образа. Благодаря такому подходу:
- носитель можно отключить от системы, что гарантирует, что какие-либо процессы ОС не будут к нему обращаться и записывать на него данные;
- вы точно не навредите носителю, если что-то сделаете не так;
- если необходимость восстанавливать файлы связана с неисправностью носителя, то интенсивная работа нескольких программ может усугубить ситуацию.
Программы для восстановления удалённых файлов
В этом разделе в основном программы, которые восстанавливают отдельные файлы и папки.
PhotoRec
PhotoRec, пожалуй, это одна из самых дружелюбных к пользователю программ. Она работает на различных операционных системах, в том числе и на Windows. В ОС Windows она может работать как в режиме консоли, так и с графическим интерфейсом. Не смотря на свою дружественность, она является очень эффективной для восстановления файлов. Она может работать даже с носителями, у которых слетела файловая система.
Описание программы: https://kali.tools/?p=2628
Подробная инструкция по работе с PhotoRec (в том числе в Windows): https://zalinux.ru/?p=833
Эта программа является компаньоном TestDisk, которую также можно было бы рассмотреть в этом же разделе, поскольку она тоже умеет восстанавливать файлы. Но главное предназначение TestDisk – это восстанавливать файловые системы, поэтому она будет рассмотрена чуть позже.
Scalpel
Scalpel – это программа с открытым исходным кодом для восстановления файлов используя базу данных заголовков, колонтитулов. Может восстанавливать с образов дисков или устройств с сырыми блоками, заголовки и колонтитулы устанавливаются пользователем. Программа используется не только для восстановления файлов, но и цифровых криминалистических исследований.
Некоторые примеры использования Scalpel: https://zalinux.ru/?p=877
extundelete
extundelete – это утилита, которая может восстановить удалённые файлы из разделов ext3 или ext4.
Подробное описание и опции extundelete: https://kali.tools/?p=2574
Некоторые примеры использования extundelete: https://zalinux.ru/?p=877
Foremost
Foremost — это консольная программа для восстановления файлов на основе их заголовков, колонтитулов и внутренней структуры данных. Этот процесс обычно называют «выскабливанием данных». Foremost может работать с файлами образов, такими как сгенерированные в dd, Safeback, Encase и т. д. или напрямую с диском. Заголовки и колонтитулы могут быть указаны в конфигурационном файле или вы можете использовать переключатели командной строки, для точного определения встроенных типов. Эти встроенные типы смотрят на структуру данных данного файлового формата, позволяя более надёжное и быстрое восстановление.
Подробное описание и опции Foremost: https://kali.tools/?p=2494
Некоторые примеры использования Foremost: https://zalinux.ru/?p=877
ext4magic
ext4magic — это инструмент администратора Linux, который может помочь восстановить удалённые или перезаписанные файлы на файловых системах ext3 и ext4.
В своей работе опирается на журнал файловой системы.
Подробное описание и опции ext4magic: https://kali.tools/?p=2565
ext3grep
ext3grep – это инструмент для исследования файловых систем ext3 на удалённое содержимое и возможность его восстановить. Программа помогает восстанавливать удалённые файлы только с файловых систем ext3.
scrounge-ntfs
scrounge-ntfs – это утилита для спасения данных с повреждённых разделов NTFS, она записывает полученные файлы на другую рабочую файловую систему. Некоторая информация о повреждённом разделе должна быть известна заранее.
Recoverjpeg
Recoverjpeg — восстанавливает JFIF (JPEG) фотографии и файлы видео MOV. Recoverjpeg пытается идентифицировать jpeg картинки в файловой системе или из образа файловой системы.
magicrescue
magicrescue – сканирует блочное устройство и извлекает файлы известных типов по «магическим байтам». Может использоваться как утилита для восстановления удалённых файлов, так и спасения данных с повреждённого диска или раздела. Работает на любых файловых системах, но на очень фрагментированных файловых системах программа может восстановить только первый кусок каждого файла. Тем не менее, эти куски иногда достигают 50 мегабайт.
ddrescue
ddrescue – инструмент по восстановлению данных. Копирует данные из одного файла или блочного устройства на другое, пытается спасти сначала хорошие части, если имеются ошибки чтения.
Программы для восстановления файловых систем
TestDisk
TestDisk программа с открытым исходным кодом и лицензией GNU General Public License (GPL v2+).
TestDisk это мощная бесплатная программа для восстановления данных. Она была разработана в первую очередь, что бы помочь восстановить утраченные разделы и/или восстановить загрузочную способность дисков если эта проблема вызвана программно, вирусами или ошибками человека (таких как случайное удаление Таблицы Разделов). Восстановить Таблицы Разделов TestDisk-ом очень легко.
TestDisk может:
- Исправлять таблицу разделов, восстанавливать удаленные разделы;
- Восстанавливать загрузочный сектор FAT32 из резервной копии;
- Перестраивать (реконструировать) загрузочный сектор FAT12/FAT16/FAT32;
- Исправлять таблицу FAT;
- Перестраивать (реконструировать) загрузочный сектор NTFS;
- Восстанавливать загрузочный сектор NTFS из резервной копии;
- Восстанавливать MFT использую MFT зеркало;
- Определять резервный SuperBlock ext2/ext3/ext4;
- Восстанавливать удаленные файлы на файловых системах FAT, NTFS and ext2;
- Копировать файлы с удалённых FAT, NTFS and ext2/ext3/ext4 разделов.
TestDisk подойдёт и для новичков, и для экспертов. Для тех, кто знает мало или вообще ничего не знает о методах восстановления данных, TestDisk может быть использован для сбора детальной информации о незагружающихся дисках которая затем может быть использована для дальнейшего анализа. Те, кто уже знаком с такими процедурами, должен найти TestDisk удобным инструментом при выполнении восстановления.
TestDisk может работать под:
- DOS (real или в Windows 9x, DOS-box)
- Windows (NT4, 2000, XP, 2003, Vista, 2008, Windows 7 (x86 & x64), Windows 10
- Linux
- FreeBSD, NetBSD, OpenBSD
- SunOS
- MacOS X
Подробнейшее описание TestDisk с примерами работы: https://kali.tools/?p=2578
gpart
gpart пытается предположить, какие разделы присутствуют на жёстком диске. Она пытается найти потерянную, перезаписанную или разрушенную, но всё ещё существующую на диске, таблицу разделов, к которой операционная система не может получить доступ. gpart игнорирует главную таблицу раздела и сканирует диск (или образ диска) сектор за сектором в поисках нескольких типов файловых систем/разделов. В своей работе она использует модули распознания файловых систем, опрашивая их, не напоминает ли данная последовательность секторов тип файловой системы или раздела.
anyfs-tools
anyfs-tools — unix-way набор инструментов для восстановления и конвертирования файловых систем.
Инструменты:
- anyfs-tools предоставляет unix-way набор инструментов для восстановления и конвертирования файловых систем.
- build_it считывает из директории рекурсивно информацию обо всех инф.узлах файловой системы используя драйвер (для чтения) ОС Linux и сохраняет её в виде внешней таблицы инф.узлов.
- anysurrect ищет на устройстве файлы исходя из известной структуры различных типов файлов. Информация о найденных файлах также сохраняется в виде внешней таблицы инф.узлов.
- reblock изменяет размер блока файловой системы. reblock используя информацию из таблицы инф.узлов изменяет положения отдельных фрагментов файлов так, чтобы они были выровнены по границам блоков нового размера.
- build_e2fs исходя из информации предоставляемой внешней таблицей инф.узлов строит на устройстве файловую систему ext2fs.
- build_xfs исходя из информации предоставляемой внешней таблицей инф.узлов строит на устройстве файловую систему xfs.
- anyconvertfs конвертирует файловую систему устройства с применением других утилит из anyfs-tools.
- драйвер файловой системы anyfs для Linux позволяет смонтировать устройство используя информацию из внешней таблицы инф.узлов. При этом на смонтированной файловой системе будут доступны такие файловые операции как удаление, перемещение файлов; создание символических и жёстких ссылок, специальных файлов; изменение прав доступа. Все эти изменения сохраняются при отмонтировании в тот же файл внешней таблицы инф.узлов и не затрагивают самого устройства.
- anyfuse является FUSE реализацией anyfs
Программы для восстановления данных с повреждённых носителей
safecopy
safecopy – инструмент по восстановлению данных с проблемных или повреждённых носителей. Программа спасает данные с источников, на которых возникли ошибки чтения-записи. Она пытается получить так много данных из источника, как это возможно, даже прибегая к специфичным для устройства операциям низкого уровня, где это возможно.
recoverdm
recoverdm – восстанавливает файлы с дисков с повреждёнными секторами.
recuperabit
recuperabit – это инструмент для криминалистической реконструкции файловой системы.
Криминалистические программы с функцией восстановления данных
Autopsy
Autopsy — это платформа цифровой криминалистики и графический интерфейс для Sleuth Kit и других цифровых криминалистических инструментов. Она используется правоохранительными органами, военными и корпоративными экспертами для расследования происшедшего на компьютерах. Обычные пользователи могут использовать её, например, для восстановления фотографий с цифровой карты памяти камеры.
Autopsy была создана чтобы быть интуитивно понятной из коробки. Установка проста и мастер проведёт вас по всем шагам.
Дополнительные подробности об Autopsy: https://kali.tools/?p=1804
Sleuth Kit
The Sleuth Kit (TSK) — это библиотека на языке C и коллекция инструментов командной строки, которые позволяют исследовать образы дисков. Ключевая функциональность TSK позволяет анализировать тома и данные файловой системы в компьютере подозреваемого. Фреймворк плагинов позволяет инкорпорировать дополнительные модули для анализа содержимого файлов и строить автоматизированные системы. Библиотека может быть инкорпорирована в большое количество инструментов цифровой криминалистики, а инструменты командной строки могут использоваться напрямую для поиска доказательств.
Поскольку инструменты не полагаются на операционную систему для работы с файловой системой, то показывается удалённое и спрятанное содержимое. Программа работает на платформах Windows и Unix.
Подробности об Sleuth Kit: https://kali.tools/?p=1811
DFF (Digital Forensics Framework – цифровой криминалистический фреймворк)
DFF (Digital Forensics Framework – цифровой криминалистический фреймворк) — это криминалистическая компьютерная платформа с открытым исходным кодом, он построен поверх отдельных API. DFF предназначен прийти на замену устаревающим цифровым криминалистическим решениями, используемым сегодня. Созданный для простого использования и автоматизации, интерфейс DFF проводит пользователя через главные шаги цифрового расследования, поэтому он может использоваться как профессионалами, так и не экспертами для быстрого и простого совершения цифровых расследований и реагирования на инциденты.