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

04/11/2021
1
9 мин
3 632

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

Здравствуйте, друзья-компьютерщики!

Вы когда-нибудь по ошибке удаляли важные файлы?

А кто нет!

Хорошо, но могу ли я их восстановить?

В этом посте вы узнаете, как восстановить удаленные файлы в Linux с помощью различных программ в разных файловых системах.

Вы увидите, как восстановить удаленные файлы с SD-карт, жестких дисков и удаленных разделов в различных файловых системах Linux, таких как EXT3, EXT4, и даже из файловых систем Windows, таких как FAT32 и NTFS.

Восстановление файлов с удаленного раздела

Это настоящая проблема.

Часто пользователи Linux устанавливают несколько систем одновременно и могут по ошибке удалить раздел в процессе установки.

Однако как восстановить файлы с этих удаленных разделов?

Для этого нам нужно восстановить раздел с помощью инструмента под названием TestDisk.

Testdisk — это мощная утилита для анализа разделов и восстановления данных.

Большинство дистрибутивов Linux, таких как Debian и Ubuntu, поставляются с TestDisk.

С другой стороны, приложение является кроссплатформенным и поддерживает большое количество таблиц разделов, таких как Intel, MSDOS и Mac.

Это самые популярные таблицы разделов.

Кроме того, он поддерживает многие файловые системы, такие как NTFS, EXT4 и другие непопулярные файловые системы, такие как BeOS и ReiserFS.

Когда вы удаляете файл, список кластеров, занятых файлом, удаляется, отмечая те сектора, которые доступны для использования.

Если кластеры не были перезаписаны, TestDisk может восстановить файлы.

Сначала запустите приложение так:

$ testdisk

Затем у вас есть возможность создать новый файл для журналов.

Если вы хотите создать его, выберите вариант создания и нажмите Enter.

Если вам не нужен файл журнала, выберите вариант «Без журнала».

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

Далее будут просканированы диски или разделы, распознанные системой.

В данном конкретном случае «sda» — это раздел, который мы хотим восстановить.

Сканируйте устройства

TestDisk распознает различные типы таблиц разделов.

Обычно это Intel, если вы не используете специализированный.

Выберите таблицу разделов

На следующем экране вы увидите серию опций, которые есть в программе.

В этом конкретном случае нам нужно выбрать опцию «Analyze».

С этой опцией программа будет исчерпывающе анализировать диск, чтобы найти структуру.

Затем она спросит о типе поиска, который вы хотите выполнить.

Обычно выбирают опцию быстрого поиска.

Структура раздела

Если повезет, вы увидите удаленный раздел.

Если нет, вам придется выбрать более глубокий поиск.

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

Затем выберите опцию «Write» (Запись), чтобы записать таблицу разделов.

Когда закончите, перезагрузите систему, и ваш раздел будет восстановлен!

Восстановить раздел

Перезагрузитесь, чтобы применить изменения

Обратите внимание, что во время этих шагов это может занять много времени.

Все зависит от размера диска.

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

Они будут подробно описаны позже.

Восстановление удаленных файлов с внешнего диска

Теперь представим, что у нас есть внешняя флешка, и вы по ошибке удалили с нее какие-то файлы.

Как их восстановить?

Благодаря TestDisk процесс становится очень похожим на удаленный раздел.

Но есть некоторые отличия.

Для запуска программы воспользуемся командой «testdisk».

Также мы можем добавить флешку в качестве такого параметра:

$ sudo testdisk /dev/sdb

TestDisk для восстановления файлов

Затем выберите продолжить.

Потом выберите тип таблицы разделов.

Выберите таблицу разделов

Затем выберите «Дополнительные параметры» для восстановления файлов.

Расширенные параметры на TestDisk

Следующим шагом является выбор раздела и параметр «Отменить удаление».

Восстановить файлы с помощью TestDisk

Затем вы увидите все удаленные файлы в разделе.

Восстановить файлы с помощью TestDisk

Теперь выберите папку назначения для размещения восстановленных файлов.

Вам нужно нажать «C» в первом варианте, чтобы разместить файлы в текущем каталоге.

Выберите папку назначения

Наконец, вы увидите это сообщение:

Все в порядке с TestDisk

Поздравляю! Файлы восстановлены.

Восстановление удаленных файлов с SD-карты

Обычно на SD-карте часто можно заметить, что они используются для мультимедийных файлов.

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

В этом случае мы будем использовать приложение «Photorec», которое входит в состав TestDisk.

Сначала вставьте SD-карту в ПК.

Затем запустите photorec от имени root:

$ sudo photorec [device]

Затем вы увидите следующее изображение.

Выберите носитель, «Продолжить» и нажмите Enter.

Использование photorec для восстановления файлов с SD

Далее выбираем раздел.

И выберите «Параметры» и нажмите Enter.

Выберите раздел

Там вы увидите варианты восстановления:

Опции Photorec

Нажмите «q», чтобы вернуться к предыдущему экрану.

Необходимо выбрать типы файлов, которые мы хотим восстановить.

Это достигается выбором опции «File Opt».

Форматы для восстановления

Нажмите клавишу «s», чтобы выбрать или отменить выбор всех форматов.

Вы также можете выбрать типы файлов, которые хотите восстановить, используя правую клавишу.

Чтобы сохранить выбранные параметры, нажмите клавишу «b».

Вернитесь в главное меню с помощью клавиши «q».

Затем в главном меню выберите параметр «Поиск», чтобы начать процесс.

И выбираем файловую систему.

Выберите файловую систему

Затем вам будет предложено два варианта: Free и Whole.

Обычно Free достаточно.

Если вы хотите провести глубокий анализ, выберите Whole, но имейте в виду, что это замедлит процесс.

Теперь необходимо выбрать место для сохранения файлов.

Для этого нажмите клавишу «c».

Выберите пункт назначения

После выбора места назначения начнется процесс восстановления.

Помните, что система как бы зависнет.

Так что наберитесь терпения.

В конце вы увидите сообщение, информирующее вас обо всем, что произошло.

Отчет Photorec

Далее проверяем результаты.

Проверить результаты

Восстановление удаленных файлов из NTFS

NTFS — это файловая система Windows.

Если вы один из тех, кто использует обе системы на компьютере (как и я), вам может потребоваться восстановить удаленные файлы из раздела Windows с этой файловой системой.

Для этого у нас есть инструмент под названием «ntfsundelete», который довольно прост в использовании.

Сначала нужно просканировать диск или раздел. Например:

$ sudo ntfsundelete /dev/sda1

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

Затем мы сможем восстановить удаленный файл с помощью следующей команды:

$ sudo ntfsundelete [HD_Or_partition] -u -m [filename]

Восстановление файлов с помощью ntfsundelete

Восстановленные файлы теперь принадлежат пользователю root.

Последний шаг — изменить права доступа и владельцев файлов с помощью команды «chown».

Восстановление файлов из FAT32

Другой распространенной файловой системой Windows является FAT32.

Вы можете восстановить файлы из FAT32 с помощью TestDisk.

Так что снова запустите testdisk от имени пользователя root и передайте диск в качестве параметра:

$ sudo testdisk [partition/HD]

TestDisk совместим с FAT32

Затем продолжите действия, описанные выше, чтобы восстановить файлы.

Восстановление файлов в памяти (с использованием inode)

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

Необходимо установить некоторые начальные условия.

Во-первых, удаленный файл ДОЛЖЕН оставаться открытым для другого процесса.

Затем вам нужно проверить процесс и, наконец, восстановить его и изменить его разрешения.

В этом случае я создам файл с именем «example.txt» с помощью редактора «nano» и добавлю текст:

$ nano example.txt

Затем сохраните изменения, откройте другое окно терминала и используйте файл.

Например, с командой «less».

$ less example.txt

Используя команду less

Откройте другой сеанс терминала, удалите файл и убедитесь, что он удален:

$ rm example.txt
$ ls example.txt

Удалите файл примера

Как видите, файла больше не существует. Но мы сможем его восстановить.

Для этого давайте получим номер процесса, связанный с индексным дескриптором файла.

$ lsof | grep example.txt

Проверить удаленный файл

Вы заметите процесс и команду, которая использует файл (команда «less»).

На этом изображении мы должны обратить внимание на второе и четвертое значения.

Это PID процесса и дескриптор файла соответственно.

Затем восстановите его с помощью следующей команды:

$ ls -l /proc/2325/fd/4

Найдите процесс удаленного файла

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

$ sudo cp /proc/2325/fd/4

Далее проверяем результаты и открываем файл:

Восстановить удаленный файл с помощью inode

Таким образом, мы можем восстановить удаленный файл, который все еще находится в памяти и используется процессом с индексным дескриптором.

Восстановление удаленных файлов из EXT4 (с помощью extundelete)

EXT4 — файловая система по умолчанию в большинстве дистрибутивов Linux.

Она довольно быстра и обладает техническими возможностями, которые очень хорошо используются ядром Linux.

Одним из используемых инструментов для восстановления файлов из файловой системы EXT4 является «extundelete».

Extundelete — это приложение с открытым исходным кодом, которое позволяет восстанавливать удаленные файлы с раздела или диска с файловой системой EXT3 или EXT4.

ПО простое в использовании и по умолчанию устанавливается в большинстве дистрибутивов Linux.

Чтобы восстановить определенный файл, просто используйте следующую команду:

$ sudo extundelete [device] -restore-file [pathfile]

Например:

$ sudo extundelete /dev/sdb1 -restore-file home/angelo/other.txt

Если вы хотите восстановить все файлы в папке, используйте подстановочный знак:

$ extundelete /dev/sda6 -restore-file home/angelo/*

Но если вы хотите восстановить все файлы на разделе или на диске, достаточно будет следующей команды:

$ extundelete /dev/sda6 -restore-all

Использование extundelete для восстановления файлов

Итак, восстановленные файлы будут в каталоге «RECOVERED_FILES».

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

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

Также можно использовать инструмент «debugfs» для восстановления удаленных файлов.

Этот инструмент также использует номер inode удаленного файла.

Однако он работает только в файловых системах EXT4.

Его работа тоже довольно проста.

Сначала вам нужно войти в раздел или устройство.

$ debugfs [device]

Например:

$ sudo debugfs /dev/sdb1

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

Затем, через некоторое время, вы сможете войти в консоль «debugfs» для поиска недавно удаленных файлов.

$ debugfs: lsdel

inodes для восстановления

В первом столбце вы увидите номер inode удаленных файлов на этом устройстве.

Затем восстановите его с помощью следующей команды:

$ debugfs mi <inode_number>

Вот и все. Это очень просто.

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

Другой альтернативный способ восстановить удаленные файлы на диске с файловой системой Ext4 — использовать Ext4magic.

Это приложение также довольно простое в использовании.

Базовый синтаксис приложения следующий:

$ sudo ext4magic [device] -f [folder_to_scan] -r -d [output_folder]

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

$ sudo ext4magic /dev/sdb1 -r -d files

Использование ext4magic для восстановления файлов

Вот как легко использовать ext4magic.

Все это благодаря тому, что Ext4 — это файловая система с открытым исходным кодом и сообществом.

Восстановление перезаписанных файлов (с помощью Scalpel)

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

Он хорошо известен своей скоростью и эффективностью.

В этом смысле он появляется как альтернатива для рассмотрения.

Scalpel вырезает файлы без помощи файловых систем.

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

Как и TestDisk, он доступен в официальных репозиториях большинства дистрибутивов Linux.

Поэтому его установка сводится к использованию терминала и дистрибутива в менеджере пакетов.

Самый быстрый и простой способ использовать Scalpel:

$ scalpel [device] -o [output_folder]

Папка «output_folder» указывает, куда Scalpel поместит все восстановленные файлы.

Обратите внимание, что Scalpel сам создаст выходной каталог.

Но как Scalpel узнает, какие файлы нужно восстановить?

Что ж, это определено в файле конфигурации приложения.

Этот файл конфигурации обычно находится в следующем месте:

/etc/scalpel/scalpel.conf

И вы можете открыть его в своем любимом текстовом редакторе, и там вам нужно будет только раскомментировать строки, чтобы определить форматы файлов для поиска.

Файл конфигурации Scalpel

Scalpel будет искать форматы файлов, которые вы раскомментируете.

Затем запустите полную команду Scalpel, и в выходной папке вы увидите восстановленные файлы.

$ sudo scalpel /dev/sdb1 -o recovered_files1

Использование скальпеля для восстановления файлов

Иногда Scalpel восстанавливает части файла.

Это зависит от состояния диска и количества поврежденных данных.

Кроме того, существует множество алгоритмов поиска, которые вы можете использовать, но мы обсудили здесь основной способ поиска данных.

Восстановление файлов из не загружаемой системы

Это деликатный случай, потому что нам будет нужен доступ с Live CD Ubuntu или другого аналогичного дистрибутива Linux.

После загрузки мы можем использовать TestDisk, чтобы попытаться восстановить данные.

В этом случае нам придется использовать внешний диск для сохранения данных.

С другой стороны, если TestDisk не может выполнить эту работу, мы также можем попробовать extundelete или ext4magic, если это раздел Ext4.

Если это не сработает, вы можете попробовать восстановить раздел с помощью TestDisk, как описано выше.

Заключение

Возможно случайное удаление файлов.

Идея состоит в том, чтобы знать соответствующие инструменты и методы для восстановления этих файлов.

В этом посте мы рассмотрели несколько обстоятельств и различные файловые системы, которые могут помочь избежать таких проблем.

Спасибо.

До скорых встреч! Заходите!

Средний балл: 5

Подписаться на обновления блога!

Комментарии к этой статье:
  1. Михаил: 15/02/2023 в 10:10

    Очередной безполезный высер красноглазиков, ничего не восстанавливает,