Во-первых, для использования программного обеспечения: вы можете попробовать использовать ddrescue
вместо dd
.
ddrescue
имеет переключатель для выполнения только ограниченного числа повторных попыток. Он также может использовать файл журнала, поэтому он записывает, какие блоки были плохими. Если позже вам захочется сделать больше попыток, вы можете использовать тот же файл журнала для ddrescue
повторного запуска с другими параметрами (например, больше попыток), и он будет повторять только необходимые блоки.
Пример использования:
# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log
С ddrescue
информационной страницы:
-n, --no-scrape
Skip the scraping phase. Avoids spending a lot of time
trying to rescue the most difficult parts of the file.
-r, --retry-passes=<n>
Exit after given number of retry passes. Defaults to 0.
-1 means infinity. Every bad sector is tried only once
in each pass. To retry bad sectors detected on a previous
run, you must specify a non-zero number of retry passes.
Вот несколько дополнительных источников для использования ddrescue
:
редактировать
В случае , если жесткий диск сам по себе занимает слишком много времени, вы можете попытаться включить функцию под названием TLER ( T IME L imited E rror R ecovery) или КЦТЛИ ( C ommand C ompletion T IME L IMIT). Не все жесткие диски имеют его, но вы можете использовать его для ограничения времени на самом контроллере жесткого диска. Этот подход можно сочетать с использованием ddrecue
, конечно.
В Linux есть инструмент под названием smartctl
(в smartmontools
комплекте).
Чтобы проверить текущую настройку («отключено» означает неограниченное время, которое вы не хотите):
# smartctl -l scterc /dev/sda
Чтобы установить его на фиксированное значение (5,0 секунд в этом примере. Установка на 0 отключает TLER):
# smartctl -l scterc,50,50 /dev/sda
Источник для TLER: http://en.wikipedia.org/wiki/TLER
У меня были хорошие результаты с других нечитаемых дисков с этим программным обеспечением.
http://www.cgsecurity.org/wiki/TestDisk
Этот следующий также является надежным инструментом восстановления. Он может получить файлы, даже если ваша файловая таблица повреждена или они были удалены. Это чертовски хороший инструмент для криминалистики. Он выводит вещи действительно неорганизованным способом, но вы можете переместить все данные.
http://www.cgsecurity.org/wiki/PhotoRec
источник
Для быстрого и быстрого восстановления диска вы можете использовать файл сценария sh и запустить файл с помощью sh. Он содержит эту строку, просто повторите
sudo ddrescue
и ещеsleep 3
несколько раз. Спящий режим используется для остановки диска на несколько секунд:Опции, использованные выше:
-r0
: без повторов-e +0
: выход при первой ошибке-T 1s
: выйти с ошибкой чтения в 1 секунду-d
: Прямой ввод / вывод-n
: нет царапинВы можете использовать
-R
после окончания с опцией-A
один раз, которая обратит и удалит все ошибки размера и начнется снова назад. Значит он будет читать ошибки по-разному.источник
Зависит от размера вашего жесткого диска и от количества плохих блоков. Обычно на резервное копирование у меня уходит 20 минут с использованием здорового HD на 1 тера. С плохими блоками я только что выздоровел этим утром, забрал меня дважды. У меня были проблемы с дублированием (резервное копирование диска) с около 30 поврежденных блоков. Первое, что я сделал, - это резервное копирование файлов с использованием обычного Filezilla для резервного копирования всех хороших данных. Я заметил, что один большой файл не копировался правильно (остановка посередине и перезапуск передачи). К счастью, у меня есть предыдущая резервная копия того же файла. Чтобы дублировать диск, я должен был найти поврежденные блоки на диске, используя следующую процедуру:
Сначала найдите проблемный диск, идентифицирующий информацию HD, используя fdisk -l
Во-вторых, если допустим, что ваш диск - / dev / sdb, то вам нужно выполнить команду badblocks -v / dev / sdb, она перечислит все ваши поврежденные блоки на диске. К счастью, будет несколько. Если плохие блоки не найдены, значит, с вашими дисководами все в порядке, и нужно что-то еще выяснить. Мой размер блока 512, поэтому я использую этот номер по умолчанию для запуска DD
3-й каждый блок имеет размер 512, поэтому я установил bs = 512
Каждый раз, когда я регулярно запускаю DD, как и всегда, мои данные после ошибок будут повреждены. Затем я использую параметры, описанные на странице https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html, в разделе «Для неисправных дисков».
Это заняло некоторое время. Каждый сбойный блок звучит как стук в неисправном диске. Он копирует блок за блоком, и все мои плохие блоки производят одинаковый шум. Количество шумов было связано с тем, что он обнаружил еще один неисправный блок и сообщал об ошибке на дисплее. Что «ко = NoError, синхронизация» делает, это раздуть из плохо читает с NULs, в то время как «iflag = fullblock» идеально подходит для короткого замыкания читает, но хранит в синхронизации данных до конца. Никакого искажения, он просто не копирует неисправные блоки и заполняет его пустыми NUL.
После того, как копия с DD была сделана, я просто заменяю этот плохой файл, возвращая Filezilla из прошлой резервной копии, и все работало хорошо. Я надеюсь, что это будет полезно для других, пытающихся сделать резервную копию неисправных дисков.
ПРИМЕЧАНИЕ: мои плохие блоки, где в значительной степени близко друг к другу. Около 4 блоков одновременно в группах, где обнаружены плохо. Если ваши блоки расположены по всему диску, это может повлиять на несколько файлов. К счастью, в моем случае это затронуло только большой файл базы данных размером 4 ГБ.
источник