PhotoRec Linux: восстановление данных с карты памяти | Open Source
Введение
Форматирование карты памяти — одна из самых частых причин потери данных. Особенно болезненно это переживается, когда на устройстве хранится важная фотография, видео, документ или другая информация, которой нет в резервных копиях. В отличие от Windows, Linux предоставляет мощные и бесплатные инструменты для восстановления файлов, даже если файловая система была полностью стерта. Одним из самых эффективных, надёжных и widely используемых инструментов является PhotoRec — часть套ки TestDisk, разработанной Jean-Luc Young и сообществом Linux-разработчиков.
В этой статье мы подробно рассмотрим:
- Как работает PhotoRec
- Какие файловые системы поддерживаются
- Пошаговые примеры команд
- Особенности использования в различных сценариях
- Сравнение с другими инструментами восстановления
- Советы и рекомендации по предотвращению потери данных
Что такое PhotoRec и как он работает?
PhotoRec — это бесплатная утилита командной строки, которая предназначена для восстановления файлов, даже если файловая система повреждена или отформатирована. В отличие от многих других инструментов, PhotoRec не зависит от файловой системы. Он работает на уровне данных, сканируя диск на наличие сигнатур файлов (file signatures или magic numbers), которые уникальны для каждого типа файлов.
Например:
- JPEG-файлы начинаются с
FF D8 FF - PNG — с
89 50 4E 47 - PDF — с
%PDF - MP3 — с
FF FB 43 58
PhotoRec использует эти сигнатуры для выявления и восстановления файлов, даже если они не имеют метаданных (например, имен файлов, путей, меток каталогов).
Преимущества PhotoRec
- Работает без файловой системы (подходит для форматированных, повреждённых, неразмеченных дисков)
- Поддерживает 300+ форматов файлов (фото, видео, аудио, документы, архивы, БД и т.д.)
- Бесплатен и open-source
- Кросс-платформенный (Linux, Windows, macOS, BSD)
- Не записывает данные на исходное устройство, что снижает риск дополнительной потери
Установка PhotoRec в Linux
PhotoRec — часть套ки TestDisk, и её можно установить через менеджер пакетов.
Для Debian/Ubuntu и их производных (включая ALT Linux):
sudo apt update
sudo apt install testdisk
Для Fedora/RHEL/CentOS (через DNF/YUM):
sudo dnf install testdisk
Для Arch Linux и его производных:
sudo pacman -S testdisk
После установки PhotoRec доступен через команду:
photorec
Подключение карты памяти
Перед началом восстановления важно правильно подключить карту памяти.
Шаг 1: Определите устройство
Подключите карту памяти через USB-адаптер или картридер. Затем определите, какое устройство Linux назначил ей:
lsblk
или
sudo fdisk -l
Пример вывода:
Disk /dev/sdb: 31.9 GiB, 34233339904 bytes, 66862000 sectors
Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x34567890
Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 66861983 66859936 31.9G 83 Linux
В данном случае карта памяти — /dev/sdb. Важно: не путать /dev/sdb с /dev/sda (диск компьютера), чтобы не повредить основную систему.
Запуск PhotoRec: Пошаговая инструкция
1. Запуск PhotoRec
sudo photorec
PhotoRec запустится в интерактивном режиме. Вам нужно будет последовательно выбрать:
- Device — устройство (например,
/dev/sdb) - Partition table — тип таблицы разделов (если есть)
- File Opt — параметры восстановления
- Directory — путь для сохранения файлов
2. Выбор устройства
«` Disk /dev/sdb — 31.9 GiB / 34 GB, 66862000 sectors CHS 3898/255/63 Sector size ( logical/physical): 512 / 512 bytes Partition table type: dos Disk identifier: 0x34567890 Partition Start End Size Type 1 2048 66861983 31.9 GiB Linux «`
Выберите /dev/sdb → нажмите Enter.
3. Выбор таблицы разделов
PhotoRec предложит выбрать тип таблицы разделов:
- Intel
- EFI GPT
- Mac
- BSD
- None
- Other
Если карта памяти форматирована, таблица разделов может быть повреждена или отсутствовать. В таком случае выберите None или Other. Это позволит PhotoRec сканировать весь диск без учёта разделов.
4. Выбор типа файлов для восстановления
PhotoRec предлагает несколько вариантов:
- File Opt — выбор форматов
- Search — поиск по всем доступным форматам
- Advanced — расширенные настройки
Для полного восстановления выберите Search → затем All files → Enter.
5. Указание каталога для сохранения
PhotoRec предложит выбрать директорию для сохранения восстановленных файлов. Важно: не сохранять файлы на ту же карту памяти! Иначе вы можете перезаписать данные.
Пример:
/home/user/recovery
PhotoRec создаст папку, например:
/recovery/photorec-2024-05-20-12-34-56/
6. Начало восстановления
PhotoRec начнёт сканирование. Это может занять несколько минут или часов, в зависимости от размера устройства.
⚠️ Не прерывайте процесс!
Пример команды для автоматического запуска PhotoRec
Если вы хотите автоматизировать процесс, можно использовать непрерывный режим (batch mode) с параметрами:
sudo photorec /dev/sdb -t -i -o /home/user/recovery
/dev/sdb— устройство-t— указывает на тип файлов (по умолчанию — все)-i— silent mode (без вопросов)-o— указывает путь для сохранения
⚠️ В batch-режиме PhotoRec не проверяет тип раздела и не спрашивает подтверждение. Используйте с осторожностью.
Поддержка файловых систем
PhotoRec не зависит от файловой системы, но лучше всего работает с:
- FAT12/16/32
- exFAT
- NTFS
- ext2/ext3/ext4
- HFS/HFS+
- Btrfs
- APFS
- UFS
- ISO9660 (CD-ROM)
- и многие другие
Особенности восстановления по файловой системе
| Файловая система | Особенности восстановления |
|---|---|
| FAT32 | Легко восстанавливается, часто используется на SD-картах |
| exFAT | Поддерживается, но может быть сложнее при повреждениях |
| NTFS | Работает, но требует наличия NTFS-драйверов |
| ext4 | Поддерживается, но может быть сложнее при сильных повреждениях |
| APFS | Поддерживается только через TestDisk (PhotoRec) |
PhotoRec не восстанавливает метаданные (имена файлов, пути, владельцев), поэтому восстановленные файлы будут иметь имена вида file0001.jpg, file0002.mp4 и т.д.
Дополнительные возможности PhotoRec
1. Восстановление по имени файла
sudo photorec /dev/sdb -f IMG_*
2. Фильтрация по расширению
sudo photorec /dev/sdb -f *.jpg
3. Восстановление в конкретную папку
sudo photorec /dev/sdb -o /home/user/photos
4. Восстановление только по определённым сигнатурам
sudo photorec /dev/sdb -t jpg,png,mp3
Сравнение с другими инструментами восстановления в Linux
| Инструмент | Поддержка файловых систем | GUI | Сканирование по сигнатурам | Работа с форматированием |
|---|---|---|---|---|
| PhotoRec | Все | ❌ | ✅ | ✅ |
| TestDisk | Все | ✅ | ❌ | ✅ |
| Scalpel | Все | ❌ | ✅ | ✅ |
| Photorec + Foremost | Все | ❌ | ✅ | ✅ |
| R-Linux | FAT, NTFS, ext2/3/4 | ✅ | ✅ | ✅ |
PhotoRec — наиболее универсальный и мощный инструмент, особенно при отсутствии таблицы разделов.
Советы по предотвращению потери данных
- Не сохраняйте восстановленные файлы на исходное устройство
- Всегда делайте резервные копии на USB-диск или cloud (Google Drive, Dropbox, etc.)
- Используйте RAID или RAID-подобные системы для важных данных
- Периодически проверяйте целостность носителей (например,
fsck) - Не форматируйте карту памяти без резервной копии
Примеры реальных сценариев восстановления
Сценарий 1: Форматирование SD-карты Android-телефона
sudo photorec /dev/sdb -i -o /home/user/recovery
— SD-карта подключена как /dev/sdb
— Восстановление всех файлов
— Результат сохраняется в /home/user/recovery
Сценарий 2: Повреждение карты памяти после скачка
sudo photorec /dev/sdb -t jpg,png,mp4 -o /home/user/media
— Только фото и видео
— Путь — /home/user/media
Сценарий 3: Восстановление с USB-флешки, отформатированной в FAT32
sudo photorec /dev/sdc -t -o /home/user/recovery_usb
Заключение
PhotoRec — это не просто инструмент, а спасательный плавательный жилет для тех, кто потерял данные на SD-карте, USB-диске или внешнем HDD. Его способность восстанавливать файлы без зависимостей от файловой системы делает его незаменимым в Linux-среде.
Если вы потеряли важные данные из-за форматирования, не паникуйте. Следуйте этим шагам, и, скорее всего, вы сможете восстановить большую часть ваших файлов.
Полезные ссылки
- официальный сайт TestDisk / PhotoRec
- Справочник по сигнатурам файлов
- GitHub проекта PhotoRec
- Руководство по использованию PhotoRec на Debian/Ubuntu
💡 Примечание: PhotoRec — мощный инструмент, но не гарантирует 100% восстановления. Чем быстрее вы начнете восстановление после форматирования, тем выше шансы на успех.
SHV255
Приветствую! Вчера случайно стер фото с SD-карты (как раз те самые, с отпуска 😩), решил попробовать PhotoRec по вашему гайду. Запустил, всё прошло, но в папке с восстановленными файлами оказалось… 500 файлов с названиями вроде ‘photo_12345.dat’. Как понять, какие из них — именно мои фото? Может, есть способ отфильтровать по формату или размеру?
forum
Привет! 😄 В таких случаях часто помогает фильтрация по расширению — например, если фото в JPG или PNG, можно поискать файлы с соответствующим расширением (хотя PhotoRec обычно сохраняет их как .dat). Я обычно открываю несколько файлов через `file` в терминале, чтобы понять их тип. Например, `file photo_12345.dat` покажет, это jpg, png или что-то другое. А ещё можно попробовать переименовать файлы, добавив .jpg вручную, и посмотреть, откроются ли они в галерее. Главное — не перезаписывать SD-карту, пока не проверишь всё!