Я думаю, что самый простой ответ - то, что dd, dd_rescue и ddrescue не разработаны для нанесения поражения схемам защиты от копирования. Они не делают предположений о формате данных и пытаются поддержать целостность всего оригинала на дисковых данных.
В случае dd
Я подозреваю, что это завершается из-за намеренной ошибки чтения на диске, который является частью схемы защиты от копирования. Это помогло бы подтвердить это при включении вывода командной строки от dd
с Вашим вопросом. Можно также найти некоторые ошибки чтения зарегистрированными в dmesg
команда производится.
Можно добраться dd
скопировать больше файла путем передачи noerror
отметьте к нему на командной строке. Однако можно найти, что это просто оставляет Вас с повреждением в Вашем заключительном изображении.
Можно использовать xargs
получить то, что Вы хотите.
find . -type f -print0 | sort -z | xargs -0 -n1 openssl sha512
-n1
опция говорит xargs только позволять одному аргументу быть данным openssl
команда. -print0
, -z
и -0
опции препятствуют тому, чтобы конвейер повредился, если существуют "проблемные" символы (как встроенная новая строка) в именах файлов.
Передайте его по каналу к xargs-L 1 openssl sha512, как это:
find . -type f | sort | xargs -L 1 openssl sha512
xargs берет выводы и выполняет его как командную строку программы, "-L 1" ограничивает его одной строкой на выполнение.
xargs
прежде, но я вижу, что это очень полезно для таких ситуаций. Замечательно изучить этоfind
,sort
иxargs
у всех есть поддержка завершенных пустым указателем объектов, таким образом, они могут все быть объединены в единственном конвейере как это! – TachyonVortex 25.11.2012, 18:18