Я настоятельно рекомендую вам просто использовать ddrescue
- не избегайте инструмента, который подходит для работы, запускать его не сложно, и вы избавите себя от стресса.
Вызов прост:
Первый забег:
-p
- предварительно выделить место-b 4M
- использовать большой размер сектора для скорости
ddrescue -p -b 4M $ $ $
Последующие запуски: (в отличие от этого dd
, вы можете запустить его несколько раз, и он продолжит с того места, на котором остановился, обращаясь к файлу журнала)
-b 512
- использовать меньший размер сектора, чтобы попытаться заполнить пробелы-r 10
- использовать несколько повторов
ddrescue -b 512 -r 10 $ $ $
Разделы с ошибками чтения будут (по умолчанию) содержать нули, и вы получите файл журнала, подобный приведенному ниже:
# 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
возможно, спрашивает пароль, но вы перенаправили приглашение прочь ... так что ничего не происходит.