На Linux-системе GNU ddrescue это утилита, которую можно использовать для восстановления и копирования дисков. Она применяется к флеш-накопителям, DVD, жестким дискам, разделам и любым средствам хранения данных. Путем репликации данных порциями производится восстановление данных. Вот учебник по установке и использованию GNU Ddrescue для восстановления данных на Ubuntu.
В этой статье
Часть 1. Что такое GNU Ddrescue?
GNU ddrescue - это инструмент для восстановления данных для жестких дисков, DVD, CD и других цифровых носителей. Он копирует сырые блоки хранения, такие как секторы диска, с одного устройства или файла на другое, интеллектуально обрабатывая ошибки чтения, чтобы уменьшить потерю данных, удаляя хорошие секторы из частично прочитанных блоков.
Основная операция ddrescue полностью автоматизирована. Вам не нужно ждать ошибок, останавливать программу, перезапускать ее с другой позиции и так далее. Данные восстанавливаются при использовании функции файла отображения Ddrescue (читаются только необходимые блоки). Когда он распознает поврежденные секторы на входе, Ddrescue не пишет нули в выходной файл и не усекает выходной файл, если не попросить. Таким образом, при каждом запуске на том же выходном файле он пытается заполнить пробелы, не стирая ранее сохраненные данные.
Если у вас есть две или более поврежденных копии файла, CD-ROM и т.д., и вы запускаете Ddrescue на всех них поочередно, с тем же выходным файлом, вы должны получить полный и безошибочный файл. Это происходит потому, что вероятность повреждения одной и той же области во всех копиях низка (если ошибки случайны).
Характеристики
- Ddrescue работает только с доступными (с произвольным доступом) входными и выходными файлами, поскольку ему нужно читать и записывать в произвольных местах.
- Если ваша система поддерживает это, Ddrescue может читать входной файл напрямую с диска, обходя кэш ядра.
- Ddrescue также включает в себя режим "fill", который позволяет вам селективно перезаписывать части выходного файла, что может быть полезно для стирания данных, пометки поврежденных областей или даже "восстановления" поврежденных секторов в некоторых случаях.
- Одним из преимуществ Ddrescue является его интерфейсонезависимость, так что его можно использовать с любым устройством, поддерживаемым вашим ядром (ATA, SATA, SCSI, старые диски MFM, гибкие диски или даже карточки памяти flash, такие как SD).
Опции загрузки
GNU Ddrescue работает в операционных системах, похожих на Unix, и вот годы и версии GNU ddrescue, когда она была выпущена.
- 2014 год: GPL-2.0-или-позднее
- 2007 год: GPL-3.0-или-позднее
- 2004 год: GPL-2.0-или-позднее
История GNU Ddrescue
GNU ddrescue - это программное обеспечение с открытым исходным кодом, написанное на языке программирования C++, которое было выпущено впервые 12 августа 2004 года (18 лет назад). Оно также доступно в виде бинарного компонента в большинстве дистрибутивов Linux.
Часть 2. Советы по безопасному использованию Ddrescue
- GNU Ddrescue - это мощный инструмент, как и любой другой. Чтобы использовать его безопасно, вы должны сначала понять, что он делает, а затем получить некоторую информацию о устройствах, к которым он применяется.
- НИКОГДА не пытайтесь восстановить раздел, смонтированный для чтения/записи. Результирующая копия может оказаться более эффективной. Предпочтительно, чтобы раздел для спасения не был смонтирован, даже если он доступен только для чтения.
- НЕ ПЫТАЙТЕСЬ восстановить файловую систему на диске с ошибками ввода/вывода; вы почти наверняка потеряете больше данных.
- Любые данные, хранящиеся на устройстве или разделе, будут перезаписаны, если вы используете его в качестве места назначения.
- При перезагрузке некоторые системы могут изменить имена устройств. Проверьте имена устройств перед повторным запуском Ddrescue после перезагрузки.
- Если вы вмешиваетесь в процесс спасения и затем перезагружаете, любые частично скопированные разделы должны быть скрыты, прежде чем любая операционная система, пытающаяся монтировать и "исправить" обнаруженные разделы, сможет к ним обратиться.
Часть 3. Как установить Ddrescue на Ubuntu
Прежде чем начать, вам нужно установить Ddrescue в вашей системе. Этот инструмент обычно не устанавливается по умолчанию, но его легко установить из онлайн-репозиториев программного обеспечения вашего дистрибутива.
Выполните следующую команду для установки ddrescue с помощью менеджера пакетов вашей системы. Следуйте этим шагам для установки на основных дистрибутивах Linux:
- Для установки ddrescue на Ubuntu, Debian или Linux Mint.
$ sudo apt install gddrescue
- Для установки ddrescue на Fedora, CentOS, AlmaLinux и Red Hat:
$ sudo dnf install ddrescue
- Для установки ddrescue на Arch Linux и Manjaro:
$ sudo pacman -S ddrescue
Часть 4. Небольшой учебник Ddrescue с примерами
Этот учебник предназначен для людей, уже знакомых с командой dd. Если вы не знакомы с dd, вам следует сначала поискать в интернете вводный материал о dd и GNU Ddrescue.
С течением времени неисправный диск развивает все больше и больше ошибок. Таким образом, вы должны сохранить данные с диска немедленно, как только вы видите первую ошибку. Будьте осторожны, потому что каждый раз, когда поврежденный диск включается и может выводить данные.
Вам следует использовать Ddrescue, чтобы создать копию поврежденного диска, а затем попытаться восстановить копию. Если ваши данные важны, используйте первую копию в качестве основы для второй копии и попытайтесь восстановить вторую копию. Если что-то пойдет не так, у вас все равно будет основа для возврата.
Если вы пытаетесь восстановить весь раздел, сначала восстановите копию с использованием e2fsck или другого подходящего инструмента для типа раздела, который вы пытаетесь восстановить, затем смонтируйте восстановленную копию где-нибудь и попытайтесь восстановить файлы внутри нее.
Если таблица разделов повреждена, сохраните весь диск перед восстановлением таблицы разделов и разделов на копии. А если поврежденный диск не указан в /dev, его нельзя восстановить. По крайней мере, не с ddrescue.
Пример 1: Полностью автоматическое спасение всего диска с двумя разделами ext2 в /dev/sda в /dev/sdb. Вам не требуется предварительно разбивать /dev/sdb, но если таблица разделов на /dev/sda повреждена, вы должны воссоздать ее на /dev/sdb.
ddrescue -f -r3 /dev/sda /dev/sdb mapfile
fdisk /dev/sdb
e2fsck -v -f /dev/sdb1
e2fsck -v -f /dev/sdb2
Пример 2: Переместите раздел ext2 из /dev/sda2 в /dev/sdb2. Сначала используйте fdisk, чтобы создать раздел sdb2 с правильным типом и размером.
ddrescue -f -n /dev/sda2 /dev/sdb2 mapfile
ddrescue -d -f -r3 /dev/sda2 /dev/sdb2 mapfile
e2fsck -v -f /dev/sdb2
mount -t ext2 -o ro /dev/sdb2 /mnt(read rescued files from /mnt)
Пример 3: Во время попытки спасения всего диска /dev/sda в /dev/sdb, /dev/sda замерзает на позиции 12345678.
ddrescue -f /dev/sda /dev/sdb mapfile # /dev/sda freezes here
(restart /dev/sda or reboot computer)
(restart copy at a safe distance from the troubled sector)
ddrescue -f -i 12350000 /dev/sda /dev/sdb mapfile
(then copy backwards down to the troubled sector)
ddrescue -f -R /dev/sda /dev/sdb mapfile
Пример 4: Во время передачи данных с /dev/sda в /dev/sdb, /dev/sdb выходит из строя, и вам нужно передать данные на третий диск, / dev/sdc.bash
ddrescue -f -n /dev/sda /dev/sdb mapfile1 # /dev/sdb fails here
ddrescue -f -m mapfile1 /dev/sdb /dev/sdc mapfile2
ddrescue -f -n /dev/sda /dev/sdc mapfile2
ddrescue -d -f -r3 /dev/sda /dev/sdc mapfile2
Пример 5: Во время спасения раздела в /dev/sda1 в файл hdimage /dev/sda1 перестает реагировать и начинает выдавать ошибки чтения, позволяя ddrescue записать остаток раздела как неспасенный.
ddrescue -n /dev/sda1 hdimage mapfile # /dev/sda1 fails here
(restart /dev/sda or reboot computer)
ddrescue -n -A -i<pos> -O /dev/sda1 hdimage mapfile
(if /dev/sda1 fails again, restart /dev/sda or reboot computer and
then repeat the above command as many times as needed until it
succeeds. <pos> is the position where the drive stopped responding)
ddrescue -d -r3 /dev/sda1 hdimage mapfile
Пример 6: После спасения раздела из /dev/sda1 в файл hdimage sda1 исчезает из /dev.
ddrescue -n /dev/sda1 hdimage mapfile # /dev/sda1 fails here
(restart /dev/sda or reboot computer and then repeat the above
command as many times as needed until it succeeds)
ddrescue -d -r3 /dev/sda1 hdimage mapfile
Пример 7: Во время спасения раздела из /dev/sda1 в файл hdimage таблица разделов /dev/sda становится неразборчивой, и ОС больше не распознает sda1 в /dev. Решением является перемещение файла карты и чтение оставшегося раздела sda1 из /dev/sda. Вам нужно знать смещение раздела sda1 на диске sda и размер sda1.
ddrescue /dev/sda1 hdimage mapfile # partition table fails here
ddrescuelog --shift -o<offset> mapfile > shifted_mapfile
ddrescue -i<offset> -o0 -s<size> /dev/sda hdimage shifted_mapfile
Пример 8: После сохранения раздела в /dev/sda1 в файл hdimage расширьте hdimage, чтобы скопировать весь диск в /dev/sda без повторного копирования ранее скопированного раздела /dev/sda1. Решение заключается в переименовании файла карты, копировании данных из sda1 в его окончательное местоположение в hdimage, а затем чтении оставшихся данных из /dev/sda. Вам нужно знать смещение раздела sda1 на диске sda и размер sda1.
ddrescue /dev/sda1 hdimage mapfile # rescue partition
ddrescuelog --shift -o<offset> mapfile > shifted_mapfile
ddrescue --same-file -o<offset> -s<size> --reverse hdimage hdimage
ddrescue /dev/sda hdimage shifted_mapfile # rescue rest of drive
Часть 5. Использование Ddrescue для восстановления данных на Ubuntu - Полное руководство
Шаг 1. Запустите терминал командной строки и определите путь к устройству жесткого диска или разделу, который вы хотите клонировать. Вы можете сделать это с помощью таких инструментов, как lsblk, fdisk и т. д.
$ lsblk
Шаг 2. Затем раздел будет скопирован в файл образа с использованием следующего синтаксиса команды. В приведенном ниже примере мы используем /dev/sdX, но вы легко можете заменить его на ваш раздел или устройство. Содержимое будет сохранено в файл backup.img.
$ sudo ddrescue -d /dev/sdX backup.img backup.logfile
Примечание: Опция -d указывает ddrescue обходить кеш ядра и вместо этого обращаться к диску напрямую.
Шаг 3. Если вы пытаетесь восстановить данные с поврежденного диска, добавьте опцию -r после первой попытки, описанной выше. Она указывает ddrescue повторять попытки восстановления данных с поврежденных секторов. После опции вы можете указать количество повторов.
$ sudo ddrescue -d -r3 /dev/sdX backup.img backup.logfile
Шаг 4. Затем новый образ файла будет скопирован на другой диск или раздел. Для этого мы можем использовать команду dd.
$ sudo dd if=backup.img of=/dev/sdX
В качестве альтернативы используйте команду ddrescue.
$ sudo ddrescue -f backup.img /dev/sdX clone.logfile
Опция -f указывает, что вывод направляется на блочное устройство, а не в файл.
Шаг 5. Если вы хотите клонировать диск или раздел напрямую на другой без использования файла образа, используйте следующий синтаксис. В этом примере мы клонируем раздел /dev/sdX1 на /dev/sdX2.
$ sudo ddrescue -d -f /dev/sdX1 /dev/sdX2 clone.logfile
После завершения вышеописанных шагов вы должны иметь доступ к клонированному хранилищу и видеть все ваши файлы, так как ddrescue успешно их восстановил.
Part 6. Удаление/Деинсталляция Ddrescue из Ubuntu
После восстановления данных на Ubuntu с использованием Ddrescue, вы можете удалить его, чтобы освободить место. Вот как удалить ddrescue из Ubuntu 12.04 LTS. Используя команду apt, вы можете легко удалить этот пакет из операционной системы Linux.
Шаг 1. Следующая команда выполняется для удаления ddrescue:
sudo apt-get remove ddrescue
Шаг 2. Для удаления пакета ddrescue и его зависимостей используйте следующую команду:
sudo apt-get remove --auto-remove ddrescue
Запуск этой команды удалит ddrescue и все его зависимости, которые больше не требуются в системе.
Удаление ddrescue и всех файлов конфигурации полностью:
Шаг 3. Поскольку эта команда удаляет все файлы конфигурации и данные, она должна использоваться осторожно:
sudo apt-get purge ddrescue
Шаг 4. В качестве альтернативы выполните эту команду для удаления всех файлов конфигурации и данных, связанных с пакетом ddrescue. Вы не сможете восстановить удаленные данные, поэтому используйте эту команду осторожно.
sudo apt-get purge --auto-remove ddrescue
Часть 7. [Дополнительно] Установка Recoverit - Графического инструмента для восстановления данных на Linux
Использование GNU ddrescue для Linux может быть сложным для пользователей с небольшим опытом работы с командной строкой; к счастью, есть отличная альтернатива - Wondershare Recoverit Linux Data Recovery. Это решение для восстановления данных для операционных систем Linux с графическим интерфейсом. Вы можете использовать его для восстановления удаленных или потерянных файлов с устройств Linux всего за несколько кликов.
Wondershare Recoverit - Ваш безопасный и надежный программный продукт для восстановления данных на Linux
5 481 435 человек загрузили его.
Восстанавливает утерянные или удаленные документы, фотографии, видео, музыку, электронные письма и другие более 1000 типов файлов эффективно, безопасно и полностью.
Совместим с основными дистрибутивами Linux, включая Ubuntu, Linux Mint, Debian, Fedora, Solus, Opensuse, Manjaro и др.
Помогает в более чем 500 сценариях потери данных, таких как удаление, форматирование диска, сбой операционной системы, сбой электропитания, атака вирусов, потеря раздела и многое другое.
Простой интерфейс с точечным и щелчковым управлением позволяет восстанавливать данные с жестких дисков Linux всего в несколько кликов.
Работает через удаленное подключение. Вы можете восстанавливать потерянные данные даже в том случае, если ваше устройство Linux вышло из строя.
Вот пошаговое руководство по использованию Wondershare Recoverit Linux Recovery для выполнения операций по восстановлению данных, чтобы вы могли получить свои важные файлы как можно скорее.
Шаг 1. Выберите Linux Recovery
Установите Wondershare Recoverit после его загрузки. Затем откройте его и выберите NAS и Linux как первый вариант, а затем Linux Recovery.
Шаг 2. Подключитесь к устройству Linux удаленно
Заполните необходимые поля для установления удаленного подключения. Когда закончите, нажмите кнопку Connect. После этого Recoverit автоматически выполнит поиск отсутствующих файлов.
Шаг 3. Восстановление файлов и сохранение данных
Длина процесса сканирования определяется объемом сканируемых данных, который можно увидеть в нижней части экрана. Вы можете остановить поиск, когда найдете файл, который хотите восстановить.
После сканирования вы можете изучить файлы, чтобы убедиться, что они содержат данные, которые вы хотите восстановить. Затем выберите Recover.
Следуя инструкциям программного обеспечения, вы можете сохранить восстановленные файлы. Щелкните Recover чтобы получить восстановленные данные. Пожалуйста, выберите другой путь к файлу, чем последний потерянный.
Для Windows Vista/7/8/10/11
Для macOS X 10.10 или более поздней версии
Подведение итогов
Этот учебник представляет GNU ddrescue для Linux. Кроме того, вы узнаете, как установить инструмент GNU ddrescue на всех основных дистрибутивах Linux и использовать его для восстановления. Кроме того, мы также предоставляем лучшую альтернативу GNU ddrescue, которая представляет собой Wondershare Recoverit Linux Recovery для более простых и менее замороченных операций по восстановлению.