Восстановите данные в Linux с помощью ddrescue

Vosstanovite Dannye V Linux S Pomos U Ddrescue



ddrescue — это инструмент, используемый для восстановления данных из файла или блочного устройства, такого как жесткий диск, твердотельные накопители, RAM-диски, компакт-диски, DVD-диски и USB-накопители. Он копирует данные с одного блочного устройства на другое, оставляя поврежденные блоки данных и перемещая только хорошие. ddrescue — это мощный инструмент восстановления, который полностью автоматизирован, поскольку не требует какого-либо вмешательства во время операции восстановления. Более того, его можно остановить и возобновить в любой момент благодаря файл карты ddrescue . Другие ключевые особенности ddrescue перечислены ниже:
  • Он не перезаписывает восстановленные данные, а заполняет пробелы в случае итеративного восстановления. Однако его можно усечь, если инструменту явно дано указание сделать это.
  • Восстановление данных в один файл из нескольких файлов или блоков.
  • Поддерживает несколько типов интерфейсов устройств, таких как SATA, ATA, SCSI, накопители MFM, дискеты и SD-карты.

В этом руководстве я буду изучать этот невероятно полезный инструмент для восстановления данных. Я также расскажу о процессе установки и о том, как использовать его для восстановления блочного устройства или раздела.

Примечание: Для выполнения инструкций в этом руководстве я использую дистрибутив 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, указав имя исходного диска и имя целевого диска. Не забудьте использовать файл журнала, так как он может оказаться весьма полезным для возобновления процесса восстановления.