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

Как восстановить удаленные файлы в Linux руководство для начинающих

Случайное удаление важных файлов — одна из самых распространённых и стрессовых ситуаций для пользователей любой операционной системы, включая Linux. В отличие от графических сред вроде GNOME или KDE, где удалённые файлы сначала попадают в «Корзину», команда rm в терминале удаляет файлы безвозвратно — без возможности отмены через интерфейс. Однако даже после полного удаления данные не исчезают мгновенно с диска. Файловая система лишь помечает соответствующие сектора как «свободные», а сами данные остаются на носителе до тех пор, пока не будут перезаписаны новой информацией.

Это даёт пользователю шанс восстановить недавно удалённые файлы — особенно если после удаления вы не записывали большие объёмы данных на тот же раздел. Чем быстрее вы начнёте процесс восстановления, тем выше вероятность успеха. Важно понимать: восстановить файлы, удалённые месяц или год назад, практически невозможно, если диск активно использовался. Но если удаление произошло недавно — шансы велики.

В Linux существует несколько инструментов для восстановления данных, но одним из самых надёжных и проверенных является TestDisk — бесплатная утилита с открытым исходным кодом, разработанная для восстановления потерянных разделов и удалённых файлов. Несмотря на текстовый интерфейс, TestDisk интуитивно понятен и подходит даже для начинающих. Он поддерживает множество файловых систем: ext2/ext3/ext4, FAT, NTFS, exFAT и другие.

Перед началом восстановления рекомендуется:

  • Немедленно прекратить запись данных на раздел, с которого были удалены файлы.
  • Если возможно, подключить диск к другому компьютеру как вторичный (read-only) для восстановления — это минимизирует риск перезаписи.
  • Создать резервную копию всего раздела с помощью dd или ddrescue, если данные критически важны.

Как восстановить удаленные файлы в Linux с помощью TestDisk

Шаг 1. Установите TestDisk. В большинстве дистрибутивов он доступен в официальных репозиториях.

Для Ubuntu, Linux Mint, Debian и производных:

sudo apt update
sudo apt install testdisk

Для Fedora, CentOS, RHEL:

sudo dnf install testdisk

Для Arch Linux и производных:

sudo pacman -S testdisk

Если утилита недоступна в репозитории, её можно скачать с официального сайта: cgsecurity.org.

Шаг 2. Запустите TestDisk с правами суперпользователя — это необходимо для прямого доступа к диску:

sudo testdisk

Шаг 3. При первом запуске появится окно выбора действия. Используйте клавиши со стрелками для навигации и нажмите Enter. Выберите «Create» (Создать новый файл журнала), чтобы TestDisk сохранил лог операций для отладки.

Создайте новый файл журнала

Шаг 4. TestDisk автоматически определит подключённые диски. Выберите нужный диск (например, /dev/sda) и нажмите Enter. Если система запросит права sudo, введите пароль администратора.

Sudo

Шаг 5. На следующем экране выберите тип таблицы разделов (обычно Intel для большинства ПК) и нажмите Enter.

Шаг 6. В главном меню TestDisk выберите опцию «Advanced» (Дополнительно) — именно здесь находится функция восстановления файлов.

Дополнительно

Шаг 7. Вы увидите список разделов. Выберите тот, с которого были удалены файлы, и нажмите Enter.

Шаг 8. В меню раздела выберите «Undelete» (Восстановить). TestDisk начнёт сканирование на наличие удалённых файлов.

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

Шаг 9. После завершения сканирования TestDisk отобразит список удалённых файлов, выделенных красным цветом. Используйте клавиши со стрелками для навигации. Удалённые файлы помечены символом *.

Шаг 10. Чтобы восстановить файл, наведите на него курсор и нажмите клавишу C (от «Copy»). TestDisk предложит выбрать каталог для сохранения. Укажите путь на другом диске или разделе (например, /home/ваше_имя/восстановленные), чтобы избежать перезаписи исходных данных.

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

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

Альтернативные инструменты

Хотя TestDisk — мощный инструмент, для файловых систем ext (ext3/ext4) существуют более специализированные утилиты:

  • extundelete — работает только с ext3/ext4, восстанавливает файлы по inode.
  • PhotoRec — разработан теми же авторами, что и TestDisk; восстанавливает файлы по сигнатурам (подходит даже при повреждённой файловой системе).
  • scalpel или foremost — инструменты для цифровой криминалистики, восстанавливающие данные по типу файла.

Выводы

Восстановление удалённых файлов в Linux — вполне выполнимая задача при условии оперативных действий и правильного выбора инструментов. TestDisk остаётся одним из самых универсальных решений благодаря поддержке множества файловых систем и простоте использования. Однако профилактика всегда лучше, чем лечение: регулярно делайте резервные копии с помощью rsync, Timeshift или облачных сервисов, а вместо rm используйте псевдонимы вроде alias rm='rm -i' для подтверждения удаления.

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