- Восстановление данных
- testdisk
- extundelete
- foremost
- R-Studio
- Scalpel
- Восстановление данных со сбойного накопителя и копирование в образ
- Примеры использования
- Восстановление ext2-раздела
- с /dev/sda2 в /dev/sdb2
- Копирование диска в образ
- с /dev/sda2 в образ
- Восстановление из образа
- из образа в /dev/sda1
- Полное восстановление жесткого диска
- с /dev/sda на /dev/sdb
- Монтирование образа
- Параметры
- Советы
Восстановление данных
Если данные для вас чрезвычайно важны, и вы сомневаетесь в своих силах/знаниях, немедленно отключайте носитель и несите его в сервисный центр. Попытки самостоятельно решить проблему могут усугубить ситуацию, вплоть до полной невозможности что-либо восстановить.
Первым делом, очень важно свести к минимуму работу с повреждённым накопителем, иначе вероятность восстановления данных существенно снижается.
Если вы случайно удалили нужный файл с некоторого раздела, следует как можно скорее перевести данный раздел в режим «только чтение» и исключить любые попытки записи на него.
Если вы по ошибке установили операционную систему, на диск/раздел с важными данными, то загружать систему с этого диска/раздела категорически не рекомендуется. Для дальнейней работы следует использовать 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 для сохранения файлов обязательно должна быть пустой.
Восстановление данных со сбойного накопителя и копирование в образ
ddrescue — инструмент для восстановления данных, копирующий данные из одного файла или блочного устройства (жесткий диск, CD-ROM и т. д.) в другой, пытаясь спасти данные в случае ошибок чтения.
Примеры использования
Восстановление ext2-раздела
с /dev/sda2 в /dev/sdb2
Обратите внимание: следующая команда перезапишет все данные на разделе /dev/sdb2. Если вы не хотите этого делать, создайте образ восстанавливаемого раздела.
# ddrescue -r3 /dev/sda2 /dev/sdb2 logfile.log # e2fsck -v -f /dev/sdb2 # mount -t ext2 -o ro /dev/sdb2 /mnt
Копирование диска в образ
с /dev/sda2 в образ
# ddrescue -r3 /dev/sda2 image.img logfile.log
Восстановление из образа
из образа в /dev/sda1
# ddrescue -f image.img /dev/sda1 logfile.log
Полное восстановление жесткого диска
с /dev/sda на /dev/sdb
1. Сначала скопируйте области с ошибками.
# ddrescue -n /dev/sda /dev/sdb rescue.log
2. . а затем, попытайтесь восстановить поврежденные сектора
# ddrescue -r 1 /dev/sda /dev/sdb rescue.log
Монтирование образа
Если вы не хотите восстанавливать файлы путем записывания содержимого образа на жесткий диск, то вы можете просто смонтировать img-образ.
# mkdir /mnt/disk # mount -o loop image.img /mnt/disk
Параметры
-h, --help отобразить справку -V, --version отобразить информацию о версии -b, --block-size= hardware block size of input device [512] -B, --binary-prefixes show binary multipliers in numbers [default SI] -c, --cluster-size= hardware blocks to copy at a time [128] -C, --complete-only do not read new data beyond logfile limits -d, --direct use direct disc access for input file -D, --synchronous use synchronous writes for output file -e, --max-errors= maximum number of error areas allowed -F, --fill= fill given type areas with infile data (?*/-+) -g, --generate-logfile generate approximate logfile from partial copy -i, --input-position= starting position in input file [0] -n, --no-split do not try to split or retry error areas -o, --output-position= starting position in output file [ipos] -q, --quiet quiet operation -r, --max-retries= exit after given retries (-1=infinity) [0] -R, --retrim mark all error areas as non-trimmed -s, --max-size= maximum size of data to be copied -S, --sparse use sparse writes for output file -t, --truncate truncate output file -v, --verbose verbose operation
За числами могут следовать значения: b = blocks, k = kB = 10^3 = 1000, Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc.
Советы
- Считывать данные, желательно, указывая параметр —block-size= (У старых дисков 512, у новых («advanced format») 4096). Проверьте! Если блок будет меньше, то скорость чтения будет медленнее; если больше — возможна потеря данных.[1]