Как я могу объединить два изображения ddrescue?

У меня есть два изображения ddrescue, созданные из непрерывных попыток восстановления одного и того же носителя. Эти два изображения имеют одинаковый размер, но имеют дополнительные данные:

$ od part-one/ddrescue_image --skip-bytes 227966006774 --read-bytes 32 3242365232766 113056 016517 102014 074371 144073 000000 000000 000000 3242365233006 000000 000000 000000 000000 000000 000000 000000 000000 3242365233026 $ od part-two/ddrescue_image --skip-bytes 227966006774 --read-bytes 32 3242365232766 000000 000000 000000 000000 000000 124616 163450 064251 3242365233006 074567 134433 012742 022160 044301 054235 140604 020633 3242365233026 

Как я могу объединить их в единое полное изображение?

Детали

  • Второе изображение является просто продолжением первой попытки восстановления, à la:

     $ ddrescue corrupt-partition part-one/ddrescue_image part-one/ddrescue_log $ mkdir part-two; cp part-one/ddrescue_log part-two/ddrescue_log $ ddrescue corrupt-partition part-two/ddrescue_image part-two/ddrescue_log 
  • Второе изображение почти полностью нулей, но содержит 18 КБ восстановленных данных, распределенных по 1847 изолированным регионам.

  • Я попытался использовать технику, упомянутую в этом списке рассылки ,

     $ ddrescue --domain-logfile=part-two/ddrescue_log part-two/ddrescue_image part-one/ddrescue_image part-one/ddrescue_log GNU ddrescue 1.16 Press Ctrl-C to interrupt Initial status (read from logfile) rescued: 937286 MB, errsize: 62976 B, errors: 122 Current status rescued: 937286 MB, errsize: 62976 B, current rate: 0 B/s ipos: 0 B, errors: 122, average rate: 0 B/s opos: 0 B, time since last successful read: 0 s Finished 

    но, похоже, ничего не изменило.

  • DDrescue последовательность операций?
  • Жесткий диск исчез
  • Изображение ddrescue слишком велико
  • Как я могу узнать, какие файлы потеряны при попытке восстановления ddrescue?
  • Чтение файлов после запуска ddrescue
  • Более быстрое восстановление диска (медленное выполнение ddrescue)
  • ddrescue запретительно замедляется из-за тайм-аутов ввода-вывода?
  • Почему ddrescue не использует полную пропускную способность?
  • 2 Solutions collect form web for “Как я могу объединить два изображения ddrescue?”

    Если вы точно знаете, какой регион данных вы хотите скопировать, вы можете использовать dd :

     dd conv=notrunc if=input of=output seek=123456 skip=123456 bs=4k count=128 

    Это скопировало бы 128 4k блоков с ввода на вывод, начиная с 123456.

    Было бы разумно сделать резервную копию блоков, которые вы собираетесь перенести первым:

     dd if=output skip=123456 bs=4k count=128 of=output-backup-bs4k-pos123456 

    Если вы НЕ знаете, какой регион данных копировать или не уверены в этом, GNU dd знает, что он sparse .

     dd conv=notrunc,sparse if=input of=output bs=4k 

    Это скопирует каждый ненулевой входной блок 4k для вывода. Используйте bs=512 если ваши блоки меньше!

    Обратите внимание, что с этим методом нет резервной копии, поэтому лучше скопировать файл, если это важно.

    Попробуй что-нибудь вроде этого?

     dd if=part-one/ddrescue_image bs=1 count=227966006784 >result dd if=part-two/ddrescue_image bs=1 seek=227966006785 >>result 

    Небольшой размер блока сделает это очень медленным; если вы можете реорганизовать использование большего размера блока и по-прежнему приземляться с правильным смещением, это должно сделать его намного быстрее.

    Если вы не можете этого сделать, разделение операции на более dd вызовы, вероятно, является идеей goid – прочитайте с большим размером блока, например 65536, до ближайшей границы 64K, затем медленно оттуда (возможно, перейдя на 1K размер блока до ближайшей границы 1K, прежде чем переходить к отдельным байтам), а затем быстрее, если вы закончите с мелкомасштабной манипуляцией.

    Interesting Posts

    Файловая система с блоком 1 Мб?

    Что означает «вы корень?»?

    Всякий раз, когда я набираю неправильную команду, мой терминал пытается запустить эту команду в фоновом режиме

    Доля устройства захвата alsa с alsaloop

    Ошибки cfdisk с новым внешним USB-накопителем

    У меня есть USB-накопитель, установленный как в sdb1, так и в sdb2. Как правильно отформатировать его?

    X Изображение после курсора указателя мыши

    Как создать хэши паролей SHA512 в командной строке

    Как отсортировать по 2 столбцам и сохранить верхнюю строку из каждой группы?

    Печать содержимого между скобками в разных строках

    Что означает знак вопроса в соответствующем шаблоне имени файла?

    Почему именованный канал не удаляется после перезапуска системы?

    Поиск имени файла / местоположения скрипта bash на сервере с использованием PID

    Обложка xmms2

    SSH от клиента до встроенного Linux через сервер

    Linux и Unix - лучшая ОС в мире.