Ключевые слова:disk, recover, repair, fs, forensic, linux, (найти похожие документы)
From: Алексей Бешенов <al@beshenov.ru.>
Date: Sun, 16 Feb 2008 17:02:14 +0000 (UTC)
Subject: Восстановления данных с поврежденных носителей при помощи gddrescue
Оригинал: http://beshenov.ru/debaday/200712.html#d12
gddrescue: средство восстановления данных с поврежденных носителей
Автор: Джон Карлайл-Клэрк.
Оригинал: "[[http://debaday.debian.net/2007/12/12/gddrescue-a-tool-for-recovering-data-from-damaged-media/ gddrescue: a tool for recovering data from damaged media", 12 декабря 2007 г.
Мне нужно было восстановить данные со сбойного винчестера, и я спросил
в IRC, есть ли хорошие средства для Ubuntu. Кто-то назвал GNU
ddrescue (в Debian и Ubuntu -- пакет gddrescue), разработанный для
восстановления данных из любого файла или блочного устройства.
Не путайте это с dd_rescue (соответствующий пакет -- ddrescue), GNU
ddrescue лучше.
На сайте GNU перечислены основные возможности программы:
* gddrescue копирует данные с одного файла или блочного устройства
(винчестера, CD-ROM и так далее) в другой, пытаясь восстановить
данные в случае ошибок чтения.
* gddrescue не затирает выходной файл, если это не запрошено,
поэтому при каждом запуске для одного и того же выходного файла
делаются попытки заполнить пробелы.
* gddrescue разрабатывался, чтобы работать в полностью
автоматическом режиме.
* Если используется журнал работы, то данные восстанавливаются более
эффективно -- считываются лишь требуемые блоки. Кроме того,
восстановление можно прервать в любой момент времени, а потом
продолжить.
* Журнал периодически сохраняется на диск. Так что, если работа
прервана, можно будет продолжить с минимальным повторным
копированием.
* Если у вас есть две и более поврежденных копии файла или диска, то
запуск ddrescue для всех копий и одного выходного файла скорее
всего даст полную версию без ошибок. Вероятность того, что
поврежденные области совпадают у разных входных файлов, очень
мала. Если используется журнал, то из из второй и последующих
копий будут считываться только требуемые блоки.
* Для восстановления различных участков одного файла можно
использовать один и тот же журнал.
Алгоритм работы GNU ddrescue таков:
1. Если нужно, считывается журнал, где описано состояние предыдущего
прерванного сеанса работы, либо прежних попыток восстановления
различных участков файла.
2. До указанного места, либо до прерывания пользователем считываются
неповрежденные участки входного файла.
3. Делается попытка прочитать поврежденные участки. Поврежденные
участки разбиваются на более маленькие, из них считываются
уцелевшие фрагменты; и так пока не будет достигнут физический
размер блока устройства, либо работу не прервет пользователь.
4. Поврежденные блоки считываются в указанное число попыток, либо до
прерывания работы.
5. Если нужно для последующего вызова, записывается журнал работы.
Для использования требуется установить пакет gddrescue, но запускать
нужно ddrescue. Эта путаница связана с тем, что соответствующее
название пакета уже использовалось dd_rescue.
Синтаксис команды прост, и к программе прилагается хорошая
документация man и info. Вот пример работы с компакт-диском (ошибок не
найдено).
$ ddrescue -v /dev/cdrom Recovered.iso ddrescue.log
About to copy 101763 kBytes from /dev/cdrom to Recovered.iso
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 hard blocks
Hard block size: 512 bytes
Max_retries: 0 Split: yes Truncate: no
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B, errsize: 0 B, errors: 0
Current status
rescued: 101763 kB, errsize: 0 B, current rate: 3801 kB/s
ipos: 101711 kB, errors: 0, average rate: 2702 kB/s
opos: 101711 kB
Полезные ссылки
* Интервью с Антонио Диазом Диазом, автором GNU DDRescue
* Обзор средств восстановления данных
* Статья Пата Паттерсона о восстановлении данных с винчестера в Ubuntu
* Руководство по GNU DDRescue
* Форумы Ubuntu по восстановлению данных
Схожие проекты
* Foremost
* Advanced Forensic Format
Live CD с программами для восстановления данных
* Rescubuntu
* Sysresccd
* Partedmagic
gddrescue есть в Debian, начиная с Etch, и в Ubuntu, начиная с Edgy.
Проект разрабатывает Антонио Диаз Диаз с 2004 года.