Подробный гайд по восстановлению данных с ext4magic
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
- ext4magic работает только с файловыми системами ext3 и ext4.
Никогда не монтируйте раздел в режиме чтения-записи после удаления файлов. Любая запись может перезаписать данные, которые ещё можно спасти. Все действия ниже следует выполнять на образе диска или на размонтированном устройстве.
1. Что такое ext4magic и когда его использовать
ext4magic — утилита для судебно-технического восстановления удалённых файлов в ext3/ext4.
Она анализирует:
- Журнал файловой системы (journal)
- Таблицу инодов (inode table)
- Структуру каталогов и записи dir_entry
Эффективна, если:
- Удаление произошло недавно
- Раздел не перемонтировался в режиме чтения-записи
- Журнал не был очищен или перезаписан
- Файлы не были фрагментированы или перезаписаны
Не поможет, если:
- Блоки файла уже перезаписаны новыми данными
- Включено шифрование fscrypt или metadata_csum (частично поддерживается, но результаты нестабильны)
- Файловая система повреждена или форматирована заново
2. Подготовка (обязательные шаги)
2.1. Размонтирование
sudo umount /dev/sdXN
Если раздел занят:
sudo lsof | grep /dev/sdXN
sudo fuser -mv /dev/sdXN
sudo umount -l /dev/sdXN # ленивое размонтирование (крайний случай)
2.2. Создание образа (настоятельно рекомендуется)
sudo ddrescue -f -n /dev/sdXN /path/to/backup.img /path/to/backup.log
ddrescue предпочтительнее dd, так как пропускает битые сектора и продолжает работу.
2.3. Проверка типа ФС
sudo blkid /dev/sdXN
# или
sudo file -s /dev/sdXN
Убедитесь, что тип: ext3 или ext4.
3. Установка
| Дистрибутив | Команда |
|---|---|
| Debian / Ubuntu | sudo apt install ext4magic |
| Fedora / RHEL / Alma | sudo dnf install ext4magic |
| Arch / Manjaro | sudo pacman -S ext4magic |
| из исходников | ./configure && make && sudo make install |
Зависимости для сборки:
e2fsprogs-dev, libmagic-dev, zlib1g-dev, gcc, make
4. Синтаксис и ключевые опции
sudo ext4magic [опции] /dev/sdXN | /путь/к/образу.img
| Опция | Описание |
|---|---|
| -d /dir | Директория для сохранения восстановленных файлов |
| -f [time] | Фильтр по времени удаления (формат: now-2h, 2024-05-10, +30m) |
| -l | Показать список удалимых файлов (без восстановления) |
| -R | Рекурсивное восстановление каталогов |
| -t "тип" | Фильтр по MIME-типу (через libmagic), например "image/jpeg" |
| -j | Принудительно использовать журнал |
| -n | Сохранять оригинальные имена (если доступны в журнале) |
| -v | Подробный вывод |
| -h | Справка |
Устройства/образы указываются в конце команды.
5. Пошаговые примеры
5.1. Просмотр списка удалённых файлов
sudo ext4magic -l /dev/sdXN | less
Вывод покажет inode, размер, время удаления, путь (если сохранился).
5.2. Восстановить всё, удалённое за последние 3 часа
mkdir -p ~/recovery && sudo ext4magic -d ~/recovery -f now-3h -n /dev/sdXN
5.3. Восстановить конкретную папку рекурсивно
sudo ext4magic -d ~/recovery -R -f now-24h /home/denis/documents /dev/sdXN
5.4. Только изображения и документы
sudo ext4magic -d ~/recovery -t "image/jpeg,image/png,application/pdf" -f now-6h /dev/sdXN
5.5. Работа с образом диска
sudo ext4magic -d ~/recovery -f now-12h -n /path/to/disk.img
6. Ограничения и нюансы ext4
| Фактор | Влияние на восстановление |
|---|---|
| data=journal | Лучший результат (данные в журнале) |
| data=ordered (по умолчанию) | Восстанавливаются иноды и метаданные, данные могут быть фрагментированы |
| data=writeback | Высокий риск потери содержимого файлов |
| metadata_csum=1 | Может нарушать парсинг структуры каталогов в старых версиях ext4magic |
| encrypt=1 (fscrypt) | Имена и содержимое недоступны без ключа шифрования |
| TRIM / SSD | Быстрая очистка блоков делает восстановление практически невозможным |
Совет:
Если журнал большой и не очищался, добавьте -j для приоритетного поиска в журнале.
7. Что делать, если ext4magic не сработал
| Ситуация | Рекомендуемое действие |
|---|---|
| Нет имён файлов | Используйте photorec или foremost (восстановление по сигнатурам) |
| Фрагментированные файлы | Попробуйте extundelete (иногда лучше собирает разрозненные блоки) |
| Повреждённая ФС | Сначала e2fsck -n /dev/sdXN (только чтение!), затем восстановление с образа |
| Нужен точный путь | debugfs → ls -d |
| SSD + TRIM | Данные, скорее всего, уже очищены на контроллере. Восстановление маловероятно. |
8. Чек-лист безопасности
- [ ] Раздел размонтирован или образ создан
- [ ] Не запускался e2fsck, fsck, mkfs после удаления
- [ ] Восстановление идёт на другой диск/раздел
- [ ] Используется sudo или права root
- [ ] Вывод сохраняется в отдельную директорию с достаточным местом
- [ ] После восстановления проверены контрольные суммы/целостность файлов
9. Полезные ссылки и альтернативы
| Утилита | Назначение |
|---|---|
| extundelete | Аналог ext4magic, иногда стабильнее на ext4 |
| testdisk / photorec | Восстановление разделов и файлов по сигнатурам |
| debugfs | Ручной доступ к инодам и блокам ext2/3/4 |
| ddrescue | Безопасное создание образов с повреждённых носителей |
| scalpel / foremost | Карвинг файлов без учёта ФС |
Заключение
ext4magic — мощный, но узкоспециализированный инструмент.
Его эффективность напрямую зависит от:
- Скорости реакции после удаления
- Режима монтирования и настроек ext4
- Отсутствия перезаписи блоков
Идеальный сценарий:
umount → ddrescue → ext4magic -d /recovery -f now-2h -n image.img → проверка → бэкап