Восстановление удалённых файлов на Linux с помощью TestDisk
О чём статья
Эта статья рассказывает, что такое TestDisk, как установить его в популярных дистрибутивах Linux и как пошагово восстановить удалённые файлы и каталоги. Включены подсказки по безопасности, альтернативные подходы и готовые чек-листы для администратора и обычного пользователя.
Важно: не записывайте новые данные на диск, с которого вы планируете восстановить файлы. Любая запись может перезаписать удалённые блоки и сделать восстановление невозможным.
Что такое TestDisk
TestDisk — это надёжный консольный инструмент для восстановления данных, написанный на языке C. Он работает на Linux, Windows, macOS и ряде других систем. TestDisk умеет:
- Восстанавливать удалённые разделы
- Исправлять повреждённые таблицы разделов и загрузочные сектора
- Восстанавливать файлы из файловых систем Windows и некоторых Unix-файловых систем
- Перестраивать загрузочные сектора из резервных копий
- Восстанавливать таблицы FAT32 и другие метаданные
Краткое определение: TestDisk — это интерактивный инструмент на терминале для анализа диска и извлечения данных.
Ограничения и случаи, когда восстановление не сработает
- Если файл был удалён утилитой shred или подобной программой, данные многократно перезаписаны — восстановление практически невозможно.
- Если сектор был физически повреждён, TestDisk не сможет прочитать данные в этом секторе.
- Если раздел был отформатирован с перезаписью нулями, шансы восстановить файлы минимальны.
Как установить TestDisk
Большинство дистрибутивов не содержат TestDisk по умолчанию. Установите его через менеджер пакетов вашего дистрибутива.
На Debian/Ubuntu сначала включите репозиторий universe (если требуется):
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"Затем установите пакет:
sudo apt install testdiskНа Fedora:
sudo dnf install testdiskНа Arch-based:
sudo pacman -S testdiskНа RHEL/CentOS сначала установите epel-release:
yum install epel-release
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmЗатем обновите и установите TestDisk:
yum update
yum install testdiskПроверьте установку:
testdisk --versionВывод отобразит версию установленного пакета testdisk.
Подготовка к восстановлению — общая методика
Мини-методология восстановления:
- Немедленно прекратите запись на проблемный диск.
- По возможности смонтируйте диск только для чтения.
- Создайте образ диска (dd) и работайте с образом, а не с оригиналом.
- Запустите TestDisk для анализа и поиска удалённых файлов.
- Копируйте восстановленные файлы на другой носитель.
Примеры команд для подготовки:
- Смонтировать раздел только для чтения:
sudo mount -o ro /dev/sdX1 /mnt/recovery- Создать образ всего диска (работает медленно, но безопасно):
sudo dd if=/dev/sdX of=/path/to/image.dd bs=4M status=progress- Монтировать образ как loop-устройство:
sudo losetup -Pf --show /path/to/image.dd
sudo partprobe /dev/loop0Работайте с образом или подключенным loop-устройством так же, как с физическим диском.
Восстановление удалённых файлов с помощью TestDisk — пошагово
1. Создание лог-файла
Запустите TestDisk в терминале:
testdiskTestDisk откроет интерактивное меню. У вас будут варианты: Create, Append, No Log.
- Create — создать новый файл лога
- Append — дополнить существующий лог
- No Log — не вести лог
Выберите Create и нажмите Enter. TestDisk обычно требует прав суперпользователя. Если нужно, запустите sudo testdisk.
2. Выбор диска для восстановления
TestDisk покажет список доступных дисков с именами и размерами. Выберите диск, с которого хотите восстановить данные, и нажмите Enter.
Если диск не отображается, перезапустите TestDisk от root (sudo testdisk) или проверьте, распознаётся ли диск системой (lsblk, fdisk -l).
3. Выбор типа таблицы разделов
TestDisk предложит тип таблицы разделов. Если вы не уверены, используйте вариант, подсвеченный по умолчанию.
Типы, которые может показать TestDisk:
- Intel
- EFI GPT
- Humax
- Mac
- None
- Sun
- Xbox
Обычно для современных ПК подходит EFI GPT или Intel (MBR) в зависимости от схемы разметки.
4. Выбор режима Advanced для файлов
Для восстановления отдельных файлов выберите опцию Advanced.
TestDisk покажет список разделов. Выберите нужный раздел и нажмите Enter.
Если вы используете HDD, список может содержать несколько разделов; на флеш-накопителе обычно один раздел.
TestDisk предложит выбрать директорию для хранения образа раздела. Укажите путь на другом диске и выберите Proceed.
5. Поиск и копирование удалённых файлов
TestDisk отобразит дерево каталогов выбранного раздела. Перейдите в каталог, где были файлы (например, /home/username/Desktop).
Удалённые файлы выделяются красным цветом. Если вы не видите ни одного удалённого файла, восстановление возможно не удастся.
Чтобы скопировать удалённый файл:
- Выделите файл стрелками.
- Нажмите C (крупная латинская буква C) для копирования.
- Перейдите в целевой каталог (он должен находиться на другом диске/разделе).
- Нажмите C ещё раз для подтверждения копирования.
Если копирование прошло успешно, вы увидите сообщение Copy done! 1 ok, 0 failed.
Чтобы завершить работу, выбирайте Quit до полного выхода из утилиты.
Практические советы и рекомендации
- Всегда копируйте восстановленные файлы на отдельный носитель.
- Если не уверены в исходной файловой системе, создайте образ и работайте с ним.
- Для систем с LVM проверьте lvdisplay и подключайте логические тома перед запуском TestDisk.
- Для зашифрованных разделов сначала расшифруйте раздел, затем применяйте TestDisk к расшифрованному устройству.
Альтернативные инструменты и подходы
Если TestDisk не помог, рассмотрите следующие варианты:
- PhotoRec — sister-проект TestDisk для восстановления отдельных типов файлов по сигнатурам (работает на уровне блоков).
- extundelete — специализирован для ext3/ext4, может восстановить файлы из журналируемых файловых систем (требует отключенного раздела).
- debugfs — в экстренных случаях можно просмотреть inodes вручную и попытаться вывести содержимое.
- Использовать резервные копии (rsync, Borg, restic). Всегда лучший вариант — восстановление из бэкапа.
Сравнение кратко:
- TestDisk — работает с таблицами разделов и восстанавливает файлы из структуры ФС.
- PhotoRec — ищет файлы по сигнатурам, полезен при серьёзном повреждении метаданных.
- extundelete/debugfs — полезны для ext-файловых систем, когда важна метаинформация.
Чек-листы по ролям
Чек-лист для администратора:
- Отключить автоматическое монтирование проблемного диска
- Сделать образ всего диска (dd) и сохранить на отдельном носителе
- Проверить таблицу разделов (fdisk -l / lsblk)
- Запустить TestDisk на образе или на read-only устройстве
- Копировать восстановленные файлы на другой физический диск
- Зафиксировать шаги и логи в incident-отчёте
Чек-лист для обычного пользователя:
- Прекратить работу с компьютером при обнаружении удаления
- Связаться с администратором или специалистом по восстановлению
- При отсутствии администратора — подключить внешний диск и не записывать на исходный
- Запустить TestDisk с помощью инструкций из этой статьи (если уверен)
Критерии приёмки
Успешное восстановление считается достигнутым, если выполнены следующие условия:
- Восстановлен нужный файл или его рабочая копия доступна
- Восстановленный файл читается без ошибок
- Копия сохранена на отдельном носителе
- Выполнен отчёт с перечислением восстановленных объектов
Матрица рисков и смягчения
- Риск: перезапись данных на исходном диске. Смягчение: немедленно отключить запись, создать образ.
- Риск: повреждение при попытке самостоятельного восстановления. Смягчение: работать с образом, а не с оригиналом.
- Риск: утрата конфиденциальных данных при передаче диска третьей стороне. Смягчение: шифровать образ перед передачей.
Небольшие сниппеты и команды-напоминалки
- Просмотр устройств и разделов:
lsblk
sudo fdisk -l- Создать образ диска:
sudo dd if=/dev/sdX of=/path/to/image.dd bs=4M status=progress- Запустить TestDisk от root:
sudo testdisk- Смонтировать раздел только для чтения:
sudo mount -o ro /dev/sdX1 /mnt/recoveryСценарии отказа и что делать дальше
- Если TestDisk не показывает удалённые файлы, попробуйте PhotoRec для поиска по сигнатурам.
- Если журнал файловой системы перезаписан, восстановление метаданных может быть невозможно — возвращаться к резервным копиям.
- При физическом повреждении диска обратитесь в специализированную лабораторию восстановления данных.
Правовые и приватные соображения
При восстановлении данных обращайте внимание на приватность. Если на диске есть личные или конфиденциальные данные третьих лиц, действуйте в соответствии с политикой вашей организации и местными законами о защите данных.
Краткое резюме
TestDisk — мощный инструмент для быстрого восстановления удалённых файлов и разделов на Linux. Он особенно полезен при ошибочном удалении и проблемах с таблицей разделов. Но он не решит случаи, где данные были намеренно перезаписаны (shred) или диск физически повреждён. Всегда сначала создавайте образ и храните копии на отдельном носителе.
Короткое объявление: TestDisk — ваш инструмент первой помощи при потере данных. Он бесплатен, работает в терминале и подходит для большинства сценариев восстановления, если данные не были перезаписаны.
Глоссарий (одно предложение на термин)
- Образ диска — бинарная копия всего содержимого диска, используемая для безопасной работы с данными.
- Монтирование только для чтения — режим подключения раздела, при котором запись запрещена.
- shred — утилита для безопасного удаления файлов путём перезаписи содержимого.
- PhotoRec — утилита для восстановления файлов по сигнатурам, часто используется вместе с TestDisk.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone