Восстановление удалённых файлов в Linux: TestDisk, PhotoRec и другие

После rm, сбоя диска или «пропавшего» раздела шанс на восстановление есть, пока свободные блоки не перезаписаны. Ниже — рабочие утилиты для Linux (Ubuntu, Debian, Fedora, Arch, openSUSE и др.): safecopy, TestDisk, PhotoRec, foremost, scalpel, плюс правила, которые важнее любого «магического» софта.

С чего начать (и чего не делать)

Типичные причины потери данных: ошибочный rm/rm -rf, переразметка, повреждение ФС, bad-сектора, реже — вредоносное ПО. Пока идёт запись на тот же раздел, удалённые файлы вытесняются новыми данными.

  • Сразу прекратите запись на затронутый раздел (не сохраняйте «восстановленное» туда же).
  • По возможности размонтируйте раздел или работайте с Live USB / другого диска.
  • Определите устройство: lsblk, fdisk -l, blkid (подставляйте реальный путь вместо /dev/sdX).
  • Критичные случаи с железом — лучше образ диска, а уже с образа — сканирование.

Safecopy: копия с проблемного носителя

Safecopy умеет читать повреждённые диски и образы, обходя bad-сектора, и сохранять максимально возможный дамп. Это не «undelete по имени файла», а спасение данных с «сыплющегося» носителя перед дальнейшим разбором.

Установка:

# Ubuntu/Debian
sudo apt install safecopy

# Fedora
sudo dnf install safecopy

# Arch
sudo pacman -S safecopy

# openSUSE
sudo zypper install safecopy

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

sudo safecopy /dev/sdX /path/on/other/disk/disk.img

При ошибках чтения иногда помогают более «агрессивные» режимы (смотрите man safecopy и опции вроде --force / стадии stage). Дальше образ можно монтировать или отдавать TestDisk/PhotoRec.

TestDisk: разделы и структура ФС

TestDisk восстанавливает таблицы разделов, boot-сектора, помогает вернуть «пропавшие» разделы и иногда файлы через обход ФС. Удобен, когда диск «стал пустым» после fdisk/gparted или сбилась разметка.

# Ubuntu/Debian
sudo apt install testdisk

# Fedora
sudo dnf install testdisk

# Arch
sudo pacman -S testdisk

# openSUSE
sudo zypper install testdisk

Запуск (интерактивное TUI-меню):

sudo testdisk
# или сразу указать устройство
sudo testdisk /dev/sdX

Типичный путь: выбрать диск → тип таблицы разделов → Analyse → Quick Search / Deeper Search → просмотр файлов (P) → копирование на другой носитель → запись таблицы (Write), если разделы найдены верно. Не пишите таблицу, пока не убедитесь, что найденное совпадает с ожидаемой разметкой.

PhotoRec: файлы по сигнатурам (в т.ч. медиа)

PhotoRec идёт в пакете с TestDisk. Это file carving: поиск JPG, PDF, ZIP, документов и т.д. по сигнатурам, без опоры на имена в ФС. Имена часто теряются, каталоги «рассыпаются» — зато контент многих типов удаётся вытащить после rm или форматирования, если блоки ещё не заняты.

sudo photorec
# либо
sudo photorec /dev/sdX

В меню: диск → раздел (или Whole disk) → тип ФС → каталог для сохранения (только на другом диске!) → File Opt для фильтра типов → Search. Список разделов можно сверить через sudo fdisk -l или lsblk.

Foremost и Scalpel: carving из CLI

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

Foremost

# Ubuntu/Debian
sudo apt install foremost

# Fedora
sudo dnf install foremost

# Arch (часто через AUR)
yay -S foremost

sudo foremost -t jpg,png -i /dev/sdX -o /path/to/output

Флаг -t ограничивает типы, -i — вход (устройство или образ), -o — каталог вывода на исправном диске.

Scalpel

Гибкая конфигурация сигнатур (часто /etc/scalpel/scalpel.conf — нужные типы раскомментировать).

# Ubuntu/Debian
sudo apt install scalpel

# Fedora (иногда через EPEL)
sudo dnf install epel-release
sudo dnf install scalpel

sudo scalpel /dev/sdX -o /path/to/output

Как не потерять данные снова

  • Бэкапы по расписанию: rsync, Borg, restic, Timeshift (снимки системы), Deja Dup для домашнего каталога.
  • Правило 3-2-1: несколько копий, разные носители, одна копия «не в той же комнате» / offsite.
  • Для rm — привычка к rm -i или alias, проверка пути перед -rf.
  • Шифрование чувствительных бэкапов (gpg, age, встроенное шифрование restic/borg).
  • Периодически проверяйте, что бэкап реально восстанавливается.

Пример простого rsync на внешний диск:

rsync -aHAX --info=progress2 /home/user/docs/ /mnt/backup/docs/

Когда к специалистам

Стук/клик диска, сильные bad-блоки, залитие, необходимость чистой комнаты — софт на «живом» умирающем HDD может добить механику. В таких случаях останавливают повторные попытки чтения и отдают носитель в лабораторию: у них есть клонеры с аппаратным контролем и разбор HDA.

Краткий порядок действий

  1. Стоп записи, Live-среда, второй диск под результат.
  2. При битом носителе — образ (safecopy/ddrescue), дальше работа с образом.
  3. Пропали разделы — TestDisk.
  4. Нужны файлы по типу, имена не важны — PhotoRec / foremost / scalpel.
  5. После успеха — нормальный бэкап, чтобы не повторять квест.

Источники и ссылки


Комментарии загружаются…