В Linux удаление тоже чаще снимает запись в таблице файлов, а не затирает данные сразу. Шанс есть, пока вы не записали на этот раздел ничего нового. Рабочий стол (GNOME, KDE) обычно кладёт файлы в корзину. rm в терминале корзину обходит. Ниже - порядок от простого к тяжёлому. Не обещаю, что вернётся всё: на ext4 после свежей записи блоки уходят быстро.

Почему это происходит

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

Удалили в файловом менеджере. Файл лежит в корзине профиля: ~/.local/share/Trash. Это не rm.

Удалили командой rm или скриптом. Записи в каталоге нет. Для ext4 иногда помогает журнал (extundelete, ext4magic), если прошло немного времени и том уже не пишут.

Сформатировали не тот раздел. Быстрое создание новой файловой системы ещё оставляет куски. Полное затирание нулями - почти нет.

Путают btrfs, ext4 и NTFS. Методы разные. PhotoRec ищет файлы по содержимому и не зависит от имён. testdisk чинит таблицу разделов и иногда дерево каталогов.

Ставят testdisk через пакетный менеджер на тот же повреждённый корень. Кэш пакетов пишет на диск. Для единственных данных лучше Live USB и работа с образа.

Как восстановить файлы в Linux пошагово

До любых команд. Не пишите на пострадавший диск: не ставьте туда пакеты, не качайте туда торренты, не восстанавливайте найденное туда же. Не монтируйте том в режиме чтения и записи «чтобы посмотреть». Снимите диск или загрузитесь с Live USB. Результат сохраняйте на другой накопитель. Носитель Live-системы при записи тоже стирается: не выберите в программе записи диск с вашими данными.

  1. Проверьте корзину графической оболочки. В файловом менеджере откройте «Корзина». Восстановите оттуда. В терминале список: ls ~/.local/share/Trash/files. Если удаляли из другого пользователя или с флешки, корзина может быть на этом носителе в папке .Trash-1000.
  2. Переведите раздел в режим только чтения или не монтируйте его. Узнайте имя устройства: lsblk. Для уже смонтированного тома: sudo mount -o remount,ro /точка. Если это системный диск текущей установки - выключайте машину и грузитесь с Live USB (Ubuntu, SystemRescue). Писать пакеты на живой повреждённый корень не надо.
  3. Для только что удалённого файла на ext4 попробуйте утилиту по журналу. Пакеты вроде extundelete или ext4magic ставьте в Live-системе, не на жертву. Укажите устройство раздела и имя или inode, если знаете. Сохранение - каталог на другом диске. Если журнал уже перезаписан, этот путь молчит - это нормально, не «Linux не умеет».
  4. Запустите testdisk, если пропал раздел или дерево папок. Официальный сайт CGSecurity. Выберите диск, тип таблицы, Analyze. Не жмите Write, пока не поняли, что запишете в таблицу разделов. Сначала смотрите список и копируйте файлы на другой носитель пунктом копирования в testdisk. Запись новой таблицы - отдельное решение, его легко сделать не туда.
  5. Если имён нет - PhotoRec по сигнатурам. Та же семья CGSecurity. Укажите диск и типы файлов (jpg, odt, pdf). Папка назначения - другой диск. Имена будут случайные, папки вы рассортируете руками. Это медленно и грязно, зато видит то, что журнал уже забыл.
  6. Остановитесь на щёлкающем диске или после неудачного Write. Не гоняйте третью утилиту «глубже» по живой механике. Снимите образ (ddrescue на другой диск достаточного объёма) и работайте с образом. Если данные стоят нервов, образ лучше отдать в сервис, чем добивать пластины дома.

Честно: на SSD с включенным TRIM шанс ниже, чем на HDD. Система сама помечает блоки свободными. Чем дольше пользуетесь томом после rm, тем меньше смысла в домашних программах.

Часто задаваемые вопросы

rm -rf значит, что файлы уничтожены навсегда? Нет как догма. Это обход корзины. Пока блоки не записали, восстановление реально. После недели работы на том же корне - уже лотерея.

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

Чем Linux отличается от Windows в этой задаче? Корзина и утилиты другие, правило то же: не писать на источник. На ext4 журнал иногда помогает сразу после удаления.

Поможет ли переустановка дистрибутива? Обычно наоборот. Установка пишет тысячи файлов на корень. Сначала Live USB и копия, потом система.

Смотрите также