У меня есть жесткий диск с плохими блоками или секторами, которые не могут читать из-за потенциальных механических проблем, таких как плохая головка диска, плохой двигатель или какая-то другая проблема, которая заставляет жесткий диск читать данные мучительно медленно и с большим количеством ошибок чтения. Я вижу в среднем 50 кб / с, при этом некоторые чтения опускаются ниже 10 кб / с, и часто он застревает на файле или секторе в целом, как правило, довольно долго-от 2-10 минут или более (при использовании rsync, до время истекает).
скорость, кажется, сильно меняется, и она сильно застревает на файлах, и когда она, наконец, "отклеивается", она, кажется, длится только короткий взрыв, прежде чем она снова застревает. Диск также очень тихий, с редким звуком копирования файлов (обычно, когда он застревает / отклеивается на короткое время, прежде чем снова застрять). Таким образом, нет ни одного из тех злых звуков, которые обычно связаны со смертью жесткого диска. Кто-то предположил, что проблемы звучали так может быть вызвано несогласованной головкой диска, которая требует много перечитывает, прежде чем он, наконец, считывает данные с успехом. Звучит правдоподобно, но я отвлекся...
во всяком случае, проблема с rsync заключается в том, что он, кажется, не имеет достойной поддержки обработки ошибок. Очевидно, что он не был предназначен для использования в восстановлении данных с неисправных жестких дисков, но все так называемые "восстановление данных" утилиты там, что are предназначен для такого использования, как правило, сосредоточиться на восстановлении удаленных файлов или перепутались разделы, а не копирование файлов с умирающих жестких дисков. Восстановление удаленных файлов-это не то, что мне нужно, очевидно, поэтому, возможно, вы можете понять мое разочарование в том, что я еще не смог найти то, что мне нужно.
естественно, здесь вы, вероятно, скажете: "вы должны использовать ddrescue!"Ну, это все хорошо и денди, но у меня уже есть большая часть резервных копий данных, поэтому я просто хочу восстановить некоторые файлы. Я не обеспокоен попыткой восстановить полный раздел блок за блоком, как ddrescue делает. Меня интересует только спасение определенных файлов и каталогов.
В идеале мне бы хотелось нечто среднее между rsync и ddrescue: что-то, что позволяет мне указать источник и место назначения в качестве каталогов обычных файлов, таких как rsync (а не два полных раздела, как требует ddrescue), с возможностью пропустить файлы с ошибками при первоначальном запуске, а затем позволяет мне попытаться восстановить эти файлы с ошибками в более позднем запуске (с помощью конечно, немного измененная команда), возможно, даже предлагает возможность указать количество попыток повтора ...точно так же, как ddrescue работает с блоками, только мне нужна утилита, которая работает с конкретными файлами/каталогами, такими как rsync.
Итак, я мечтаю здесь, или существует что-то, что может сделать это? Или, может быть, даже способ заставить rsync или ddrescue работать таким образом? Я действительно открыт для любых решений, которые могут работать, если они позволяют мне выбирать, какие файлы я хочу для "спасения", и может пропустить файлы с ошибками в начальном запуске,и попытаться / повторить эти ошибки позже.
до сих пор я пробовал rsync со следующими параметрами, но он часто застревает в файле дольше, чем тайм-аут, и в идеале я бы просто хотел, чтобы он перешел к следующему файлу и вернулся позже к файлам, на которых он застревает. Я не думаю, что это возможно. Во всяком случае, вот что я использовал до сих пор:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/