В чем разница между ddrescue, gddrescue и dd_rescue?

57

Команда ddобычно используется для создания резервных копий образа диска или раздела . Однако он работает плохо, если исходный диск ненадежен или неисправен. Я прочитал, что ddrescue/ dd_rescue- это хороший инструмент для восстановления образа с плохого диска, так как он разумно пытается перечитать сектора, которые не удалось прочитать в первый раз.

Но в репозиториях Ubuntu, я вижу две разных ddrescueпрограмм, с 3 - мя разные , но подобные имена появляются в разных местах: ddrescue, gddrescue, dd_rescue. Какая разница?

Механическая улитка
источник

Ответы:

71

ddrescueПутаница может относиться к двум совершенно отдельным программам dd_rescueКурта Гарлоффа и GNU ddrescue . Оба имеют одну цель и активно развиваются.

Программа Гарлофа dd_rescue- первая попытка улучшить dd; GNU ddrescue является более новым и был создан для устранения недостатков вdd_rescue .

Несколько источников предпочитают GNU ddrescue dd_rescue. Например,

  • http://lwn.net/Articles/430000/

    ddrescue выигрывает (в моей книге), потому что это эффективная автономная программа, написанная на C ++ (не kludge сценария оболочки), производит намного более чистый вывод на консоли / терминале и (что наиболее важно) обрабатывает нечитаемые блоки изящно и разумно .

  • http://www.toad.com/gnu/sysadmin/index.html#ddrescue

    GNU ddrescue - твой лучший друг.

    Он смоделирован после двух предыдущих программ: dd_rescue (с подчеркиванием) и dd_rhelp. Но GNU ddrescue гораздо лучше, чем оба - я пробовал все три на одном диске, а также пытался использовать обычный старый «dd».

    GNU ddcue Антонио Диаса Диаса извлекли уроки из этого опыта. Он сочетает в себе способность dd_rescue читать большие блоки и затем переключать передачи с возможностью dd_rhelp запоминать, какие части диска уже были просмотрены. Он хранит эту информацию в действительно простом формате файла журнала и обновляет ее каждые 30 секунд или всякий раз, когда она останавливается или прерывается. Он написан на C ++, и он маленький и быстрый.

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

Пакеты Ubuntu

К сожалению, имена пакетов в репозиториях Ubuntu сбивают с толку; dd_rescueупакован под именем ddrescueи ddrescueпод gddrescue! Из резюме пакета:

  • gddrescue пакет:

    Обратите внимание, что это версия GNU ddrescue с исполняемым файлом / sbin / ddrescue. Если вы ищете версию Курта Гарлофа для ddrescue, пожалуйста, проверьте пакет ddrescue.

  • ddrescue пакет:

    Обратите внимание, что это версия dd_rescue Курта Гарлоффа, предоставляющая исполняемый файл / bin / dd_rescue. Если вы ищете версию GNU ddrescue, пожалуйста, проверьте пакет gddrescue.

Резюме имен:

Program name     Ubuntu package name     Executable name    Name in URL
GNU ddrescue     gddrescue               ddrescue           ddrescue
dd_rescue        ddrescue                dd_rescue          ddrescue
Механическая улитка
источник
2
Два года спустя, но: очень хороший пост для проблемы, которая все еще затрагивает людей, а не только в Ubuntu! Я добавлю свои два цента, как это упоминалось только в ответе выше: одним из преимуществ GNU ddrescue является его особенность файла журнала. Он не только позволяет вам возобновить частичное восстановление и повторить попытку позже, но и потому, что он читается как человеком, так и компьютером, и люди, и компьютеры могут использовать его для более сложного восстановления данных позже. Мне пришлось сделать это недавно на поврежденном диске; без файла журнала я бы не знал, с чего начать!
andlabs
4
Последние версии Ubuntu (14.04 и выше), кажется, имеют только gddrescue, пакет поиска Ubuntu для ddrescue только показывает gddrescue(& ddrescueview), Курт Гарлофф ddrescueтолько в 12.04
Xen2050
2
Причина «первого пропуска поврежденных блоков» заключается в том, чтобы сначала сохранить все еще неповрежденные данные, прежде чем пытаться восстановить плохие данные. Активность на диске может уничтожить больше битов, особенно повторяющиеся попытки восстановить плохие области.
Джонас Стейн