Утилита копирования файлов, например rsync, с обработкой ошибок, например ddrescue, для восстановления данных с жесткого диска с поврежденными секторами или аппаратного сбоя [закрыто]

12

У меня есть жесткий диск с плохими блоками или секторами, которые не читаются из-за потенциальных механических проблем, таких как неисправная головка диска, неисправный двигатель или другая проблема, которая заставляет жесткий диск мучительно медленно читать данные с большим количеством ошибок чтения. Я вижу в среднем 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/
purefusion
источник

Ответы:

3

У меня Hitachi 3 ТБ, который читает мучительно медленно, ddrescue будет работать на уровне файлов. Но не по каталогам. Тем не менее, я не смог заставить работать параметры -timeout или --min-read-rate в ddrescue.

Вы хотели бы сделать это в сценарии, чтобы восстановить по одному файлу за раз.

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log
qwop
источник
3

Возможно, с тех пор, как был задан этот вопрос, rsync изменился.

Мой опыт показал, что в rsyncнастоящее время отлично справляется с копированием материала с умирающего жесткого диска, с

rsync -a <src> <dest>

Он быстро продолжит работу, если обнаружит ошибки, и при повторном запуске вернется, чтобы снова попробовать эти файлы.

rsync --version отчеты rsync version 2.6.9 protocol version 29

Что касается других ответов:

Ответы 2011 года, кажется, продвигают инструменты, которые являются коммерческими эквивалентами ddrescue - без признаков того, что они осведомлены о файлах. Подозрительное. Ответ 2013 года интересен.

Мэтью Элви
источник
2

Отличный вопрос, люблю уровень детализации. Для утилиты, которая будет хорошо работать в этом сценарии, я бы порекомендовал попробовать Filescavenger от Quetek . Это позволит проводить чрезмерное повторное считывание на счету 100+, но, что более важно, оно имеет функцию создания образа диска, которая позволит вам выгружать все содержимое в изображение, не тратя время на попытки оценить файлы, затем загрузить изображение и сканировать его. для файлов. Утилита стоит 50 долларов для домашних пользователей, но вы можете скачать ее и протестировать, чтобы увидеть, что можно восстановить с изображения, прежде чем тратить деньги.

Если это профессиональное использование, это будет стоить вам немалых денег, но приобретет значительные функции, включая поддержку логических и аппаратных рейдовых массивов.

Если и это не помогает, вы можете не использовать инструменты для восстановления программного обеспечения. Если это так, и вы можете обосновать стоимость восстановления лаборатории, дайте мне знать, в какой стране, штате и городе вы находитесь. Я могу порекомендовать одну из наших лабораторий или лабораторию конкурентов рядом с вами.

Крис

Крис - Броня-IT
источник
1

Вы хотите прогрессивный копир . Он нацелен на создание целых дисков, но, поскольку он принимает путь к файлу в качестве параметра, он должен работать и для отдельных файлов. Я не думаю, что это будет работать для каталогов - вам придется указать каждый файл.

afrazier
источник