Восстановление данных
Если данные для вас чрезвычайно важны, и вы сомневаетесь в своих силах/знаниях, немедленно отключайте носитель и несите его в сервисный центр. Попытки самостоятельно решить проблему могут усугубить ситуацию, вплоть до полной невозможности что-либо восстановить.
Первым делом, очень важно свести к минимуму работу с повреждённым накопителем, иначе вероятность восстановления данных существенно снижается.
Если вы случайно удалили нужный файл с некоторого раздела, следует как можно скорее перевести данный раздел в режим «только чтение» и исключить любые попытки записи на него.
Если вы по ошибке установили операционную систему, на диск/раздел с важными данными, то загружать систему с этого диска/раздела категорически не рекомендуется. Для дальнейней работы следует использовать 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 с администраторскими правами
Появляется окошко приветствия testdisk, нам предлагается вести лог работы. В данном случае не вижу в этом смысла, но вы можете поступать иначе. Выбираем нужный пункт меню и подтверждаем выбор: No Log → Enter.
3. Появляются доступные носители, выбираем нужный, подтверждаем нажатием Proceed.
4. Предлагается выбрать тип таблицы разделов, думаю, что в большинстве случаев будет тип Intel / PC Partition.
5. Появляется меню с выбором операции. Для начала делаем анализ, выбрав Analyse.
6. В разделе Analyse Выбираем Quick Search.
7. Последний вопрос перед началом анализа «Должен ли testdisk искать разделы созданные с использованием Windows Vista?». В моем случае — нет, поэтому я выбираю N. 1)
Анализ закончен. Предупреждение. Или некоторые разделы не были найдены, или таблица разделов не может быть записана, т. к. разделы перекрываются.
8. Вот теперь можно начинать восстановление информации. В данном случае нас интересует 2 варианта действий.
Получить список файлов, содержащихся в данном разделе нажатием Р с дальнейшим восстановлением интересующих файлов из списка
Попробовать загрузить резервную копию таблицы разделов нажатием L , это приведет носитель к первоначальному состоянию до поломки
Выводим список файлов нажатием Р .
Отсюда же можно попробовать скопировать особо важные файлы и папки, особенно если боитесь, что данные не восстановятся, а наоборот потеряете последнюю, пусть даже и битую информацию. Для примера я буду копировать музыкальный альбом. Выделяем нужное курсором, нажимаем С для копирования. Появляется файловый менеджер, где можно выбрать куда будем копировать. В домашнем каталоге для этих целей специально создана папка Restored.
Заходим в нее и подтверждаем копирование нажатием Y.
Открываем папку в Nautilus, видим, что все файлы на месте и их можно прослушать.
9. Итак, особо важную информацию на всякий случай сохранили, однако наша цель приведение носителя в нормальное рабочее состояние. Из каждого пункта меню testdisk можно вернуться в предыдущий с помощью клавиши Q . Таким образом возвращаемся к 8 пункту.
Попробуем вернуть все в первоначальное до поломки состояние, загрузив резервную копию таблицы разделов. Нажимаем L . В появившемся окошке выбираем Load…
…и подтверждаем наши намерения Y .
Все, процесс восстановления закончен, отключаем и снова подключаем поврежденный носитель. Теперь он обнаруживается, все файлы на месте, в целости и сохранности.
Желаю вам удачных восстановлений!
extundelete
extundelete – утилита, позволяющая восстанавливать файлы, которые были удалены с разделов ext3/ext4.
Установить extundelete можно выполнив команду:
sudo apt-get install extundelete
Как только вы поняли, что удалили нужные файлы, надо отмонтировать раздел:
или перемонтировать в режиме «только чтение»
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-времени:
Некоторые файлы могут восстановиться под другим именем и расширением, хотя это не повлияет на содержимое файла.
Полный список параметров extundelete можно посмотреть на странице http://extundelete.sourceforge.net/options.html.
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
Scalpel анализирует файлы по header и footer, заданным в шаблоне
Чтобы задать типы файлов для распознавания, нужно в указанном выше шаблоне раскомментировать соответствующие строки. Однако, будьте внимательны: зачастую header и footer ваших файлов могут отличаться от заданных в шаблоне для такого типа файлов (к примеру, sony jpg). В таком случае нам нужно самостоятельно выяснить header и footer искомых файлов на примере имеющегося аналогичного файла:
xxd -l 0x04 filename; xxd -s -0x04 filename
и вписать их в конфигурационный файл.
sudo scalpel input.iso -o outputdir
В качестве исходного пути может использоваться как путь к реальному устройству /dev/…, так и путь к образу диска. Директория outputdir для сохранения файлов обязательно должна быть пустой.
Kак восстановить раздел жесткого диска?
Недавно я проводил некоторые эксперименты по подключению раздела с ext4 в Windows, и уж не знаю, как я умудрился, но удалил раздел на внешнем HDD. Со мной уже такое случалось на заре моего изучения Linux, но вот я случайно повторил опять эту ошибку, хоть и при других обстоятельствах.
У меня уже получалось раньше восстанавливать удаленный раздел и теперь я хочу вспомнить свой старый опыт.
Kак восстановить раздел жесткого диска самому?
Для восстановления раздела будем использовать конечно Linux и программу testdisk. Установим её:
После этого подключаем наш удалённый раздел (если это внешний жёсткий диск) и запускаем программу в терминале. Да-да, программа работает только через терминал, но не стоит этого боятся, так как всё достаточно просто, следите за ручками… Итак, запускаем.
Выбираем первый пункт Create и жмём Enter:
Как видите, программа показала нам все подключенные разделы: первые два раздела — это жёсткий диск на моём ноутбуке, второй — это внешний жёсткий диск, который мне нужно восстановить. Но вот какой из них какой, я пока не знаю, так как они оба у меня одинакового размера.
Я не стал искушать судьбу в терминале, а просто открыл менеджер разделов gparted и в графике посмотрел, какой жёсткий диск на какой «букве».
Теперь вполне очевидно, что удалённый раздел — это раздел sdb. Выбираем его в testdisk и жмём Enter.
Тут нам предлагают выбрать тип таблицы на нашем жёстком диске. Выбираем первый пункт — Intel и жмём Enter. (Если у вас конечно не MAC и не Xbox)
Вот тут посложнее. Примерно всё понятно, не совсем понятно, что нужно выбрать в моей ситуации? Выберу первый пункт, думаю не ошибусь.
После нажатия программа показала, что раздела тут нет. Ну и понятно, я же его удалил. Нажал «выйти из поиска» и программа меня спросила о восстановлении, кажется. Я нажал Y и программа выдала мне мой удалённый раздел.
Теперь программа предлагает разные действия, которые возможно мне нужны, но я просто жму Enter — продолжить!
Тут мы переходим на пункт Write и жмём Enter. Программа спросит: типа вы уверены? Вводим Y и жмём Enter. Всё, прошла секунда и таблица разделов на месте и жёсткий диск восстановлен. Ура!
Как видите, всё достаточно просто, и не нужно боятся этого терминала, он может стать хорошим другом, если его получше узнать!