В 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-системы при записи тоже стирается: не выберите в программе записи диск с вашими данными.
- Проверьте корзину графической оболочки. В файловом менеджере откройте «Корзина». Восстановите оттуда. В терминале список:
ls ~/.local/share/Trash/files. Если удаляли из другого пользователя или с флешки, корзина может быть на этом носителе в папке.Trash-1000. - Переведите раздел в режим только чтения или не монтируйте его. Узнайте имя устройства:
lsblk. Для уже смонтированного тома:sudo mount -o remount,ro /точка. Если это системный диск текущей установки - выключайте машину и грузитесь с Live USB (Ubuntu, SystemRescue). Писать пакеты на живой повреждённый корень не надо. - Для только что удалённого файла на ext4 попробуйте утилиту по журналу. Пакеты вроде
extundeleteилиext4magicставьте в Live-системе, не на жертву. Укажите устройство раздела и имя или inode, если знаете. Сохранение - каталог на другом диске. Если журнал уже перезаписан, этот путь молчит - это нормально, не «Linux не умеет». - Запустите testdisk, если пропал раздел или дерево папок. Официальный сайт CGSecurity. Выберите диск, тип таблицы, Analyze. Не жмите Write, пока не поняли, что запишете в таблицу разделов. Сначала смотрите список и копируйте файлы на другой носитель пунктом копирования в testdisk. Запись новой таблицы - отдельное решение, его легко сделать не туда.
- Если имён нет - PhotoRec по сигнатурам. Та же семья CGSecurity. Укажите диск и типы файлов (jpg, odt, pdf). Папка назначения - другой диск. Имена будут случайные, папки вы рассортируете руками. Это медленно и грязно, зато видит то, что журнал уже забыл.
- Остановитесь на щёлкающем диске или после неудачного Write. Не гоняйте третью утилиту «глубже» по живой механике. Снимите образ (
ddrescueна другой диск достаточного объёма) и работайте с образом. Если данные стоят нервов, образ лучше отдать в сервис, чем добивать пластины дома.
Честно: на SSD с включенным TRIM шанс ниже, чем на HDD. Система сама помечает блоки свободными. Чем дольше пользуетесь томом после rm, тем меньше смысла в домашних программах.
Часто задаваемые вопросы
rm -rf значит, что файлы уничтожены навсегда?
Нет как догма. Это обход корзины. Пока блоки не записали, восстановление реально. После недели работы на том же корне - уже лотерея.
Можно восстановить на тот же раздел, чтобы не искать флешку? Не стоит. Новая запись затирает соседей. Только другой диск.
Чем Linux отличается от Windows в этой задаче? Корзина и утилиты другие, правило то же: не писать на источник. На ext4 журнал иногда помогает сразу после удаления.
Поможет ли переустановка дистрибутива? Обычно наоборот. Установка пишет тысячи файлов на корень. Сначала Live USB и копия, потом система.
