ddrescue

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

GNU ddrescue
Скриншот программы GNU ddrescue
Тип Data recovery
Автор Antonio Diaz Diaz
Написана на C
Операционная система Unix-like
Первый выпуск 12 августа 2004; 20 лет назад (2004-08-12)
Последняя версия 1.27 (23 января 2023; 21 месяц назад (2023-01-23))
Репозиторий ftp.gnu.org/gnu/ddrescue/
Лицензия GPLv2
Сайт gnu.org/software/ddrescue/
Логотип Викисклада Медиафайлы на Викискладе

GNU ddrescue это утилита для восстановления данных. Она копирует данные из одного файла или блочного устройства (жесткий диск, CD-ROM, и так далее.) на другой, пытаясь восстановить данные в случае ошибок чтения. GNU ddrescue написана на языке C и впервые была выпущена в 2004 года и с тех пор стала доступна в большинстве дистрибутивов Linux.

GNU ddrescue не является производной от dd и никак не связана с dd, за исключением того, что обе могут использоваться для копирования данных с одного устройства на другое. Разница в том, что ddrescue использует сложный алгоритм для копирования данных с неисправных дисков, что наносит им как можно меньше дополнительного ущерба. GNU ddrescue считается наиболее сложной реализацией алгоритма изменения размера блока в бесплатном программном обеспечении с открытым исходным кодом и считается важным инструментом восстановления данных.

Если кто-то использует функцию «mapfile» (ранее называвшуюся «logfile») в ddrescue, данные спасаются очень эффективно (считываются только необходимые блоки). Можно также прервать спасение в любое время и возобновить его позже в той же точке.

ddrescue не записывает нули в выходные данные, когда обнаруживает плохие сектора во входных данных, и не обрезает выходной файл, если его не просят. Таким образом, каждый раз, когда вы запускаете ddrescue для одного и того же выходного файла, он пытается заполнить пробелы, не уничтожая уже восстановленные данные.

Использование

[править | править код]

Клонирование диска /dev/sda на /dev/sdb в Linux с записью лога восстановления в файл rescue.log

ddrescue --force /dev/sda /dev/sdb rescue.log

Клонирование диска разрежённый файл

ddrescue --sparse /dev/sdb ./sparse-file ./history.log

Другие варианты использования

[править | править код]

Автоматическое объединение резервных копий: если у вас есть две или более поврежденных копии файла, компакт-диска и т. Д., необходимо запустить ddrescue на всех из них, по одному, с одним и тем же выходным файлом. В результате получится один полный и безошибочный файл. Используя файл журнала, только вторые и последующие копии считывают только необходимые блоки.

ddrescue рекомендует lzip для сжатия резервных копий, потому что формат lzip предназначен для долгосрочного архивирования данных и предоставляет возможности восстановления данных, которые прекрасно дополняют возможности ddrescue. (ddrescue заполняет нечитаемые сектора данными из других копий, а lziprecover исправляет поврежденные сектора данными из других копий). Если причиной повреждения файла является поврежденный носитель, комбинация ddrescue lziprecover является лучшим вариантом для восстановления данных из нескольких поврежденных копий.

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