Спасение hdd с плохими секторами: dd vs gddrescue

Где-то в интернетах я читал, что gddrescue превосходит dd, по крайней мере, с точки зрения возможности различать количество чтений дисков, выполненных в проблемном секторе. Это действительно так?

Время dd if = / dev / sda skip = 900343967 of = a.bin count = 4 iflag = direct conv = noerror, sync

Dd: чтение `/ dev / sda ': ошибка ввода / вывода
2 + 0 записей в
2 + 0 записывает
1024 байта (1,0 кБ), 18,6057 с, 0,1 кБ / с
3 + 1 записей в
4 + 0 записывает
2048 байт (2,0 кБ) скопировано, 18,6707 с, 0,1 кБ / с

Реальный 0m18.672s
Пользователь 0m0,000s
Sys 0m0.004s

Btw, прямой флаг действительно помогает, без него я мог читать только 1 сектор из 4 (против 3/4 с ним). Тем не менее, это заметно замедляет скорость передачи – это по крайней мере примерно в 5 раз медленнее для меня: 5 МБ / с против 25 МБ / с без этого флага. Так или иначе , теперь для gddrescue (ddrescue) часть ..

Время ddrescue -b512 -c1 -s4b -dnvD -i900343967b -o0b / dev / sda b.bin

О копировании 2048 байтов из / dev / sda в b.bin
Начальные позиции: infile = 460976 МБ, outfile = 0 B
Размер блока копирования: 1 жесткий блок
Размер жесткого блока: 512 байт
Max_retries: 0
Прямая: да Редкая: нет Сплит: нет Усечение: нет

Нажмите Ctrl-C, чтобы прервать
Спасено: 1536 B, errsize: 512 B, текущая скорость: 53 B / s
Ipos: 460976 МБ, ошибки: 1, средняя скорость: 53 B / s
Opos: 1536 B, время от последнего успешного чтения: 0 s
Законченный

Реальный 0m18.736s
Пользователь 0m0.004s
Sys 0m0,000s

Как показано выше, для выполнения этого времени требуется одинаковое количество времени. Как и ожидалось – одинаковая статистика: 3/4. Однако, хотя я мог бы помещать проблемные сектора с 0x00 для dd (conv = sync), gddrescue, похоже, не хватает этой функции? Вместо этого он просто пропускает проблемный сектор без написания чего-либо своего положения и продолжает следующий следующий сектор (если у меня уже есть данные, написанные над этим сектором в выходном файле, он не будет перезаписан: иногда это может быть нежелательно ). Я не знаю, как будет работать опция -t (truncate) для блочного устройства с gddrescue (я думаю, он полностью перезапишет его 0x00), но в обычном файле он, как и прогнозировалось, будет обрезать весь файл Без выполнения его только в смещенных размерах (т.е. -o1). Таким образом, это похоже на dd- синхронизацию , но далеки от того, что он будет имитировать только идентификационную функциональность, если вы готовы перезаписать все устройство / файл вывода.

Хотя, благодаря наличию подробного варианта и возможности записывать плохие сектора / блоки – gddrescue кажется лучшим выбором. Важно отметить, что оба приложения были запущены с (почти) идентичными параметрами.

Выход

Diff? .bin

Пуст (выход 0), то есть файлы точно такие же.

Теперь это та часть, которую я НЕ понимаю:

Dd медленный даже на безошибочном материале, так как он делает крошечные чтения и записи. Он проводит много времени, пережевывая ошибочные части накопителя, вместо того, чтобы читать как можно больше безошибочного материала, а затем возвращаться к тяжелым вещам.

Что это вообще такое? Особенно в том, что « он проводит много времени, пережевывая ошибочные части диска, вместо того, чтобы читать как можно больше безошибочного материала, ТО, ЧТО, вернувшись, чтобы сделать жесткий материал »? Потребовалось столько же времени, как показано выше (хотя я просмотрел очень крошечную часть данных, но это важно?).

Gddrescue предлагает ключ -r , который должен контролировать количество повторных чтений в «плохом секторе», однако dd, похоже, работает с -r0 все время (так же, как и в то же время). Итак, этот вариант просто для «пост-обработки»? То, что я получаю, состоит в том, что изначально оба dd и gddrescue, похоже, работают с -r0 и dd , похоже, не пережевывают через ошибочные части, а не gddrescue (оба они, похоже, останавливаются на плохом блоке для 15-18 Секунды дают или берут, так что в чем дело, как быстрее gddrescue ???)

Кроме того, что такое опция -D (использовать синхронную запись для выходного файла)? Я не заметил никакой разницы с некоторыми из проведенных тестов.

Может кто-нибудь прокомментировать все это? Благодарю.

Я не уверен, как цитируемый автор пришел к выводу. Я не обсуждаю, правильно ли он, или нет, у меня просто нет такого опыта.

С другой стороны, в отношении этого заявления …

Gddrescue превосходит dd, по крайней мере, с точки зрения возможности различать количество прочитанных дисков в проблемном секторе.

Реальная «по крайней мере» причина использования gddrescue заключается в том, что gddrescue не усекает вывод при повторных попытках чтения / записи. Gddrescue также полностью автоматизирован в отношении определенных ошибок чтения, которые останавливали бы dd.

Таким образом, цитируемый автор может быть прав, он может и не …, но в целом утверждение не соответствует точке gddrescue.

UPDATE: подробные различия между dd и gddrescue.

Dd conv = noerror, будет продолжаться после ошибки, но он просто пропустит плохой блок. Даже добавление опции синхронизации просто помещает нули вместо пропуска. Если вы используете dd для другого чтения с использованием того же выхода, вы просто перезапишете / потеряете все, что вы восстановили ранее.

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

Имейте в виду, даже с обоими инструментами, если целый блок на 100% нечитабелен. Вы по-прежнему не получите никаких данных. Gddrescue потенциально может получить больше данных, если некоторые секторы в блоке остаются читаемыми.

В зависимости от того, когда ваш hdd был изготовлен, а также производитель и какая версия прошивки работает, с современными hdds, когда обнаруживаются плохие сектора, они удаляются из использования прошивки, и диск знает, чтобы пропустить плохие сектора. Таким образом, понятие «спасения» hdd из плохих секторов может быть спорным в этом отношении. Вопрос о том, были ли в настоящее время плохие сектора некогда действительными данными, похоже, является тем решением, которое вы ищете, – ни каламбур не предназначался!

Существует некоторое программное обеспечение на grc.com под названием spinrite 6, который утверждает, что может исправить hdds с плохими секторами. Это платное программное обеспечение, и я никогда не пробовал. Это стоит прочитать, особенно если вы пытаетесь «воскресить» hdd, и он работает, как описано. Часто задаваемые вопросы на grc.com относительно spinrite 6 показывают, что существует гарантия возврата денег на 30 дней (и нет пробной или бесплатной версии). Примечание. Я не являюсь аффилированным лицом с grc.com и не рекомендую его для вашей ситуации. Я просто знаю, что он существует и может работать как рекламируемый, просто не верьте мне на слово – caveat emptor.

Что касается оценки того, является ли gddrescue «более высоким» по отношению к dd, по крайней мере, с точки зрения возможности различать количество считываемых дисков в проблемном секторе, любое количество считываний в плохом секторе (поскольку оно помечено как не- Функциональный сектор в списке плохих секторов, хранящихся в списке прошивок), мне не показалось бы полезным для качественного использования либо gddrescue, либо dd.

Возможно, вам будет полезно прочитать веб-страницу dd (Unix) по адресу: https://secure.wikimedia.org/wikipedia/en/wiki/Gddrescue#Recovery-oriented_variants_of_dd

Вам также может показаться полезным взглянуть на: Как создать образ разбитого жесткого диска с помощью UBCD, dd-rescue и P2 eXplorer по адресу: http://www.myfixlog.com/fix.php?fid= 21

  • Где Linux размещает сообщения о загрузке?
  • Потерянное разрешение на использование команд sudo
  • Как настроить внешние репозитории yum?
  • Как определить, какой / dev является флеш-накопителем USB?
  • Как включить автоматическое выключение Interactive ssh logins через один час
  • Что делает крипт (3) и еще что означает
  • Urxvt - вкладка расширения переменных среды
  • Google Chrome на новом CentOS 7.1 не запускается
  • Как найти время работы в Windows?
  • Какой Linux подходит на гибком диске?
  • Разрешения на закрытый ключ в папке .ssh?
  • Interesting Posts

    Выбор библиотеки пула Java JDBC в 2011/2012?

    Запросы, связанные с установочным носителем Windows 8 Upgrade

    Лучший способ запросить страницу данных и получить общее количество в инфраструктуре сущностей 4.1?

    Как хранить ключи SSH?

    Каков наилучший способ увеличить диапазон моего маршрутизатора 802.11g?

    Является ли Java составленным или интерпретированным языком программирования?

    Самый быстрый способ определить, является ли квадратный корень целого целым числом

    Каковы использование графических баз данных (http://neo4j.org/)?

    Где находится сообщение «Вы ответили на это сообщение …», хранящиеся в Outlook?

    Ошибка MySQL 1449: пользователь, указанный как определитель, не существует

    Excel: принимать только уникальные значения в coloumn

    Как динамически добавлять RowDefinition или ColumnDefinition в Grid со связыванием?

    Будет ли установка Visual Studio 2010 рядом с VS2008 вызвать проблемы?

    Корневой набор BIOS? Или, как я могу установить чистую BIOS?

    ANSI – UTF-8 в Notepad ++

    Давайте будем гением компьютера.