Как восстановить удаленный файл в Linux?

Опубликовано: 5 Октября, 2022

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

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

Лучший способ восстановить удаленный файл в Linux:

1. Размонтирование:

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

  • Сначала выключите систему и выполните процесс восстановления, загрузившись с Live CD/USB.
  • Найдите раздел, содержащий файл, который вы удалили, например, /dev/sda1
  • Восстановите файл (убедитесь, что у вас достаточно места)

2. Команда lsof:

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

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

Шаг 1. Создайте тестовый файл в каталоге /tmp.

touch /tmp/test 

Шаг 2: Запустите что-нибудь, что будет держать файл открытым:

 tail -f /tmp/test & 

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

Шаг 3. Перечислите процесс подтверждения открытого процесса.

ps -ef | grep 8561 | grep -v grep  

Шаг 4: Вручную просто удалите файл и попробуйте перечислить файл, вам будет показано сообщение об ошибке, потому что он был удален.

$ rm /tmp/test    
$ ls -l /tmp/test    

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

Шаг 5: Для отображения дескриптора открытого файла процесса используйте команду lsof

$lsof | grep -i test 

PID процесса, удерживающего этот файл открытым, отображается во втором столбце.

Шаг 6: Теперь нам нужно найти дескриптор открытого файла в каталоге /proc

$ls -l /proc/8561/fd/3 

Шаг 7: Теперь открытый файл (который был удален, но открыт каким-то другим процессом) можно скопировать обратно в исходное место, то есть в /tmp. После этого вы также можете переименовать его по оригинальному имени

$ cp /proc/8561/fd/3 /tmp/                                                         
$mv /tmp/3 /tmp/test 
$ ls -l /tmp/test 

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

3.Foremost (криминалистический инструмент):

Foremost — это криминалистический инструмент, который более или менее предустановлен в kali Linux, но если его там нет, вы можете установить его из командной строки. Передовой инструмент используется для восстановления удаленных файлов с жесткого диска, карты памяти, флешки и т. д.

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

Для восстановления удаленного образа используйте следующую команду:

sudo foremost -v -q -t png -i /dev/sda1 -o ~/test

Где /dev/sda1 — базовый раздел, в котором находится /boot.

где / home/tithi/Downloads/gg — это каталог на отдельном диске, где будет находиться восстановленный файл (не восстанавливайте файлы на том же диске, где находились удаленные, это может ничего не восстановить). Многие файлы будут восстановлены вместе, и восстановленный файл имени не будет похож на исходный.