Прикладная некромантия в линукс или возвращаем из небытия удаленные файлы
Думаю, каждый из нас с вами сталкивался с проблемой, когда из-за глюка прошивки фотоаппарата, камеры, кпк, смартфона или просто из-за особого устройства /dev/hands карточка была отформатирована, данные были удалены. В свое время данную проблему я решал достаточно просто, используя Portable версию Ontrack Easy Recovery, но так как уже несколько лет являюсь пользователем linux систем, то использование данного нелицензионнного приложения через wine показалось не совсем кошерным, к тому же жажда исследований и приключений требовала найти бесплатный родной аналог для linux систем. Исследования закончились, даже не успев начаться, так как первая строчка в поиске Google привела к набору утилит TestDisk, о которых я расскажу далее подробнее.
И так, TestDist состоит из двух утилит:
testdisk и photorec; Официальный сайт утилит.
Краткое описание:
testdisk – мощная утилита, разработанная для восстановления удаленных разделов и для восстановления загрузочных записей mbr после программных ошибок, действий некоторых вирусов, человеческих ошибок (например, когда раздел был просто удален).
Возможности testdisk:
Исправление таблицы разделов; восстановление удаленных разделов Восстановление FAT32 загрузочного сектора из бэкапа Перестроение FAT12/FAT16/FAT32 загрузочного сектора Исправление FAT tables
Перестроение NTFS загрузочного сектора Восстановление NTFS загрузочного сектора из бэкапа Исправление MFT используя MFT зеркало Нахождение ext2/ext3 Backup SuperBlock
Восстановление удаленных файлов в FAT, NTFS and ext2 файловых системах
Копирование файлов из FAT, NTFS and ext2/ext3 удаленных разделов.
photorec – утилита восстановления данных таких, как файлы видео, документы, архивы с жестких дисков и cdrom дисков, а также фото (поэтому название программы Photo Recovery) со встроенной памяти камер. Список типов файлов для восстановления весьма внушителен и с ним можно ознакомиться тут.
Обе утилиты open source, распространяются под лицензией GNU General Public License (GPL). Имеются в наличие версии для linux, unix, а также для windows платформ.
В большинстве линукс дистрибутивов уже включены в состав стандартного репозитория. Для debian-based дистрибутивов установка командой:
В моем случае требовалось восстановить фотографии с карточки фотоаппарата после того, как фотоаппарат случайно отформатировал карточку. Вставив флешку в card reader и запустив с правами рута photorec в консоли, утилита предложила мне выбрать диск, на котором требуется восстановить данные.
В моем случае это будет /dev/sdb.
Далее выбираем тип таблицы разделов на диске, для большинства пользователей это будет Intel/PC.
И далее выбираем раздел или диск целиком для поиска удаленных файлов. Так как мне нужно было восстановить все удаленные файлы после форматирования, то я выбрал поиск по всему диску.
После этого photorec требуется указать тип файловой системы, в которой хранились удаленные файлы. В данном случае все просто, выбираем второй пункт.
А затем на другом диске выбираем директорию, куда утилита сохранит восстановленные файлы.
Далее нажимаем Y и программа начинает свою работу. Для 32Мб карточки ей потребовалось меньше минуты.
Теперь о результатах работы:
Честно говоря, по началу я весьма сомневался в способностях программы. Но открыв директорию с результатами работы утилиты, я с удивлением обнаружил, что были восстановлены не только нужные недавно сделанные 10 фотографий, но и еще 110 других, самая ранняя из которых была сделана 3 года назад и не была перезаписана при дальнейшем использовании карточки, хотя форматировалась карта неоднократно.
В итоге имеем очередную победу добра над злом, счастливую улыбку обладателя фотоаппарата, еще один факт доказательства того, что существует море полезных и качественных opensource утилит.
Восстановление удаленных файлов на NTFS из Ubuntu
Как я уже писал ранее, с помощью Ubuntu LiveCD можно решить очень много проблем. Очень часто возникает ситуация, когда неопытный пользователь удаляет один или несколько системных файлов Windows, после чего загрузка системы становится невозможной. Для восстановления удаленных файлов из NTFS-разделов существует множество серьезных программ, однако я хочу рассказать об очень быстром, бесплатном и удобном способе, если вам нужно восстановить небольшое количество удаленных файлов.
Преимущество этого способа также состоит в том, что все необходимо УЖЕ есть в стандартной комплектации Ubuntu на LiveCD и вам не нужно ничего устанавливать дополнительно. Итак, для начала узнаем имя диска. Запустим fdisk:
Вам будет выведен список разделов на ваших жестких дисках. Найдите в этом списке ваш раздел NTFS и запомните его имя (первый столбец), предположим это будет «/dev/sda3». Теперь запускаем утилиту восстановления удаленных файлов с разделов NTFS:
sudo ntfsundelete /dev/sda3
Где «/dev/sda3» вы меняете на свой вариант. После сканирования раздела утилита выдаст список файлов, которые можно восстановить, в третьей колонке будет отображаться процент «сохранности» файла, если он равен 100% — волноваться на этом этапе можно уже перестать =).
Выбираем нужный файл — готово!
Можно также запускать ntfsundelete передав ему имя файла или маску, например вот так можно восстановить файл «lala.jpg»:
sudo ntfsundelete /dev/sda3 -u -m lala.jpg
А вот так — все удаленные файлы с расширением jpg:
sudo ntfsundelete /dev/sda3 -u -m *.jpg
О проблемах пишите в комментариях – буду дополнять и исправлять.
Recover accidentally removed files on NTFS partition
I accidentally removed some files on a NTFS partition How can I recover them staying inside Linux without rebooting ?
Using TestDisk, click through device and type to Advanced.. in partition selection, pay attention to the bottom for Undelete. Then select a different drive to save to. I believe its possible to write a script using fls from TestDisk to recover from a single directory if that is needed or when the TD single selection is tedious.. see this answer here: unix.stackexchange.com/a/390174/346155
1 Answer 1
The Ubuntu Wiki has a lenghty topic on data recovery and, luckily for you, also has a segment on recovering files deleted from a NTFS partition. From that part of the link:
ntfsprogs can recover deleted files from an NTFS file-system. The Windows and LiveCd versions have a very nice intuitive gui but the linux one is probably stronger and does not have a front-end gui at the moment.
- Scan . searches for deleted files and find info about them
- Undelete . See below.
- Copy .
When undeleting chose which files to undelete and where to undelete them too. By default this appears to be the desktop of the OS you are booted into, whether that is a LiveCd or on a different partition or drive. For a LiveCd or LiveUsb you will need to move them onto Usb-stick or safe partition before rebooting as the desktop gets forgotten on LiveCds unless you are using a Persistent image .
ntfsundelete /dev/sda2 -u -i 3689 -o work.doc -d ~/output
This will write all recovered files (in this case word.doc ) from /dev/sda2 (be sure to find out the device name of your NTFS partition) in a directory output inside your home directory.
For better information on using ntfsundelete please see the separate page NtfsUndelete, particularly the External Links there.
Besides the part of the wiki it also contains this external link explaining NtfsUndelete with images.