- Он не перезаписывает восстановленные данные, а заполняет пробелы в случае итеративного восстановления. Однако его можно усечь, если инструменту явно дано указание сделать это.
- Восстановление данных в один файл из нескольких файлов или блоков.
- Поддерживает несколько типов интерфейсов устройств, таких как SATA, ATA, SCSI, накопители MFM, дискеты и SD-карты.
В этом руководстве я буду изучать этот невероятно полезный инструмент для восстановления данных. Я также расскажу о процессе установки и о том, как использовать его для восстановления блочного устройства или раздела.
- Установка ddrescue
- Понимание основ
- Важные соображения
- Использование ddrescue
- Восстановление поврежденного блока
- Восстановление файла изображения в новый блок
- Восстановление блока в другой блок
- Восстановление определенных данных из восстановленных файлов изображений
- Расширенные возможности
- Как работает ddrescue
- Заключение
Примечание: Для выполнения инструкций в этом руководстве я использую дистрибутив Linux (Ubuntu 22.04). Процесс установки утилиты ddrescue может отличаться, но инструкции будут одинаковыми для всех дистрибутивов Linux.
Установка ddrescue
Чтобы установить ddrescue в Linux, особенно Убунту и его вкусы или на основе Debian дистрибутивы, используйте:
судо подходящий установить gddrescue
Чтобы установить его на РЭХЛ , Федора , и ЦентОС , сначала включите ТЕПЛЫЙ (Дополнительные пакеты для корпоративного Linux).
судо ням, установи теплый выпуск
Приведенная выше команда предназначена для более новых версий соответствующего дистрибутива.
Затем выполните следующую команду, чтобы установить ddrescue:
судо ням, установи ddrescueДля дистрибутивов Linux на базе Arch, таких как Арч-Линукс и Манджаро используйте приведенную ниже команду для установки утилиты восстановления ddrescue.
судо пакман -С ddrescue
Поскольку я использую Ubuntu 22.04, для ее установки я буду использовать менеджер пакетов APT.
Понимание основ
Прежде чем использовать инструмент ddrescue для восстановления данных, я бы рекомендовал пользователям, впервые знакомым с процессом восстановления, понять некоторые соглашения об именах Linux.
Linux распознает блоки (устройства) как файлы и помещает их в /устройство каталог. Чтобы просмотреть файлы в каталоге /dev, используйте команду лс /устройство команда.
жесткие диски (блоки хранения) обозначаются SD за которым следуют алфавиты; в случае нескольких устройств хранения файлы будут представлены как /dev/sd а, /Дев/СД б, и так далее.
Если устройство хранения имеет перегородки , то они будут представлены числом с соответствующим именем файла на диске, например /dev/sda 1 , /dev/sda 2 , и так далее.
Чтобы перечислить все блоки и другие подключенные к системе устройства, используйте блок списка лсблк команда:
лсблк
Команда ddrescue может восстановить весь блок (содержащий MBR и разделы) или раздел. С другой стороны, если вам нужно восстановить только определенные файлы из определенного раздела, то лучше восстанавливать раздел, а не весь блок.
Важные соображения
Прежде чем использовать утилиту ddrescue, следует учитывать некоторые ключевые моменты:
- Не пытайтесь восстановить смонтированный блок, блок не должен находиться даже в режиме только для чтения.
- Не пытайтесь восстановить блок с ошибками ввода-вывода.
- Система может изменить имена устройств ввода и вывода при перезагрузке. Прежде чем начинать процесс копирования, убедитесь, что имена устройств верны.
- Если вы используете в качестве устройства вывода отдельный блок, то любые данные на устройстве будут перезаписаны.
Использование ddrescue
После установки утилиты ddrescue и понимания соглашений об именах следующим шагом будет идентификация неисправного диска и его восстановление с помощью инструмента ddrescue.
Восстановление поврежденного блока
Первый пример будет включать в себя процесс восстановления всего блока. Сначала перечислите блоки, используя лсблк команда:
лсблк -О НАЗВАНИЕ, РАЗМЕР, ТИП-О Флаг используется для указания типа информации (полей), которую должна вывести команда. Я упомянул ИМЯ , РАЗМЕР , и ФТИП или тип файловой системы.
Теперь вы можете определить целевой блок, раздел и место для сохранения спасенного файла изображения.
Еще одна важная вещь, которую следует отметить: в Linux имя блока назначается динамически при загрузке, и после перезагрузки имена блоков могут измениться. Поэтому будьте осторожны, записывая имена блоков.
Теперь используйте следующий синтаксис, чтобы сохранить блок в виде файла изображения с файлом журнала в корневом каталоге.
судо ddrescue -д -rX / разработчик / [ блокировать ] [ путь / имя ] .img [ имя_файла_журнала ] .бревноПримечание: Заменять [блокировать] , [путь/имя] файла изображения и [имя_файла_журнала] с предпочтительными именами соответственно.
В этом примере я восстанавливаю /dev/sda в корневом каталоге с именем файла изображения восстановление.img . Файл журнала, также известный как файл карты, необходим, если вы хотите возобновить восстановление в любое время.
судо ddrescue -д -r2 / разработчик / sda2 Recovery.img Recovery.logВ приведенной выше команде используются два важных флага.
д | –косвенный | Используется, чтобы указать инструменту прямой доступ к диску, игнорируя кеш ядра. |
rX | –повторные проходы | Используется для указания инструменту повторить попытку исправления плохого сектора X количество раз. |
Выполнив приведенную выше команду, вы заметите, что в браузере файлов появляются два файла с именами восстановление.img и восстановление.log .
Время восстановления зависит от размера входного блока и повреждения. Если вы восстанавливаете большой блок, я рекомендую иметь файл журнала, поскольку завершение процесса может занять несколько часов или даже дней.
Вывод приведенной выше команды приведен ниже:
В выходном изображении ипос — это входная позиция входного файла, с которой начинается копирование, и язвы — это позиция вывода в выходном файле, куда записываются данные.
не опробованный размер блока не ожидает проверки. спасен указывает размер успешно восстановленного блока. процент спасен указывает на успешное восстановление данных в процентах. Условия, необрезанный , не списанный , плохой сектор , и плохие районы говорят сами за себя. Однако ошибки чтения термин указывает количество неудачных попыток чтения.
время выполнения показывает время, которое инструменту потребовалось для завершения процесса, а оставшееся время — это время, оставшееся для завершения процесса восстановления. Приведенный выше вывод показывает оставшееся время 0, поскольку процесс завершился. Прочитайте вывод на следующем изображении незавершенного процесса.
Давайте посмотрим, что мы получим в файле журнала; чтобы открыть сгенерированный файл журнала, используйте команду vim-recovery.log команда.
Текущее состояние +, что означает, что процесс завершен, а current_pos это позиция в блоке.
Список текущих статусов приведен в следующей таблице:
? | Копирование |
* | Обрезка |
/ | Утилизация |
– | Повторная попытка |
Ф | Заполнение указанных блоков |
г | Создание файла журнала |
+ | Процесс завершен |
Ниже в файле журнала содержатся индикаторы состояния ранее спасенных блоков в виде символов, перечисленных ниже:
? | Блок не опробован |
* | Необрезанный неудачный блок |
/ | Неудаленный неудачный блок |
– | Неудачный блок плохого сектора |
+ | Готовый блок |
Восстановление файла изображения в новый блок
Как только вы закончите процесс восстановления и получите файл образа. Теперь вы можете захотеть перенести его на новый диск с поврежденного диска. Чтобы переместить файл изображения в новый блок, сначала подключите этот блок к системе, а затем определите имя блока, используя лсблк команда.
Давайте предположим, что это /dev/СДБ , используйте следующую команду, чтобы скопировать изображение в новый блок.
судо ddrescue -ф восстановление.img / разработчик / файл журнала SDB.log-ф Флаг используется для перезаписи нового блока, если есть какие-либо данные. Имейте в виду, что имя файла журнала должно отличаться, чтобы он был отделен от ранее сохраненного файла журнала.
Вышеописанную операцию также можно выполнить с помощью дд , еще одна мощная команда, используемая для копирования файлов.
судо дд если =recovery.img из '=' / разработчик / СДБПрежде чем выполнять восстановление, имейте в виду, что новый блок должен быть достаточно большим, чтобы вместить весь восстановленный блок; например, если размер блока восстановления составляет 5 ГБ, размер нового блока должен превышать 5 ГБ.
Если восстановленный файл изображения содержит много ошибок, их можно исправить с помощью ФСК команда в Linux в некоторой степени. В Windows вы можете использовать ЧКДСК или СФК команды сделать это. Однако восстановление зависит от количества ошибок, сгенерированных поврежденным файлом.
Теперь процесс восстановления и восстановления завершен. Еще одна важная вещь, которую следует отметить: вы можете восстановить поврежденный блок непосредственно в другом блоке, вместо того, чтобы создавать файл образа и затем копировать его в новый блок. Что ж, в следующем разделе я подробно расскажу об этом процессе.
Восстановление блока в другой блок
Чтобы восстановить блок непосредственно в новый блок, сначала подключите блок к системе и снова используйте лсблк команда для определения имени блока. Неправильные имена блоков могут испортить весь процесс, и вы можете потерять данные.
После определения исходного блока и целевого блока используйте следующую команду для восстановления блока:
судо ddrescue -д -ф -r2 / разработчик / [ источник ] / разработчик / [ место назначения ] резервная копия.logДавайте предположим /dev/СДБ является целевым блоком, поэтому для копирования /dev/sda каталог для нового блока, используйте:
судо ddrescue -д -ф -r2 / разработчик / ПДД / разработчик / резервная копия SDB.logОпять же, прежде чем приступать к этому процессу, ознакомьтесь с критическими соображениями, упомянутыми в предыдущих разделах.
Восстановление определенных данных из восстановленных файлов изображений
Во многих случаях целью восстановления данных является поиск конкретных файлов на поврежденных дисках. Чтобы получить доступ к конкретному файлу, вам необходимо смонтировать файл образа. В Linux восстановленный файл образа можно просмотреть с помощью команды устанавливать команда.
Прежде чем монтировать файл образа, создайте папку или каталог, в который вы хотите извлечь содержимое файла образа.
мкдир RecoveryMountЗатем смонтируйте файл образа, используя:
судо устанавливать -О цикл восстановления.img ~ / RecoveryMountФлаг -o указывает параметры, а параметр цикла используется для обработки файла изображения как блочного устройства.
Теперь у вас есть доступ к содержимому файла изображения, как показано на следующем снимке экрана.
Чтобы отмонтировать блок, используйте команду размонтировать команда.
судо размонтировать ~ / RecoveryMountРасширенные возможности
Чтобы начать восстановление с определенной точки, используйте команду -я флаг или –input-позиция . Оно должно быть в байтах, по умолчанию это так. 0 байты. Это важно для возобновления копирования с определенной точки. Например, если вы хотите начать процесс копирования с точки размером 10 ГБ, используйте следующую команду.
судо ddrescue -i10ГиБ / разработчик / sda imagefile.img logfile.logЧтобы определить максимальный размер устройства ввода, -с будет использоваться флаг. -с означает размер и может также использоваться как -размер в байтах. Если инструменту не удается распознать размер входного файла, используйте эту опцию, чтобы указать его.
судо ddrescue -s10ГиБ / разработчик / sda imagefile.img logfile.log-просить Эта опция может быть весьма удобной, поскольку она запрашивает подтверждение блоков ввода и вывода перед началом процесса копирования. Как обсуждалось ранее, система динамически присваивает имена блокам, и они меняются при перезагрузке. Так что в таком случае этот вариант может оказаться полезным.
судо ddrescue --просить / разработчик / sda imagefile.img logfile.logКроме того, ниже приведен список некоторых других опций:
-Р | -обеспечить регресс | Изменение направления копирования |
-q | -довольно | Чтобы подавить все выходные сообщения |
-в | -подробный | Чтобы уточнить, все выходные сообщения |
-п | –предварительно выделить | Предварительное выделение памяти для выходного файла |
-П | –предварительный просмотр данных | Строки отображения последних считанных данных по умолчанию составляют 3 строки. |
Как работает ddrescue
ddrescue использует мощный алгоритм восстановления, который разделен на четыре этапа:
1. Копирование
2. Обрезка
3. Соскабливание
4. Повторная попытка
Выполнение алгоритма ddrescue показано на следующем изображении.
Заключение
ddrescue — это мощный инструмент восстановления, используемый для восстановления данных с поврежденного или неисправного диска на другой диск путем копирования данных. Его можно легко установить в любой дистрибутив Linux с помощью менеджера пакетов по умолчанию. Прежде чем использовать этот инструмент, обратите внимание на важное обстоятельство, упомянутое в этом руководстве. Процесс копирования данных прост: отключите диск и используйте команду ddrescue, указав имя исходного диска и имя целевого диска. Не забудьте использовать файл журнала, так как он может оказаться весьма полезным для возобновления процесса восстановления.