Восстановление удаленных файлов Linux
Иногда случается, что мы случайно удаляем еще нужные нам файлы. Особенно это опасно в терминале Linux, поскольку здесь файлы удаляются не в корзину, а стираются с диска сразу и навсегда.
Понятно, что нужно аккуратно обращаться с командами удаления файлов, но что делать если уже все удалено, а файлы были важные и их нужно срочно восстановить? В некоторых случаях это возможно. В нашей сегодняшней статье мы рассмотрим восстановление удаленных файлов linux.
Немного теории
Каждый файл занимает определенное пространство на жестком диске, но файловая система для предоставления доступа к файлу дает нам ссылки на его начало, по которым любая программа может получить уже содержимое всего файла. Было бы неэффективно, если бы удаление файла приводило к полному перезаписыванию его области на диске.
Вместо этого, файловая система просто удаляет ссылку на эту область со своей базы, а затем помечает пространство, где находился файл, неразменным. Но на самом деле там еще остались все ваши файлы. Из этого делаем вывод, что если после удаления файловую систему очень быстро переключить в режим только для чтения, то все удаленные файлы могут быть восстановлены.
Если же вы работали с этой файловой системой и данные на диске были перезаписаны другими, то вы уже ничего сами не спасете. Возможно, вы слышали, что спецслужбы могут восстанавливать несколько раз перезаписанные данные по остаточному магнитному следу на диске. Это действительно так. Но для решения такой задачи нужно специальное оборудование, здесь недостаточно нескольких программ, нужен специальный лазер, который может считать магнитный след по краям дорожки и другая аппаратура. Так что про этот метод для себя можете забыть.
Ну а мы остановимся на программном восстановлении, когда данные были формально удалены, но физически еще находятся на диске в целостности и сохранности. Дальше рассмотрим несколько утилит, которые помогут восстановить удаленные файлы linux.
1. Safecopy
Safecopy — это довольно простой инструмент для восстановления данных, который просто копирует данные из одного места в другое. Утилита, как таковая, не восстанавливает отдельные файлы. Она просто позволяет скопировать данные из поврежденного устройства на нормальное.
Разница между этой утилитой и другими программами копирования в том, что Safecopy не завершается при обнаружении каких-либо ошибок, будь то плохая операция чтения или поврежденный сектор. У нее есть множество дополнительных опций для настройки, а также возможность создания образа файловой системы из поврежденного носителя. Данные восстанавливаются тщательно и быстро, насколько это возможно.
Утилиту можно установить из официальных репозиториев вашего дистрибутива. Пользователи Ubuntu могут воспользоваться такой командой:
sudo apt install safecopy
Здесь вы не восстановите удаленные файлы, но вы можете скопировать поврежденные данные. Например, для видео несколько повреждений не играют большой роли. Для запуска восстановления файлов в linux с раздела /dev/sda1 выполните:
sudo safecopy /dev/sda1 /home/files/
Все файлы, которые удастся скопировать будут в /home/files/.
2. TestDisk
TestDisk — это очень мощный инструмент для восстановления данных. Он не пытается скопировать данные из поврежденного устройства, а позволяет исправить ошибки и проблемы на уровне разделов, которые могут мешать работе с вашими данными.
Утилита может восстанавливать потерянные разделы, исправлять таблицу разделов GPT и MBR, делать резервные копии дисков, восстанавливать загрузочные записи, а главное восстанавливать удаленные файлы с файловых систем NTFS, FAT, exFAT и файловых систем семейства Ext. Также вы можете копировать файлы даже с удаленных разделов для тех же файловых систем.
Способ работы утилиты очень сильно отличается в зависимости от нужного действия. Здесь вас ждет псевдографический мастер, который проведет вас через все шаги. Установить testdisk можно так же само из официальных репозиториев. В Ubuntu используйте для этого команду:
sudo apt install testdisk
Поскольку тема нашей статьи — восстановление файлов linux, рассмотрим как это делается с помощью этой утилиты. Запустите программу:
На первом шаге мастера выберите Create New Log:
Дальше выберите диск, с которым будем работать:
Выберите таблицу разделов на диске:
Для работы с файловой системой выберите пункт Advanced:
Далее выберите раздел, затем команду list:
Тут вы увидите все файлы, которые есть на этом разделе. Удаленные, но подлежащие восстановлению файлы будут помечены красным.
Работать с этой утилитой удобнее, чем с Photorec, потому что здесь вы можете выбрать только один нужный файл, а не восстанавливать сразу кучу мусора. Чтобы скопировать файл просто выберите его, нажмите c и выберите папку для сохранения. Правда, вы же понимаете, что для восстановления нужно, чтобы файлы были не перезаписаны, где-то чуть перезапишется и все.
3. PhotoRec
Наша последняя программа ориентирована в первую очередь на поиск и восстановление удаленных видео, фото, документов и архивов. Можно сказать, что это программа восстановления удаленных файлов linux. Преимущество PhotoRec заключается в том, что она полностью игнорирует файловую систему и смотрит на сырые данные, а это значит, что она все равно будет работать, даже если файловая система повреждена или переформатирована, но только в быстром режиме, там где стираются лишь заголовки.
Во избежание каких-либо проблем, здесь используется доступ только для чтения, этого вполне достаточно для восстановления данных. Но как я говорил раньше, вам нужно остановить все операции записи, как только вы поняли, что нужно восстановить файл. В противном случае нужные данные могут быть перезаписаны чем-то новым и вы уже не сможете их восстановить.
В утилиты есть несколько настроек. Вы можете указать расширения файлов, которые нужно найти, размер, дату изменения и так далее. Установить программу можно так же как и TestDisk — из официальных репозиториев.
Например, в Ubuntu выполните:
sudo apt install photorec
Что касается использования, то тут похожий на testdisk интерактивный интерфейс. Запустите утилиту командой:
Выберите диск, с которым нужно работать:
Выберите файловую систему:
Выберите способ сканирования (неразмеченное пространство/весь раздел) Затем выберите папку для сохранения результата:
Дождитесь завершения процесса:
Программа восстановит много файлов, и скорее всего больше чем вам нужно. Причем главная ее проблема в том, что имена файлов не сохраняются и вам придется еще поискать, чтобы найти есть ли там то что нужно.
Выводы
Эти три инструмента охватывают широкий спектр задач по восстановлению файлов linux. Здесь вы сможете выполнить не только восстановление удаленных файлов linux ext4, но и исправить жесткий диск или скопировать файлы с поврежденных носителей.
А какие ваши любимые утилиты для восстановления данных? Какими вы пользуетесь? Напишите в комментариях!
На десерт видео от Discovery о том, как работает жесткий диск:
Information Security Squad
stay tune stay secure
😞 7 из лучших инструментов восстановления данных для Linux
Ваш экран просто стал черным или ваш ноутбук завис без предупреждения?
Может быть, ваш жесткий диск начал издавать странные звуки.
Все эти признаки поврежденного или неисправного диска могут вызвать много хлопот, но нет причин немедленно выбрасывать компьютер.
Продолжайте читать, чтобы узнать о семи инструментах Linux, которые могут помочь вам восстановить ваши данные и вернуть вашу цифровую жизнь в нужное русло.
1. Trinity Rescue Kit
Этот лайв дистрибутив Linux, созданный специально для восстановления данных, казалось, давно ушел из жизни, но пару лет назад его разработчик появился из ниоткуда, что делает его более эффективным для работы на современных компьютерах.
Так что же такое Trinity Rescue Kit?
По сути, если ваша основная ОС Linux (или Windows или macOS в этом отношении) становится непригодной для использования из-за сбоя жесткого диска или какой-либо другой катастрофы, вы можете создать USB-диск TRK, а затем загрузить его, чтобы извлечь данные из вашей основной ОС с помощью командной строки.
Это аварийный диск, действительно неплохой, с дополнительными функциями, такими как восстановление пароля и сканирование на вирусы.
Конечно, здесь также есть утилита массового восстановления, которая ищет ваши поврежденные или недоступные жесткие диски на все, что можно восстановить, а также несколько вариантов восстановления основной загрузочной записи.
Имейте в виду, однако, что есть довольно крутая кривая обучения, чтобы действительно воспользоваться всеми этими функциями
2. Testdisk
Некоторые инструменты восстановления Linux пытаются сохранить ваши данные, копируя все, что можно извлечь из поврежденного раздела.
Это может сработать, но полностью не гарантируется, так как проблемы с самим разделом могут скрывать данные, которые вы хотите получить.
Testdisk очень удобен, так как на самом деле он может исправлять ошибки на уровне раздела, упрощая восстановление данных, используя сам Testdisk или другой инструмент восстановления данных.
Он может даже исправить поврежденный жесткий диск и снова заставить ваш ПК с Linux работать так, чтобы вы могли получить прямой доступ к данным.
Помимо выполнения глубоких операций, таких как восстановление загрузочных секторов и таблиц файловой системы, Testdisk также способен восстанавливать данные — даже удаленные данные — с жестких дисков в форматах NTFS, FAT, exFAT и ext.
Чтобы установить Testdisk в Linux, перейдите в Терминал и введите
3. ddrescue
Хотя ddrescue не является инструментом восстановления данных напрямую, он должен стать вашим первым шагом на пути к извлечению ваших файлов.
Ddrescue создает образ вашего поврежденного диска или раздела, чтобы вы могли проанализировать копию вашего сломанного диска.
Всегда копируйте свой диск в отдельный образ, прежде чем начинать операции восстановления файлов с помощью инструментов, перечисленных ниже.
Чем дольше вы используете свой неисправный диск, тем больший ущерб вы можете причинить.
Здесь вы видите некоторые результаты ddrescue в действии.
В первой команде он копирует весь диск в образ с именем «backup.img».
Вторая команда затем копирует только плохие блоки в этот же образ, пропуская каждый раз по этим блокам, чтобы попытаться их прочитать.
Когда вы запускаете эти же команды, всегда используйте файл журнала.
Резервное копирование может занять несколько часов или дней, и без лог-файла любые прерывания заставят вас начать процесс заново с самого начала.
Когда этот процесс будет завершен для вашего собственного диска или раздела, вы можете смонтировать скопированный образ и использовать следующие утилиты для извлечения файлов из него.
Дальнейшее использование наших других инструментов восстановления Linux в этой статье позволит получить данные из того же «backup.img», созданного здесь.
4. Foremost
Foremost использует структуры данных общих типов файлов для извлечения данных.
Вы можете очистить весь образ диска для всех его файлов или указать определенные типы файлов, которые вам наиболее интересны.
Здесь вы можете увидеть вывод Foremost в подробном режиме (опция -v).
Опция -t ищет типы файлов jpg, а опции -i и -o отмечают соответствующий входной файл и выходной каталог.
Вы можете видеть, что Foremost анализирует образ ddrescue, созданный на предыдущем шаге; этот образ содержит несколько JPEG-файлов.
Foremost смог найти десять таких файлов, и когда он закончил очистку изображения, он скопировал эти десять файлов в указанную выходную папку.
5. scalpel
Scalpel, изначально основанный на Foremost, стремится быть экономным в своей работе.
Он использует многопоточность и асинхронный ввод / вывод для эффективного поиска образов.
Более того, он дает пользователям возможность указать количество footers и headers , которые надо использовать для восстановления файлов.
Пользователи также могут указать типы файлов, которые они хотят восстановить, отредактировав файл конфигурации.
Конфигурация по умолчанию производит много выходных данных, даже без подробного режима (параметр -v).
На этом снимке экрана вы можете увидеть окончательный результат анализа «backup.img».
Базовая команда (приведенная в нижней части снимка экрана) требует только выходной каталог и образ для анализа.
6. PhotoRec
PhotoRec отстает от своих конкурентов, сосредоточившись на восстановлении фотографий, видео и текстовых документов.
Он также работает как интерактивная утилита внутри самой консоли.
Начальная команда PhotoRec должна указать желаемы образ (наш backup.img) и выходную папку.
PhotoRec затем помещает пользователя в графическое окружение.
На следующих экранах запрашивается тип раздела диска и хотите ли вы искать файлы по всему образу.
7. grep
Наконец, мы подошли к grep.
Это также может показаться не самым простым вариантом восстановления, но grep может находить удаленные или потерянные текстовые файлы путем поиска строк, присутствующих на блочном устройстве или образе диска.
В файле backup.img существует файл с именем «myfile».
Он содержит только одну строку текста: «This is the file I will try to recover».
Grep использует эту строку в качестве отправной точки для восстановления файлов.
Помимо нескольких других параметров, вы можете видеть, что в этом примере он выводит найденную строку в новый двоичный файл с именем «foundtext».
В частности, вы можете обратить внимание и изменить параметр -C, который выводит дополнительный контекст.
В этом примере команда указывает grep найти одну строку текста до и одну после указанной строки.
Начиная с -C 200, grep найдет 200 строк как до, так и после строки.
Такой охват здесь не нужен, но он может быть важен для больших текстовых файлов с сотнями строк.
Конечно, вам нужно знать текст ваших собственных файлов, чтобы у grep была отправная точка для начала поиска.
Grep сгенерирует двоичный файл в качестве вывода.
Тем не менее, некоторые части будут удобочитаемыми, например, желаемая строка текста этого примера в нижней части этого снимка экрана.
Ваша задача — вручную вычистить нужные данные. Конечно, это тяжелая работа, но она превосходит альтернативу отсутствия файлов вообще.
Заключение
Итак, сначала скопируйте ваш диск или раздел с помощью ddrescue, а затем работайте с этой копией с помощью любых других необходимых вам инструментов восстановления Linux.
Не бойтесь попробовать более одного инструмента, особенно если ваш первый выбор не нашел данных, которые вы хотели.