Я настоятельно рекомендую вам использовать ddrescue
- не избегайте инструмента, который подходит для работы, его запуск не сложен, и вы избавите себя от стресса.
Вызов прост:
Первый забег:
-p
- предварительно выделить место
-b 4M
- использовать большой размер сектора для скорости
ddrescue -p -b 4M ${SRC_DISK} ${DST_IMAGE} ${DST_LOGFILE}
Последующие запуски: (в отличие от dd
, вы можете запустить его несколько раз, и он продолжит с того места, на котором остановился, обращаясь к файлу журнала)
-b 512
- использовать меньший размер сектора, чтобы попытаться заполнить пробелы
-r 10
- использовать несколько повторных попыток
ddrescue -b 512 -r 10 ${SRC_DISK} ${DST_IMAGE} ${DST_LOGFILE}
Разделы с ошибками чтения будут (по умолчанию) содержать нули, и вы получите файл журнала, подобный приведенному ниже:
# pos size status
0x00000000 0x00014E00 +
0x00014E00 0x00000200 -
0x00015000 0x00005800 +
0x0001A800 0x00000200 -
0x0001AA00 0x00028000 +
0x00042A00 0x00000200 -
0x00042C00 0x00125400 +
Линии, отмеченные +
являются областями, в которых нет ошибок, строки, отмеченные -
это области с ошибками.
Вам может понадобиться рассмотреть некоторые из следующих параметров, в зависимости от характера ошибок чтения:
-d, --direct
use direct disc access for input file
-K, --skip-size=<min>[,<max>]
initial size to skip on read error [64 KiB]
-M, --retrim
mark all failed blocks as non-trimmed
-O, --reopen-on-error
reopen input file after every read error
-r, --retry-passes=<n>
exit after <n> retry passes (-1=infinity) [0]
-R, --reverse
reverse the direction of all passes
В прямой ответ на ваш вопрос:
- Вы, вероятно, столкнулись с проблемой буферизации ... вы, вероятно, увидите, что сразу появляется много строк, а потом ничего больше - посмотрите на
unbuffer
- Возможно,
sudo
запрашивает пароль, но вы перенаправили подсказку ... так что ничего не происходит.