У меня есть жесткий диск с плохими блоками или секторами, которые не читаются из-за потенциальных механических проблем, таких как неисправная головка диска, неисправный двигатель или другая проблема, которая заставляет жесткий диск мучительно медленно читать данные с большим количеством ошибок чтения. Я вижу в среднем 50 КБ / с, при этом некоторые операции чтения опускаются ниже 10 КБ / с, и часто они застревают в файле или секторе в целом, обычно на довольно длительное время - от 2-10 минут или более (когда с помощью rsync до истечения времени ожидания).
Кажется, что скорость сильно разнится, и она сильно застревает в файлах, и когда она, наконец, «отклеивается», кажется, что она длится только короткое время, прежде чем снова застревает. Накопитель также очень тихий, с копиями файлов (время от времени они застряли / отклеились на короткое время, прежде чем застревать снова). Таким образом, нет ни одного из тех злых звуков, которые обычно связаны со смертью жесткого диска. Кто-то предположил, что проблемы звучат так, как будто они могут быть вызваны смещенной дисковой головкой, которая требует много повторных считываний, прежде чем окончательно считывает данные с успехом. Звучит правдоподобно, но я отвлекся ...
В любом случае, проблема с rsync заключается в том, что он, похоже, не имеет достойной поддержки обработки ошибок. Очевидно, что это не было предназначено для использования в восстановлении данных от сбоя жестких дисков, но все так называемое «восстановление данных» утилита, которые там будут предназначены для такого использования , как правило , сосредоточена на восстановлении удаленных файлов или перепутался разделы, а не копирование файлов с умирающих жестких дисков. Очевидно, что восстановление удаленных файлов - это не то, что мне нужно, поэтому, возможно, вы поймете мое разочарование в том, что я не смог найти то, что мне нужно.
Естественно, именно здесь вы, вероятно, скажете: «Вы должны использовать 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/