Быстрое восстановление удалённых файлов из PageCache

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

linuxpagecacheвосстановление файлов

ℹ️ Когда случайно удалён важный файл, а бэкап ещё не успел создаться, можно попробовать восстановить его прямо из оперативной памяти! Linux активно использует кэширование файлов в оперативной памяти с помощью PageCache, и если файл недавно использовался, его содержимое может всё ещё находиться в памяти.

Шаги

  1. 🗂 1. Определите размер файла:

    Если вы помните примерный размер удалённого файла, это упростит задачу.

  2. 🖥 2. Ищите содержимое кэша с помощью dd и strings:

    Вытаскиваем сырые данные из /dev/mem (кэшированные страницы памяти) и ищем там текстовые строки:

    sudo dd if=/dev/mem bs=1M | strings | grep 'ключевое_слово_из_файла'

    ❕ Это может занять некоторое время, особенно если файл большой.

  3. 👨‍💻 3. Используем grep для бинарных файлов:

    Если файл бинарный, попробуйте найти сигнатуру или известные последовательности байт:

    sudo dd if=/dev/mem bs=1M | grep -a -B 100 -A 100 'фрагмент_содержимого'

    ❗️ Такой метод работает только если после удаления файла кэш ещё не был сброшен, а также если его содержимое не успело быть перезаписано новыми данными.

🔍 Альтернативный подход:

Если доступ к /dev/mem закрыт, можно использовать утилиту debugfs для поиска удалённых файлов на файловых системах ext3/ext4.

sudo debugfs /dev/sdX

❔ Далее используйте команды lsdel и dump для восстановления удалённых inode.

✳️ Этот метод может спасти важные данные в критических ситуациях, когда стандартные инструменты восстановления не подходят или их использование требует много времени.

tags: #полезно #linux #файлы

🧭 @recura_tech

Иллюстрация серверного стека и микросхем: визуальный арт, символизирующий работу с памятью, кэшированием и восстановлением данных в Linux-инфраструктуре.
Схематичное изображение серверов и микросхем, символизирующее обработку данных и кэш PageCache в Linux.

Читайте так же