Восстановление данных с RAW раздела с помощью TestDisk. TestDisk

03.08.2023 Эмуляторы

Этот пример проблемной (Пример восстановления ) ситуации представляет собой пошаговые действия при работе с TestDisk, позволяющие восстановить и исправить поврежденные/ый раздел/ы.

Одним из условий при работе в программе является:

  • Запуск программы должен осуществляться с привилегиями / правами "администратора".

Важные моменты для использования TestDisk:

  • Чтобы перейти в TestDisk, используйте клавиши стрелки Вверх/Вниз и PageUp/PageDown .
  • Чтобы продолжить, подтвердите свой выбор нажатием клавиши Enter .
  • Чтобы вернуться к предыдущему дисплею или выйти TestDisk, используйте клавишу Q (выход ).
  • Чтобы сохранить изменения в сделанные при работе TestDisk, вы должны подтвердить их клавишей Y (да) и / или Enter
  • Для записи данных в раздел MBR, вам необходимо выбрать "Write" посредством выбора с клавиатуры и нажмите клавишу Enter .

Признаки

1. Если на жестком диске первичный раздел содержит операционную систему, то, скорее всего, которая больше не загрузиться; из-за в первичном разделе загрузочного сектора.
2. Если жесткий диск содержит вторичные разделы, к которым невозможно получить доступ или вы можете подключаете свой диск на второй канал в другом компьютере (обычно там подключены CD / DVD привод),и наблюдаются следующие симптомы следующие симптомы бы отметил следующее:

  1. Проводник Windows или Дисковый менеджер отображает первый первичный раздел как raw неотформатированный и Windows показывает:
    The drive is not formatted, do you want to format it now? [Ваш диск неотформатирован. Отформатировать его сейчас? ]
  2. Логический раздел отсутствует. В ПРОВОДНИКЕ Windows логический диск не доступен. В Оснастке Управление дисками отображает только "незанятое пространство", на месте где этот логический раздел был расположен.

Запуск TestDisk

Если TestDisk еще не установлен, он может быть загружен с TestDisk Download . Распакуйте все файлы из архива включая подпапки.

Чтобы восстановить потерянный раздел или восстановить файловую систему жесткого диска, USB накопителя, смарт-карты..., вы должны обладать необходимыми правами для доступа к устройству.

Чтобы восстановить раздел с образа устройства или восстановить файловую систему образа, запустите

  • testdisk image.dd чтобы разделить образ
  • testdisk image.E01 чтобы восстановить файлы с образа Encase EWF
  • testdisk "image.???" если образ Encase разбит на несколько файлов.

Чтобы восстановить файловую систему которая не отображается в TestDisk, запустите testdisk device , например

  • testdisk /dev/mapper/truecrypt0 или testdisk /dev/loop0 чтобы восстановить файлы загрузочных секторов NTFS или FAT32 с раздела TrueCrypt. Этот же метод работает с файловыми системами зашифрованными с помощью cryptsetup/dm-crypt/LUKS.
  • testdisk /dev/md0 чтобы восстановить файловую систему на Linux Raid устройстве.

Создание лога

  • Пользуйтесь кнопками стрелок вниз/вверх для выбора "проблемного" жесткого диска.

По возможности, выбирайте низкоуровневые (raw) /dev/rdisk* устройства вместо логических /dev/disk* для повышения скорости передачи данных.

Выбор типа Таблицы Разделов

TestDisk отображает типы Таблицы Разделов (Partition Table types).

  • Выберите пункт меню "Анализ" ("Analyse") для проверки структуры разделов текущего диска и поиска "потерянных" разделов.
  • Нажмите Enter для продолжения.
  • Ответьте на вопрос Should TestDisk search for partition created under Vista? (Производить поиск разделов созданных под ОС Vista?).
  • Выберите этот раздел и нажмите p для отображения списка файлов (Для выхода из режима отображения списка файлов, нажмите q ).

Все папки и файлы отображаются нормально. (Утилита не понимает русский язык, поэтому файлы с русскими именами будут отображены не корректно)

  • Нажмите Ввод (Enter) для продолжения.

Сохранить таблицу разделов или продолжить поиск?


  • Когда все искомые разделы присутсвтуют и данные о них отображаются правильно, вам следует выбрать пункт Write в меню чтобы сохранить структуру разделов. Пункт меню Extd Part дает вам возможность решить будет ли расширенный раздел использовать все доступное дисковое пространство или только необходимое (минимальное).
  • Так как первый раздел все еще отсутствует , выберите пункт меню Deeper Search (если он не был выбран автоматически) и нажмите (Enter) для продолжения.

Раздел все еще отстутсвует: Deeper Search

Deeper Search так же ищет резервную копию загрузочного сектора FAT32, резервную копию суперблока загрузочного сектора NTFS , резервную копию суперблока ext2/ext3 чтобы найти больше разделов,

После Deeper Search, результаты будут отображены как на рисунке ниже:
Первый раздел "Partition 1" был найден с помощью резервной копии загрузочного сектора. В нижней строке окна можно увидеть сообщение "NTFS found using backup sector!" и размер раздела. Второй раздел "Partition 2" отображен дважды с различными размерами.
Оба раздела помечены со статусом D для удаления, потому что они частично совпадают.


The file system of the upper logical partition (label Partition 2) is damaged (click on thumb).
  • Let this partition Partition 2 with a damaged file system marked as D(deleted) .
  • Highlight the second partition Partition 2 below
  • Press p to list its files.

It works, you have found the correct partition!

  • Use the left/right arrow to navigate into your folders and watch your files for more verification

Note: FAT directory listing is limited to 10 clusters, some files may not appears but it doesn"t affect recovery.

  • Press q for Quit to go back to the previous display.
  • The available status are Primary, * bootable, Logical and Deleted.

Using the left/right arrow keys, change the status of the selected partition to L(ogical)

  • Confirm at Write with Enter, y and and Ok.

Now, all partitions are registered in the partition table.

Восстановление загрузочного сектора NTFS

The boot sector of the first partition named Partition 1 is still damaged. It"s time to fix it. The status of the NTFS boot sector is bad and the backup boot sector is valid. Boot sectors are not identical.


  • To copy the backup of the boot sector over the boot sector, select , validate with Enter, use y to confirm and next Ok.

More Information about repairing your boot sector under TestDisk Menu Items . The following message is displayed:


The boot sector and its backup are now both ok and identical: the NTFS boot sector has been successfully recovered.

  • Press Enter to quit.

  • TestDisk displays You have to restart your Computer to access your data so press Enter a last time and reboot your computer.

Восстановление удаленных файлов

TestDisk может восстанавливать

  • файлы из разделов NTFS начиная с версии 6.11 .

If it doesn"t work or for other filesystem, try PhotoRec , a signature based file recovery utility.

Приветсвую вас дорогие читатели!

Совсем недавно я размещал статью про программу для восстановления данных . Но к сожалению я не подумал о том, что не все пользователи смогут с ней обращаться... Сегодня же я хочу исправить эту проблему. Некоторые пользователи просили меня сделать видеообзор, но так как я в данный момент нахожусь на отдыхе:)) И поэтому не распалагаю нужным материалом, то есть: нет установленной Windows и нет поврежденного сьемного носителя. То я решил сделать простую подборку скринов с описанием всех действий!

Все скрины будут сделаны с операционной системы Linux. Но в Windows все функции будут такими же.


1. Данное окно нам предлагает сделать Log файл всей работы Но я думаю, что в данной ситуации это не имеет смысла, хотя вы может думаете иначе поэтому выбираем нужную опцию и подтверждаем выбор. Жмем Enter

2. Появляются нужные носители, выбираем нужный и подтвержаем нажатием Proceed .

3. Далее нам предлагается выбрать тип таблицы разделов в большинстве случаев это тип Intel / PC Partition .

4. Появляется меню с выбором операции. Для начала выбираем пункт Analyse для проведения анализа диска.

5.В разделе Analyse Выбираем Quick Search .

6. Ещё раз подтверждаем и видим, что проводится анализ.

7. После того как анализ завершился можно приступать к восстановлению данных. На данный момент нас интересуют 2 действия.

  • Получить интересующий нас список файлов нажатием P
  • Попробывать загрузить резервную копию таблицы разделов нажатием L это проведет к первоначальному состоянию устройсвта до его поломки.

Выведем список фалов нажатием Р

Отсюда же можно попробовать скопировать особо важные файлы и папки, особенно если боитесь, что данные не восстановятся, а наоборот потеряете последнюю, пусть даже и битую информацию. Выделяем нужную информацию и нажимем С для ее копирования. Выбираем папку куда будут сохраненны эти файлы, в Windows эти файлы сохраняются в той же папке где находится сама программа .

8. Особо важную инормацию по вашему мнению мы сохранили. Теперь будем восстанавливать диск до его первоначального вида, то есть до момента его поломки. Для этого нажатием клавиши Q возвращаемся к пункту 7.

Опробуем вернуть носитель в его прежние состояние. Нажимаем L . В окне которое появилось выбираем Load

И по запросу программы подтверждаем наш выбор надатием Y

Ждем пока процесс восстановления подойдет к концу. Я тогда радуемся, что все наши данные восстановленны и носитель работает как прежде.
Желаю всем удачного восстановления утеряных данных, а ещё лучше что бы такое не происходило ни с кем! Потому, что я как ни кто другой знаю что это такое потерять очень важные данные над которыми трудился неделями, а то и месяцами.

Ещё раз хотелось бы извениться перед читателями за то, что не предусмотрел. И за то что в данный момент выложил всего лишь скриншоты.

Если у кого-то возникли какие-то вопросы, тогда пишите мне на [email protected]

Если данные для вас чрезвычайно важны, и вы сомневаетесь в своих силах/знаниях, немедленно отключайте носитель и несите его в сервисный центр. Попытки самостоятельно решить проблему могут усугубить ситуацию, вплоть до полной невозможности что-либо восстановить.

Первым делом, очень важно свести к минимуму работу с повреждённым накопителем, иначе вероятность восстановления данных существенно снижается.

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

Если вы по ошибке установили операционную систему, на диск/раздел с важными данными, то загружать систему с этого диска/раздела категорически не рекомендуется. Для дальнейней работы следует использовать LiveCD/USB или систему, загружаемую с другого диска/раздела.

Кроме того, для сохранения восстанавливаемых данных потребуется ещё один накопитель ёмкости, не меньшей исходного.

Чтобы снизить возможные потери информации при неудачной попытке восстановления, следует сделать полный дамп повреждённого тома (ФС, раздел, либо весь диск, в зависимости от того как располагались исходные данные) через dd или ddrescue на отдельный носитель и дальше экспериментировать с этим дампом:

sudo dd if =/ dev/ sdXY of =/ path/ to/ dump.img

testdisk

Нередко судьба подкидывает нам такое, что послезавтра сдавать диплом, а сегодня умер жесткий диск со всей информацией. В Linux стандартом де-факто в области восстановления данных является утилита testdisk. Однако нередко человек, впервые сталкиваясь с ней, находит ее для себя малопонятной и отказывается от нее, т.к. она не имеет графического интерфейса.

Многих новичков в Linux, привыкших к GUI программам в Windows, пугает использование консольных программ, требующих ввода нужных команд с малоизвестными им аргументами и ключами. Нередко мануалы к такому софту оказываются или на английском языке, или достаточно сложны, чтобы разобраться с первого взгляда, и человек отступается от своей цели. Нередко ему снова приходится обращаться к Windows, искать там «надежную и понятную» (GUI) программу, затрачивая на это уйму времени, вместо того, чтобы убрать у себя табу на использование консоли.

Специально для написания статьи я нашел старую ненужную флешку, записал на нее немного музыки и видео. После этого в GParted изменялись размеры и положение раздела (при этом флешка выдергивалась из компа в самый кульминационный момент), ну и напоследок все было добито созданием новой таблицы разделов.

Итог - при подключении флешка не обнаруживается компьютером, на ней важная информация, будем ее восстанавливать.

1. Для начала нужно установить testdisk. Для этого в консоли выполняем:

sudo apt-get install testdisk

2. Запускаем testdisk с администраторскими правами

sudo testdisk

Появляется окошко приветствия testdisk, нам предлагается вести лог работы. В данном случае не вижу в этом смысла, но вы можете поступать иначе. Выбираем нужный пункт меню и подтверждаем выбор: No Log → Enter .

3. Появляются доступные носители, выбираем нужный, подтверждаем нажатием Proceed .

4. Предлагается выбрать тип таблицы разделов, думаю, что в большинстве случаев будет тип Intel / PC Partition .

5. Появляется меню с выбором операции. Для начала делаем анализ, выбрав Analyse .

6. В разделе Analyse Выбираем Quick Search .

7. Последний вопрос перед началом анализа «Должен ли testdisk искать разделы созданные с использованием Windows Vista?». В моем случае - нет, поэтому я выбираю N .

Побежал анализ…

Анализ закончен. Предупреждение. Или некоторые разделы не были найдены, или таблица разделов не может быть записана, т. к. разделы перекрываются.

8. Вот теперь можно начинать восстановление информации. В данном случае нас интересует 2 варианта действий.

    Получить список файлов, содержащихся в данном разделе нажатием Р с дальнейшим восстановлением интересующих файлов из списка

    Попробовать загрузить резервную копию таблицы разделов нажатием L , это приведет носитель к первоначальному состоянию до поломки

Выводим список файлов нажатием Р.

Отсюда же можно попробовать скопировать особо важные файлы и папки, особенно если боитесь, что данные не восстановятся, а наоборот потеряете последнюю, пусть даже и битую информацию. Для примера я буду копировать музыкальный альбом. Выделяем нужное курсором, нажимаем С для копирования. Появляется файловый менеджер, где можно выбрать куда будем копировать. В домашнем каталоге для этих целей специально создана папка Restored .

Заходим в нее и подтверждаем копирование нажатием Y .

Открываем папку в Nautilus, видим, что все файлы на месте и их можно прослушать.

9. Итак, особо важную информацию на всякий случай сохранили, однако наша цель приведение носителя в нормальное рабочее состояние. Из каждого пункта меню testdisk можно вернуться в предыдущий с помощью клавиши Q . Таким образом возвращаемся к 8 пункту.

Попробуем вернуть все в первоначальное до поломки состояние, загрузив резервную копию таблицы разделов. Нажимаем L . В появившемся окошке выбираем Load

…и подтверждаем наши намерения Y .

Все, процесс восстановления закончен, отключаем и снова подключаем поврежденный носитель. Теперь он обнаруживается, все файлы на месте, в целости и сохранности.

Желаю вам удачных восстановлений!

extundelete

Установить extundelete можно выполнив команду:

sudo apt-get install extundelete

Как только вы поняли, что удалили нужные файлы, надо отмонтировать раздел:

umount / dev/< partition>

или перемонтировать в режиме «только чтение»

mount -o remount,ro / dev/< partition>

Так же следует создать резервную копию раздела прежде, чем начинать с ним работу по восстановлению файлов:

dd bs =4M if =/ dev/< partition> of =partition.backup

Зайдите в каталог, в который будут восстанавливаться удаленные данные. Он должен быть расположен на разделе отличном от того, на котором хранились восстанавливаемые данные:

cd /< путь_к_каталогу_куда_восстанавливать_данные>

Запустите extundelete, указав раздел, с которого будет происходить восстановление и файл, который необходимо восстановить:

sudo extundelete / dev/< partition> --restore-file /< путь к файлу>/< имя_файла>

Можно так же восстанавливать содержимое каталогов:

sudo extundelete / dev/< partition> --restore-directory /< путь_к_директории>

Можно задать для восстановления рамки по времени удаления восстанавливаемых файлов, например так:

sudo extundelete --after < дата> / dev/< partition> --restore-directory /< путь_к_директории>

Дату необходимо указывать в UNIX-времени :

date -d "March 28 19:34" +% s

Некоторые файлы могут восстановиться под другим именем и расширением, хотя это не повлияет на содержимое файла.

foremost

Хорошо подходит для восстановления фотографий и скриншотов с битых карт памяти и флешек.

foremost - поиск и восстановление данных по сигнатурам.

Установка:

sudo apt-get install foremost

Пример использования для восстановления изображений с диска /dev/sdb в каталог ~/out_dir:

sudo foremost -t jpg,gif,png,bmp -i / dev/ sdb -o ~/ out_dir

GUI для Foremost, можно скачать на дружественном форуме.

R-Studio

Утилита является платной. Тем не менее, судя по нескольким топикам на форуме, в тяжёлых случаях она может дать лучший результат, чем testdisk.

R-Studio позволяет восстанавливать утраченные данные с поврежденного, форматированного, переформатированного или удаленного диска (раздела) локального или удаленного компьютера вне зависимости от используемой системы (платформы).

Scalpel

Установка:

sudo apt install scalpel

Scalpel анализирует файлы по header и footer, заданным в шаблоне

/etc/scalpel/scalpel.conf

Чтобы задать типы файлов для распознавания, нужно в указанном выше шаблоне раскомментировать соответствующие строки. Однако, будьте внимательны: зачастую header и footer ваших файлов могут отличаться от заданных в шаблоне для такого типа файлов (к примеру, sony jpg). В таком случае нам нужно самостоятельно выяснить header и footer искомых файлов на примере имеющегося аналогичного файла:

Xxd -l 0x04 filename; xxd -s -0x04 filename

и вписать их в конфигурационный файл.

Использование scalpel:

sudo scalpel input.iso -o outputdir

В качестве исходного пути может использоваться как путь к реальному устройству /dev/…, так и путь к образу диска. Директория outputdir для сохранения файлов обязательно должна быть пустой.


Недавно у меня на компьютере внезапно пропал логический раздел жёсткого диска, и тут я подумал что данные уже не восстановить, но все же надежда была, потому я начал поиски решения восстановления исчезнутого тома жёсткого диска.
И вот я наткнулся на эту очень многофункциональную утилиту TestDisk с помощью которой мне удалось восстановить пропавший раздел жёсткого диска, потому я выражаю свою благодарность разработчиком данной утилиты.
Во первых TestDisk программа распространяться с открытым исходным кодом и под лицензией GNU General Public License, потому платить за использование вам не привидеться, должен отметить что утилита не уступает подобным платным аналогам.
TestDisk это мощная бесплатная программа для восстановления потерянных данных. Она была разработана в первую очередь, что бы помочь восстановить утраченные разделы и/или восстановить загрузочную способность дисков если эта проблема вызвана программно, вирусами или ошибками человека (таких как случайное удаление Таблицы Разделов). Восстановить Таблицы Разделов TestDisk-ом очень легко.

TestDisk может:

  • Исправлять таблицу разделов, восстанавливать удаленные разделы;
  • Восстанавливать загрузочный сектор FAT32 из резервной копии;
  • Перестраивать (реконструировать) загрузочный сектор FAT12/FAT16/FAT32;
  • Исправлять таблицу FAT;
  • Перестраивать (реконструировать) загрузочный сектор NTFS;
  • Восстанавливать загрузочный сектор NTFS из резервной копии;
  • Восстанавливать MFT использую MFT зеркало;
  • Определять резервный SuperBlock ext2/ext3/ext4;
  • Восстанавливать удаленные файлы на файловых системах FAT, NTFS and ext2;
  • Копировать файлы с удалённых FAT, NTFS and ext2/ext3/ext4 разделов.
TestDisk подойдёт как для новичков,так и для экспертов. Для тех, кто знает мало или вообще ничего не знает о методах восстановления данных, TestDisk может быть использован для сбора детальной информации о не загружающихся дисках которая затем может быть использована для дальнейшего анализа. Те, кто уже знаком с такими процедурами, должен найти TestDisk удобным инструментом при выполнении восстановления.
Еще очень важно то что утилита работает под множеством ОС:
  • DOS (real или в Windows 9x, DOS-box);
  • Windows (NT4, 2000, XP, 2003, Vista);
  • Linux;
  • FreeBSD, NetBSD, OpenBSD;
  • SunOS;
  • MacOS.
что делает её просто не заменимой.

TestDisk может находить и реконструировать потеряные разделы для множества файловых систем:

  • BeFS (BeOS)
  • BSD disklabel (FreeBSD/OpenBSD/NetBSD)
  • CramFS, Compressed File System (сжатая файловая система)
  • DOS/Windows FAT12, FAT16 and FAT32
  • Windows exFAT
  • HFS, HFS+ and HFSX, Hierarchical File System (иерархическая файлова система)
  • JFS, IBM"s Journaled File System (журналируемая файлова система IBM)
  • Linux ext2, ext3 and ext4
  • Linux LUKS encrypted partition (шифрованый раздел Linux)
  • Linux RAID md 0.9/1.0/1.1/1.2
    • RAID 1: mirroring (зеркальный рейд)
    • RAID 4: striped array with parity device
    • RAID 5: striped array with distributed parity information
    • RAID 6: striped array with distributed dual redundancy information
  • Linux Swap (versions 1 and 2)
  • LVM and LVM2, Linux Logical Volume Manager
  • Mac partition map
  • Novell Storage Services NSS
  • NTFS (Windows NT/2000/XP/2003/Vista/2008)
  • ReiserFS 3.5, 3.6 and 4
  • Sun Solaris i386 disklabel
  • Unix File System UFS and UFS2 (Sun/BSD/...)
  • XFS, SGI"s Journaled File System
TestDisk специализируется на восстановление данных с поврежденных жестких дисков. (с плохими блоками (битыми секторами)), восстановление данных с съёмных носителей (Floppy/CD/DVD/USB), восстановлению таблиц разделов жёсткого диска.

Так давайте рассмотрим пример восстановления утерянного раздела жёсткого диска.
Запустить TestDisk можно как в самой операционной системе Windows , так и с под
DOS с USB накопителя или LiveUSB в случае если полетел раздел на котором была установлена операционная система.
Для примера возьмемвосстановление случайно удаленного логического раздела NTFS.
Восстановление раздела FAT32 (вместо приведенного в данном руководстве NTFS раздела) может быть достигнуто, если проделывать такие же действия.

Запускать программу нужно с привилегиями / правами "администратора", если мы работаем с под ОС, для этого нужно нажать правой кнопкой мыши по testdisk_win.exe, предварительно распаковав из архива на компьютер.

Появится окно программы, интерфейс программы на английском но довольно все обходится в нажатие несколько клавиш:

  • Чтобы перейти в TestDisk, используйте клавиши стрелки Вверх/Вниз и PageUp/PageDown .
  • Чтобы продолжить, подтвердите свой выбор нажатием клавиши Enter .
  • Чтобы вернуться к предыдущему дисплею или выйти TestDisk, используйте клавишу Q (выход ).
  • Чтобы сохранить изменения в сделанные при работе TestDisk, вы должны подтвердить их клавишей Y (да) и / или Enter
  • Для записи данных в раздел MBR, вам необходимо выбрать "Write" посредством выбора с клавиатуры и нажмите клавишу Enter .
И так первый запрос в окне программы предоставляет создавать отчет о роботе программы или нет, для этого остановимся на пункте Create (создать отчет) и нажмем Enter (Продолжить).


Далее предоставляется выбрать жёсткий диск так как их может быть несколько, плюс съемные носители.


Стрелками выбираем наш жёсткий диск и жмем Enter.

TestDisk отобразит типы Таблицы Разделов (Partition Table types).



Выбираем нужный тип Таблицы Разделов. Обычно правильное значение уже выбрано "по умолчанию", поскольку TestDisk при анализе определяет тип таблицы автоматически.
Нажимаем Ввод (Enter) для продолжения.

TestDisk отображает следующее меню Статус Таблицы Разделов

Выбираем пункт меню "Анализ" ("Analyse") для проверки структуры разделов текущего диска и поиска "потерянных" разделов.
Опять жмем Enter для продолжения выполнения процедуры.

Далее будет отображена текущая структура разделов. Изучите её на предмет отсутствия разделов или ошибки.
Здесь мы уже можем посмотреть нашли мы утеряны разделы жёсткого диска
Выбираем Quick Search (Быстрый поиск) и жмем Enter для продолжения.
Далее программа выдает запрос Should TestDisk search for partition created under Vista? (Производить поиск разделов созданных под ОС Vista?).

Обязательно жмем Y (ДА) если мы восстанавливаем данные с под ОС Windows Vista & Seven , да если вы просто нажмете да нечего страшного не произойдет.

TestDisk должен найти разделы жёсткого диска, включая потерянные.


Для просмотра что находится на каждом разделе, выбираем раздел и жмем клавишу P для просмотра списка файлов.
Все папки и файлы должны отображаются нормально. (Утилита не понимает русский язык, поэтому файлы с русскими именами будут отображены не корректно) , для копирования файлов на другой диск жмем клавишу С (копировать) , но перед этим нужно указать путь для сохранения файлов.

Для выхода жмем клавишу Q , также для просмотра данных о диске в самом низу указаны данные её размер и файловая система.
Нажмите Ввод (Enter) для продолжения.
Появится следующее окно:


Для более тщательного поиска жмем Deep Search это если быстрый поиск не нашол утерянных разделов, для записи данных структуры таблиц диска в раздел MBR выбираем Write и жмем Enter (в случае если TestDisk правильно определил разделы), после чего наша ОС должна загрузиться со всема логическими разделами жёсткого диска.

Есть какие то замечания или дополнения, с радостью выслушаю вас.

TESTDISK и PHOTOREC

Краткое описание

Первой программой, которую мы рассмотрим, будет набор TestDisk , состоящий из трёх утилит:

  • первая утилита - TestDisk - умеет исправлять таблицы разделов, восстанавливать удалённые разделы, восстанавливать удалённые файлы с разделов FAT, NTFS и EXT2 (будем надеяться, что появится поддержка и других файловых систем), копировать файлы с удалённых разделов FAT, NTFS, EXT2/3/4, а также проводить операции над разделами FAT, NTFS, EXT2/3/4 и т.д. (исправ­лять загрузочные сектора, восстанавливать MFT и суперблоки из резервных копий);
  • вторая утилита - PhotoRec - позволяет восстанавливать данные практически с любых носи­телей и любых файловых систем, даже повреждённых, но только в режиме RAW;
  • третья утилита - FIdentifi - является дополнением к PhotoRec , она позволяет определить бо­лее точно форматы восстановленных файлов, а также показывает, сможет ли программа PhotoRec восстанавливать файлы тех форматов, с которыми та изначально незнакома, но их сигнатуры были добавлены пользователем вручную.

Программа TestDisk не только полностью бесплатная, но и мультиплатформенная, и работает в нескольких системах: Windows, Linux, FreeBSD, MacOS, DOS и SunOS. Плюс она не требует уста­новки, достаточно скачать архив с готовыми исполняемыми файлами, распаковать его и запустить нужную утилиту, а также доступна в виде исходников, которые можно скомпилировать чисто под свою систему.

Наиболее правильным вариантом является установка программы из репозиториев, но на момент написания статьи в репозиториях Debian и Ubuntu находилась более старая версия 6.11 от апреля 2009 г., в которой некоторые функции отсутствуют (например, утилита FIdentify ). Как известно, прогресс не стоит на месте, и в новые версии программы добавляется функционал и устраняются найденные ошибки, поэтому я всё-таки предпочёл последнюю стабильную версию. В виде готовых DEB-пакетов она пока что недоступна, и в идеальном случае её нужно скомпилировать и создать DEB-пакет под свою систему. Но поскольку передо мной стояла задача в первую очередь изучить саму программу, я не стал делать лишних телодвижений и взял архив с готовыми бинарными файлами с официального сайта.

Несмотря на то, что программа консольная, в отличие от большинства утилит под Linux, кото­рые работают только через командную строку с ключами, в ней присутствует диалоговое окно с на­стройками, как в DOS. Но мышка в ней всё-таки не работает и все действия производим только с клавиатуры. При желании утилиту PhotoRec отдельно можно скомпилировать с графической обо­лочкой на Qt командой

./configure --enable-qt && make

Но оболочка пока ещё неработоспособна.

Последняя стабильная (на момент написания статьи - 6.13 от 15.11.2011г.) и тестовая (6.14 WIP) версии программы доступны на официальном сайте .

Более старые версии можно установить из репозиториев вашей системы.

Сначала выполним подготовительную операцию: создадим каталог, в который будут сохраняться восстановленные данные. Каталог обязательно должен располагаться на другом носителе! Если вы будете сканировать флэшку, то на жёстком диске в домашнем каталоге пользователя создаём пап­ку с именем латинскими буквами, например, recovery (чтобы было понятно).

Итак, скачиваем архив с программой в домашний каталог:

wget http://www.cgsecurity.org/testdisk-6.13.linux26.tar.bz2

Распаковываем:

tar xjf ~/testdisk-6.13.linux26.tar.bz2

TestDisk

Сначала рассмотрим первую утилиту - TestDisk , которая позволяет восстанавливать недавно удалённые файлы и повреждённые таблицы разделов, создавать образы дисков или разделов. Запус­кается она командой

sudo ~/testdisk-6.13/testdisk_static

sudo ~/testdisk-6.13/testdisk_static //disk_image.dd

Откроется диалоговое окно в консоли, в котором программа задаст вопрос по поводу лог-файла, и предложит 3 варианта ответа: Create - создать новый лог-файл, Append - дописывать все дан­ные в существующий лог-файл, No Log - не записывать лог-файл. Я выбрал третий вариант.

Далее при помощи клавиш и ↓ нужно выбрать диск, с которым мы будем работать, затем установить курсор на Proceed и нажать клавишу ↵ Enter . Вернуться в предыдущее окно можно нажатием клавиши q .

Если мы работаем с жёстким диском, то на следующем шаге появится о нём более подробная ин­формация, здесь просто щёлкаем Continue .

Появится список типов таблиц разделов, которые могут быть применены на диске. Программа автоматически определяет таблицу разделов и выставляет курсор на нужную строку, но можно указать тип таблицы вручную: для обычных компьютеров на дисках до 2ТБ с установленной Windows/DOS/Linux и флэшек выбираем тип Intel , для компьютеров с дисками свыше 2ТБ, а также Apple Macintosh на процессоре Intel - EFI GPT , для старых версий Macintosh на процессорах PowerPC - Mac и т. д. Если вы не знаете, какой тип таблицы применён на вашем диске, выбирайте None .

Теперь нам откроется список меню:

  • Analyze - анализ текущей структуры диска и поиск удалён­ных разделов;
  • Advanced - различные утилиты для файловых систем (восстановление недавно удалённых файлов, создание образа раздела, работа с заголовками файловых систем и т.д.);
  • Geometry - изменение геометрии диска;
  • Options - дополнительные настройки программы.

Если на предыдущем шаге была выбрана разметка Intel , то будут доступны дополнительные меню:

  • MBR Code - запись нового кода первичного загрузчика и сигнатуры MBR в первый сектор диска (функ­ция может быть полезна, если система не загружается, а другие способы решения проблемы не по­могают);
  • Delete - полное удаление всех данных (обнуляется таблица разделов в главной загрузоч­ной записи).

В меню Geometry мы сможем задать дополнительные значения параметров диска: количество ци­линдров (Cylinders) , головок (Heads) , число секторов на дорожку (Sectors) и размер сектора (Sector Size) . Эту функцию имеет смысл применять, если нарушена геометрия жёсткого диска и восстанов­ление таблиц разделов стандартными способами результатов не приносит. Например, программа TestDisk не обнаруживает разделы, в этом случае перезапускаем программу с включенной настрой­кой Dump в меню Options , анализируем полученную информацию и вручную указываем правильную геометрию диска, затем вновь сканируем диск на предмет потерянных разделов и в случае успеха восстанавливаем их уже с правильной геометрией. Эта функция не меняет параметров диска до тех пор, пока не будет выполнена запись найденных разделов на диск, поэтому пользоваться ею нужно очень аккуратно: неправильно заданная геометрия может до конца добить таблицу разделов.

А вообще, чтобы быть готовым к любым поворотам событий, перед каким-либо действиями над разделами нужно обязательно сохранять резервную копию текущей таблицы разделов.

В меню Options производим настройки перед сканированием:

  • Expert Mode - режим эксперта; в этом режиме включаются дополнительные возможности (ка­кие именно, я пока что не нашёл); по умолчанию стоит No , можно так и оставить;
  • Cylinder boundary - считать, что границы разделов совпадают с началом цилиндров; по умолча­нию настройка включена, но если жёсткий диск повреждён и программа ничего не находит, то по­пробуйте поставить No и повторить сканирование;
  • Allow partial last cylinder - считать, что последний цилиндр может быть неполным; по умолча­нию выключена, но если жёсткий диск «посыпался» и в результате таблица разделов повреждена, то лучше включить;
  • Dump - отображать содержимое "подозрительных" секторов; по умолчанию выключена; можно так и оставить, но в некоторых случаях, когда требуется дополнительная информация, она бывает полезной.

Теперь более подробное описание основных меню, ради которых всё и затевалось. Сначала оста­новимся на меню Analyze , позволяющем просканировать диски на предмет потерянных разде­лов, восстановить их, скопировать файлы с повреждённых или удалённых разделов без восстановле­ния их таблицы, а также исправить геометрию диска. Итак, в списке меню выбираем Analyze , и про­грамма покажет текущие разделы на диске, которые пока что доступны (хочу заострить внимание на словах «пока что» ), а также два режима сканирования. Рекомендую использовать второй режим - Backup - с предварительным сохранением резервной копии таблицы (она сохранится в домаш­нем каталоге в файле backup.log ), но если вы уверены в своём профессионализме, то можете вы­брать первый режим Quick Search («быстрый поиск). Перед сканированием программа может задать вопрос: «Should TestDisk search for partition created under Vista?» («Искать разделы, созданные под Windows Vista?»). Если вы не используете Windows Vista или Windows 7, щёлкайте N («нет»), если же вы не знаете, как ответить, щёлкайте Y («да»).

Программа начнёт сканировать диск на предмет поиска разделов. Процесс этот долгий, в зависи­мости от объёма и скорости работы диска может занять до нескольких часов, так что пока можно попить чаю, перекусить бутерброд, понаблюдать за процессом сканирования, погулять с собакой и т.д. Если программе что-то не понравится, она будет выдавать предупреждения, которые мы либо принимаем на свой счёт и устраняем, либо просто проигнорируем. В любой момент сканирование можно прервать, щёлкнув Stop .

По окончании сканирования программа выведет список найденных разделов. В этот момент будьте очень внимательны прежде, чем что-то изменять: программа может показать даже те разде­лы, которые когда-то присутствовали на диске, но давно были удалены.

В начале каждой строки с разделом будет стоять буква, которая обозначает его характеристику:

  • P - первичный,
  • L - логический,
  • E - дополнительный,
  • D - удалённый,
  • знак * - загрузочный.

Клавишей стрелки → / ← , в случае необходимости, изменяем характеристику раздела.

Также можно добавить раздел вручную, нажав клавишу а . Это помогает в том случае, если про­грамма не нашла удалённый раздел, но мы уверены, что он должен быть. Но чтобы его добавить, нужно абсолютно точно знать его характеристики: тип файловой системы, стартовое и конечное значение цилиндров, головок или сектора, так что этой функцией смогут воспользоваться только профессионалы.

Если имеется сохранённая копия таблицы разделов (файл backup.log , расположенный в домаш­нем каталоге пользователя), то её можно восстановить, нажав клавишу L .

Чтобы задать другой тип файловой системы раздела, выбираем раздел и нажимаем клавишу t , за­тем запоминаем из списка буквенно-цифровое обозначение нужной файловой системы и щёлкаем Proceed , а затем вводим его. Это бывает необходимо в тех случаях, когда программа неправильно определила тип файловой системы раздела, и у нас есть возможность указать правильный вариант.

А вот теперь самое интересное: нажав клавишу p на выбранном разделе (даже ещё не восстанов­ленном!), мы можем посмотреть файлы и папки, которые на нём были записаны, и скопировать их в отдельный каталог. Управление в этом меню описано чуть ниже (функция Undelete в меню Advanced ).

Когда предварительные работы с найденными таблицами разделов закончены, нажимаем ↵ Enter , и на следующем шаге можем либо записать новую таблицу разделов, щёлкнув Write , либо провести де­тальное сканирование, щёлкнув Deeper Search . В этом режиме программа более тщательно сканирует диск, и может найти такие разделы, о которых вы даже не подозревали, но время проверки как пра­вило достигает нескольких часов. По окончании нужно для каждого раздела вручную установить характеристики, и если нас всё устраивает, записать новую таблицу.

Когда работа с программой закончена и разделы восстановлены, закрываем программу коррект­но, нажав несколько раз клавишу q .

Теперь заглянем внутрь второго меню - Advanced , позволяющее восстановить недавно удалённые файлы, создать образ раздела или всего диска, поработать с заголовками файловых си­стем: для FAT и NTFS это Boot Sector (загрузочный сектор), для EXT2/3/4 - Superblock , для BSD - Disklabel (метка диска) и т.д. В списке меню ставим курсор на Advanced и нажимаем клавишу ↵ Enter , и программа как всегда покажет список доступных разделов, но в этом режиме работа с ними более безопасна, чем в предыдущем Analyze .

Сначала самая интересная функция, которая позволяет восстановить недавно удалённые файлы - Undelete . Она доступна для разделов FAT, NTFS и EXT2, причём на разделах NTFS и EXT2 можно восстанавливать только файлы, но с сохранением абсолютного пути, а на разделах FAT восстанавливаются и файлы, и папки. Итак, устанавливаем курсор на раздел, с которого надо восстановить файлы, и щёлкаем Undelete . Откроется список файлов и папок, где удалённые эле­менты будут помечены красным цветом (на разделах NTFS и EXT2 будут показаны только файлы с полными путями их первоначального местоположения). Управление в этом меню такое: клавиша → или пробел - войти в папку, ← - выйти из неё, h - скрыть/показать удалённые файлы и папки; ⇧ Shift + ; - выбрать файл для восстановления; a - вы­брать все файлы для восстановления; ⇧ Shift + c - восстановить выбранные файлы и папки; c - восстановить все файлы и папки; q - выход. Все горячие клавиши работают только в английской раскладке клавиатуры. На этом шаге вскрылся один из недостатков программы: имена файлов и папок, содержащих русские буквы, отображаются в виде «кракозябров», но если на разделах NTFS и EXT2 это пол-беды (имена лишь некорректно отображаются, и то частично, а восстанавливаются нормально), то на разделах FAT это просто беда (имена и отображаются, и восстанавливаются не­корректно). Если нужно восстановить один файл или папку, устанавливаем на него курсор, нажима­ем ⇧ Shift + ; и, затем, ⇧ Shift + c .

Затем нужно выбрать место, куда будут сохраняться восстановленные файлы. Автоматически откроется каталог с программой TestDisk , чтобы перейти на уровень выше, выбираем строку с дву­мя точками. Когда наконец открыли нужный каталог, для подтверждения нажимаем клавишу c . По завершении копирования появится надпись зелёными буквами «Copy done!» , что свидетельствует об удачном восстановлении.

Чтобы завершить работу и корректно выйти из программы, несколько раз нажимаем клавишу q .

Теперь перейдём к другим функциям меню Advanced .

Здесь есть ещё одна интересная функция - List , позволяющая просмотреть и скопировать файлы и папки. По идее она должна выводить только доступные элементы, но вместе с ними отоб­ражаются и удалённые, правда как-то странно: на разделе NTFS удалённые файлы не выделились никак, на EXT3 и EXT4 часть файлов и папок была помечена красным, но среди них оказались не только удалённые, но и существующие, доступные из проводника; и только на флэшке с файловой системой FAT удалённые данные корректно выделились красным цветом. Но не обольщайтесь: по­пытки восстановить их никаких результатов не принесут, файл восстановится, но с нулевым или не­правильным размером, в итоге он будет нечитаем, а если вы восстанавливаете папку, то она будет пустой. Управление такое же, как и в меню Undelete . Хочется заметить, что функция List несколь­ко раз дублируется в других меню, например, в Boot и встроенном в него Rebuild BS (доступны при работе с разделами FAT и NTFS).

Функция Type позволяет изменить тип файловой системы какого-либо раздела без сохранения на диск. Это пригодится, если раздел был переформатирован в другую файловую систему (например, из NTFS в EXT3) и из него нужно вытащить файлы и папки, используя инструменты для работы с NTFS, когда другие способы не помогают.

Если нужно создать образ какого-либо раздела, ставим на него курсор и запускаем Image Creation , далее выбираем каталог, куда этот образ будет записываться, и на выходе получаем файл image.dd . Но это дело лучше поручить утилитам dd или ddrescue .

У разделов с файловыми системами EXT2/EXT3/EXT4 можно восстановить суперблок, для это­го выбираем нужный раздел и щёлкаем Superblock ; программа выполнит поиск резервной копии суперблока и восстановит из неё. В самом низу есть приписка, что альтернативным методом восста­новления суперблока файловой системы является команда

fsck.ext4 -p -b superblock -B blocksize device

Для разделов FAT и NTFS возможна работа с загрузочными секторами: устанавливаем курсор на раздел и щёлкаем Boot . Здесь нам доступны следующие меню:

  • List - просмотр и копирование файлов и папок на разделе;
  • Rebuild BS - восстановление загрузочного сектора;
  • Repair MFT - про­верка и восстановление MFT на разделах NTFS;
  • Dump - сохранение и восстановление загрузочно­го сектора (как ни странно, эта же функция оказалась продублирована в меню Rebuild BS ).

Для тех, кто не в курсе: MFT (master file table) - главная файловая таблица (база данных), в ко­торой хранится информация о содержимом тома с файловой системой NTFS; MFT можно интер­претировать как файл с таблицей, в которой строки которой соответствуют файлам тома, а столб­цы - их атрибутам.

Когда работы над жёстким диском закончены, корректно выходим из программы, нажав несколь­ко раз q , остаётся только перезагрузить компьютер и посмотреть результат.

После того, как разделы восстановлены, необходимо проконтролировать разметку диска:

sudo fdisk -l /dev/sdX

Здесь проверьте, чтобы последний цилиндр предыдущего раздела был обязательно меньше на­чального цилиндра следующего, и цилиндр последних разделов (расширенного и находящегося в нём логического) не должен превышать последнего цилиндра самого диска. Исправить разметку раздела можно по разному, но сначала обязательно делаем резервную копию разметки:

sudo dd if=/dev/sdX of=table1.hdd bs=1 count=66 skip=446

В случае необходимости она восстанавливается командой

sudo dd if=table1.hdd of=/dev/sdX bs=1 count=66 seek=446

Теперь возможные способы поправить разметку:

  1. исправить цилиндры раздела вручную:
    sudo sfdisk -f -NY /dev/sdXВ
    в этой команде X - порядковая буква диска в системе, Y - порядковый номер раздела, кото­рый нужно поправить. Далее нужно ввести значение начального цилиндра раздела и через пробел его правильный раз­мер, равный разности значений максимально допустимого цилиндра и начального цилиндра; нажи­маем ↵ Enter .
  2. выгрузить текущую разметку в файл, исправить её вручную и закачать обратно:
    sudo sfdisk -d /dev/sda > sda.out
    sudo fdisk /dev/sda < sda.out
    После выгрузки разметки в файл открываем его в любом редакторе, правим нужные строки, вы­считав необходимые параметры, а загружаем обратно.

В параметрах первая цифра обозначает начальный сектор раздела, вторая - размер раздела в секторах (правильный размер раздела можно вычислить, умножив значение максимально допусти­мого цилиндра на 16065 и затем вычтя значение первого сектора раздела, результат уменьшаем на единицу).

После таких манипуляций может потребоваться восстановление загрузочных секторов исправ­ленных разделов при помощи TestDisk .

Некоторые более наглядные примеры восстановления доступны на страницах официального сайта в документации к программе (частично на русском языке): TestDisk шаг за шагом и Примеры восстановления данных .

Описание подготовлено с использованием материалов на сайте linuxcenter.ru .

PhotoRec

Если программа TestDisk не справилась с восстановлением данных, то на помощь нам придёт другая - PhotoRec . Она поможет восстановить файлы практически с любых файловых систем и любых носителей, даже повреждённых, но к сожалению не сохраняет исходных имён и структур ка­талогов.

Запускаем PhotoRec из каталога с программой командой

sudo ~/testdisk-6.13/photorec_static

Если нужно поработать с образом диска, то команда запуска будет выглядеть так:

sudo ~/testdisk-6.13/photorec_static //disk_image.dd

Точно также, как и в предыдущей утилите TestDisk , откроется диалоговое окно, где выбираем диск и щёлкаем Proceed . При работе с жёстким диском на следующем шаге появится более по­дробная информация о нём. Щёлкаем Continue , и далее откроется список типов таблиц разделов, в котором можно либо оставить вариант, предложенный программой, либо выбрать свой.

А вот дальше мы попадаем в диалоговое окно со списком доступных разделов на диске и на­стройками режимов сканирования. Попробуем настроить программу. Сначала заходим в меню File Opt и указываем тип восстанавливаемых файлов. По умолчанию галочки стоят почти на всех стро­ках, но если нужно какую-то галочку снять или поставить, клавишей стрелки ↓ или становимся на нужную позицию и нажимаем пробел либо стрелку → или ← . Чем меньше галочек будет включено, тем меньше в процессе восстановления вы получите «мусора». Чтобы пометить или убрать все форматы одновременно, нажимаем клавишу s , для сохранения на­строек - клавишу b . По окончании выходим в основное меню через Quit .

Небольшое отступление: утилита распознаёт файлы более 350 форматов, но существует также возможность добавить вручную свои, для этого в корне каталога с программой создаём файл с именем photorec.sig , далее открываем его в редакторе и в каждой строке прописываем нужные фор­маты файлов; строка должна иметь вид <расширение> <смещение сигнатуры> <сигнатура> или <магическое значение>

Смещение сигнатуры по умолчанию равно 0. «Магическое значение» (или MagicValue) может со­держать:

  1. строку, например, "data" , при этом специальные символы могут быть выделены как "\b" , "\n" , "\r" , "\t" , "\0" или "\\" ;
  2. данные в шестнадцатеричном HEX-формате, например, 0x12 , 0x1234 , 0x123456 и т. д.; обратите внимание, что записи 0x123456 , 0x12 0x34 0x56 и 0x12 , 0x34 , 0x56 являются эквивалентами.
Разделители «пробел» или «запятая» игнорируются.

Пример: нужно добавить формат PFI, для этого берём тестовый файл и смотрим его сигнатуру в HEX-редакторе командой: hexdump -C ~/sample.pfi | head

Вывод будет таков: 00000000 50 68 6f 74 6f 46 69 6c 74 72 65 20 49 6d 61 67 |PhotoFiltre Imag| 00000010 65 03 40 06 00 00 b0 04 00 00 40 19 01 00 40 19 |e.@.......@...@.| 00000020 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|

Теперь в файл photorec.sig прописываем строку в виде: pfi 0 "PhotoFiltre Image"

Или pfi 0 "PhotoFiltre", 0x20, "Image"

Для того, чтобы дополнительные форматы могли быть использованы, в меню File Opt должен стоять флаг Own сustom signatures (по умолчанию он уже установлен).

Также можно внести нужные форматы файлов в исходники перед компиляцией, но это уже бо­лее сложная процедура.

Вернёмся теперь к программе и продолжим настраивать дальше. Входим в меню Options и на­страиваем режимы сканирования: режим Paranoid позволяет восстановить файлы, которые про­грамма не опознала, поэтому настройку Paranoid: Yes (Brute force disabled) рекомендую оставить как есть; если есть желание восстановить фрагментированные JPEG-файлы, то выставляем Brute force enabled , но не факт, что они потом корректно откроются, а вот нагрузка на процессор и время сканирования диска ощутимо возрастёт; при настройке Paranoid: No программа будет восстанавли­вать только файлы, указанные в настройках меню File Opt .

Опция Allow partial last cylinder определяет, какая примерно была геометрия диска, но её имеет смысл включать только в том случае, когда сканируется диск с повреждённой геометрией, табли­цей разделов или без них вообще.

Опция Keep corrupted files позволяет сохранить файлы, скопированные из повреждённой области диска, которые потом можно попытаться восстановить при помощи других программ, поэтому ре­комендую её включить.

Если у вас на компьютере мало оперативной памяти и программа во время восстановления выле­тает с ошибкой либо зависает, то включите опцию Low memory . Хотя на современных компьютерах это и не пригодится.

Также можно включить экспертный режим, установив Expert mode: Yes , и тогда в настройках откроется дополнительное меню Geometry , где мы сможем указать дополнительные данные о сканируемом диске: количество цилиндров (Cylinders) , головок (Heads) , число секторов на дорож­ку (Sectors) и размер сектора (Sector Size) . По умолчанию программа принимает размер блока рав­ным 512 байт, что повысит точность восстановления, но замедляет общий процесс. Как правило не­которые из этих параметров определяются автоматически, но если правильно указать размер кла­стера (в файловых системах NTFS по умолчанию он равен 4096 байт), то это повысит скорость ска­нирования, но повлияет на точность восстановления (многие файлы могут оказаться битыми). В большинстве случаев эта опция не сильно требуется, поэтому лучше её отключить, дабы потом про­грамма не задавала лишних вопросов.

Теперь, когда настройки закончены, указываем из списка нужный раздел диска и щёлкаем Search . Если хотите просканировать весь диск полностью, то выбирайте самую верхнюю строку No partition . Далее откроется диалог выбора файловой системы раздела. Как всегда программа автома­тически установит курсор на нужную строку, но можно указать и вручную: для разделов с файло­вой системой EXT2/EXT3/EXT4 выбираем ext2/ext3 , для всех остальных - Other .

Если на предыдущем этапе указали конкретный раздел диска, то на следующем нужно выбрать один из двух вариантов сканирования: вариант Whole позволяет просканировать весь раздел цели­ком, но при этом время восстановления увеличится, а в общую кучу будут сохранены те данные, которые и так доступны через проводник или файловый менеджер; вариант Free сканирует только пустую область раздела, в итоге время работы уменьшается и восстанавливаются только удалённые файлы. Для сильно повреждённого раздела используйте вариант Whole , а когда раздел исправен и нужно побыстрее восстановить недавно удалённые файлы, выбирайте Free .

Затем указываем место, куда будут сохраняться восстановленные файлы. Автоматически откроется каталог с программой TestDisk. Чтобы перейти на уровень выше, выбираем строку с дву­мя точками. Когда указали нужный каталог, для подтверждения нажимаем клавишу c . Начнётся сканирование.

Если в настройках программы был включен режим Expert Mode , то во время сканирования про­грамма задаст ещё несколько вопросов. Сначала программа спросит: «Try to unformat a FAT filesystem?» («Попытаться восстановить файловую систему FAT?»). При нажатии y (ответ "да") программа просканирует раздел на предмет структуры папок (лично мне в экспериментах с флэш­ками это никак не помогло, поэтому в дальнейшем я нажимал n ).

Если мы в режиме эксперта оставили настройки в разделе Geometry по умолчанию, то на следую­щем шаге программа попросит указать размер блока. Хотя стандартный размер блока для жёстких дисков равен 4096 байт, но я рекомендую выбрать 512 байт, тогда есть вероятность, что повре­ждённые файлы будут точнее восстановлены.

На следующем шаге нужно указать смещение. По умолчанию оставляем 0 , но если программа не нашла ни одного файла, то необходимо вычислить нужное смещение, и повторить сканирование. Клавишами стрелок и ↓ ищем нужный вариант и нажимаем ↵ Enter .

Пока продолжается сканирование, можно пойти попить чаю, погулять с собакой и т. д.

В программе предусмотрена возможность прервать сканирование щёлкаем на Stop , но при сле­дующем запуске она выдаст запрос на продолжение сканирования.

И снова этот Expert Mode : если он был включен, то по окончании работы программа предложит создать файла образа диска, в котором будут сохранены все нераспознанные данные. Этот образ по­том можно подмонтировать в файловую систему и поработать с ним отдельно («можно» не значит «получится»). Если есть желание попытаться ещё что-то «выжать», то нажимаем Y , и в корне ката­лога с восстановленными файлами появится файл образа диска image_remaining.dd , Правда как «выжать» из этого файла что-то ещё, я так и не понял: при подключении этого файл в качестве блочного устройства командой
sudo losetup -fv ~/recovery/image_remaining.dd
он «прыгнул» на первое свободное устройство /dev/loop0 , но вывод команды
fdisk -l /dev/loop0
показал, что на диске нет таблицы разделов, а следовательно мы ничего, кроме воздуха, не сможем подмонтировать в нашу систему. Остаётся только один вариант: натравить на этот образ другую программу восстановления с надеждой, что она хоть чего-нибудь ещё найдёт.

Теперь корректно выходим из программы, нажимая в каждом окне клавишу q или выбирая оп­цию Quit (иначе мы не сможем поработать с разделом, пока компьютер не будет перезагружен).

FIdentify

В комплекте TestDisk есть ещё третья утилита - FIdentify , позволяющая провести иденти­фикацию форматов файлов на предмет распознавания их программой PhotoRec . Это бывает полез­но, например, когда мы добавляем форматы файлов вручную и необходимо проверить, насколько корректно это сделано. Также её можно использовать для определения форматов файлов в других случаях, например, когда ScanDisk из Windows после сканирования файловой системы насоздавал кучу файлов CHK. Запускаем утилиту командой

sudo ~/testdisk-6.13/fidentify_static ~/recovery

И, наконец, заходим в наш каталог с восстановленными файлами, чистим его от лишнего мусора и любуемся результатом. Можно при помощи нехитрых команд рассортировать файлы по папкам, например, перенесём все файлы TXT в одну папку с тем же именем, но расположенной вне recovery , (иначе команда рекурсивно зациклится); в нашем случае папка txt будет располагаться в корне домашнего каталога пользователя:

mkdir ~/txt && find ~/recovery -type f -name "*.txt*" -exec mv -i {} ~/txt \;

Результаты работы и общая оценка

Режим «по умолчанию»: все настройки оставлены как есть, из списка был выбран единственный раздел на флэшке, вариант сканирования - Free .

  • Флэшка №1 : утилита TestDisk при попытке использования функции Undelete никаких файлов на флэшке не нашла. Утилита PhotoRec работала примерно 7 минут, по окончании сканирования вы­дала сообщение, что восстановлено 512 файлов; в каталоге RECOVERY программа создала 2 пап­ки: recup_dir.1 и recup_dir.2 . Поскольку на флэшке перед форматированием было действительно две папки, то логично предположить, что после восстановления программа автоматически скопиро­вала каждый файл в нужный каталог. На самом деле в первой папке было 1001 файл, во второй - 24, причём половина файлов оказались побочным «мусором»: это были те же самые фотографии, только в маленьком разрешении, а также файл отчёта report.xml . «Мусор» оказалось вычислить до­вольно просто: во-первых, имена побочных файлов начинались на букву t*, а нормальных - на бук­ву f*, а во-вторых побочные файлы имели маленький размер, всего лишь несколько десятков кило­байт (файлы фотографий были размером от 2,5МБ). После очистки в первой папке оказалось 500 файлов, во второй - 12. Навскидку несколько восстановленных файлов были сопоставлены с ори­гиналом: размеры совпали, в свойствах фотографий сохранились все данные (каким фотоаппаратом сделана фотографии, в каком режиме, время создания и т. д.). При просмотре повреждённых фото­графий не найдено.
  • Флэшка №2 : при использовании утилиты TestDisk ситуация аналогична с флэшкой №1; утилита PhotoRec работала 10 минут 45 секунд, по окончании программа выдала сообщение, что восстанов­лено 149816 файлов (из них примерно 147000 - файлы TXT, выдранные из файлов баз данных Firebird, которые присутствовали на флэшке); в каталоге RECOVERY создано 300 папок. Первона­чальные имена не сохранились практически ни у одного файла, у некоторых EXE, DLL, архивов ZIP и TAR.GZ имена сохранились лишь частично. Среди восстановленных данных обнаружены даже те, которые давным-давно удалены. Некоторые документы, архивы и исполняемые файлы EXE были испорчены и не открывались. Файлы определённых форматов, например, образы ISO, восстановлены не были.
  • Диск DVD-RW : восстановлены 18 из 21 файлов AVI. Вместе с файлами AVI в папке было 26 MP3 (интересно, откуда?), но длительностью 1 секунда (отдельные фрагменты звуков, выдранные из разных мультфильмов). Лишние файлы удалены, оставшиеся сопоставлены с оригиналом: все восстановленные файлы совпали с оригинальными и корректно открывались.

Теперь о достоинствах и недостатках: поскольку TestDisk - это не одна программа, а набор из трёх утилит, то оцениваться будет весь комплекс в целом.

ДОСТОИНСТВА

  1. утилита PhotoRec прекрасно справляется с восстановлением фотографий, рисунков, докумен­тов; основная масса восстановленных фотографий, да и других файлов тоже, сохранились практи­чески в «первозданном» виде;
  2. утилита PhotoRec не зависит от файловой системы и работает практически с любым носи­телем, будь то флэшка, жёсткий диск, компакт-диск, дискета и т. д., или даже «голый» жёсткий диск без таблицы разделов или образ диска;
  3. даже если PhotoRec не распознала какие-либо данные, при включении определённой опции она их сохранит в отдельный файл образа диска, с которым потом можно поработать отдельно;
  4. PhotoRec распознаёт файлы более 350 форматов; есть возможность добавить дополнительные форматы вручную;
  5. у программы PhotoRec в режиме RAW довольно неплохая эффективность работы;
  6. несмотря на то, что программа - консольная, во время сканирования наглядно показываются результаты восстановления, а также процент выполнения;
  7. программа TestDisk умеет работать не только с обычными дисками, но и RAID-массивами;
  8. программа TestDisk прекрасно справляется с исправлением таблиц разделов и восстановлени­ем потерянных разделов диска, распознаёт типы очень многих файловых систем, начиная с Windows и заканчивая экзотическим BeOS (иногда к потере данных приводят неудачные операции по переразметке жёсткого диска, и здесь эта функция очень кстати).

НЕДОСТАТКИ

  1. в утилите TestDisk применение функции Undelete бессмысленно, если раздел или носитель был очищен даже в режиме «быстрого» форматирования;
  2. при восстановлении оригинальных имён файлов и папок при помощи утилиты TestDisk есть проблемы с кириллицей на разделах FAT;
  3. если нужно восстановить недавно удалённые файлы с сохранением имён, то это можно сде­лать утилитой TestDisk только с разделов FAT, NTFS и EXT2, другие файловые системы пока не поддерживаются;
  4. утилита PhotoRec не сохраняет имена файлов и структуры каталогов (частично сохраняются имена только у очень небольшого количества файлов: EXE, DLL, некоторых архивов ZIP и TAR.GZ), поэтому после восстановления все файлы придётся переименовывать и копировать в нужные папки вручную;
  5. утилита PhotoRec сразу восстанавливает все найденные файлы без предварительного просмот­ра, поэтому вместе с нужными данными восстанавливается довольно много «мусора», который по­том приходится чистить вручную;
  6. все восстановленные файлы сваливаются по папкам в одну кучу, нет сортировки по типу файлов, что ещё больше осложняет удаление «мусора».

ДЛЯ ЧЕГО ПОДОЙДЁТ ПРОГРАММА

  1. восстановление повреждённых таблиц разделов практически любых файловых систем;
  2. создание образа раздела или всего диска при условии целостности носителя;
  3. восстановление случайно удалённых файлов с сохранением оригинальных имён с исправных разделов FAT, NTFS и EXT2;
  4. восстановление данных (документов, фотографий, архивов и т.д.) с любых файловых систем и носителей (жёсткие диски, флэшки, компакт-диски, дискеты и т. д.), даже при повреждении или форматировании в «быстром» режиме, но без сохранения оригинальных имён файлов и структуры папок, когда важно восстановить сам файл, а его первоначальное имя и местоположение не имеют значения.

ДЛЯ ЧЕГО НЕ ПОДХОДИТ ПРОГРАММА

  1. восстановление недавно удалённых файлов с сохранением оригинального имени и структуры папок с файловых систем, отличных от FAT, NTFS и EXT2;
  2. восстановление данных с повреждённых разделов, например, очищенных путём «быстрого» форматирования, если требуется сохранить оригинальные имена файлов и структуру папок (напри­мер, базы данных 1С 7.7).

ВЫВОД

  • Из бесплатных программ является одним из самых мощных инструментов для работы с жёстким диском и восстановления данных с любых носителей;
  • вероятность восстановления удалённых файлов с сохранением имён и структуры папок с разде­лов FAT, NTFS и EXT2 есть только в том случае, если разделы не были отформатированы, в про­тивном случае данные придётся восстанавливать в режиме RAW;
  • если бы полностью устранить проблемы с кириллицей и сохранением имён файлов и структуры папок, то программа стала бы лучшей среди всех.