Иногда возникают не тривиальные задачи по восстановлению работы PC. К таким задачам относится перенос данных с одного жесткого диска на другой. Очень часто бывает так что основной HDD стал понемногу сыпаться. И нужно срочно перенести данные с него. Можно конечно воспользоваться различными утилитами для резервного копирования. Но в таком говне как Windows, это никогда нормально не работает. К тому же вам нужно будет заново настраивать все программы. Поэтому самый быстрый и безопасный способ — клонировать жесткий диск.
Но при наличии битых секторов на исходном носителе, любая виндовая программа будет останавливаться. Но выход конечно же есть.
Я к примеру поступаю следующим образом:
Создаю загрузочную флешку с Live дистрибутивом Parted Magic 2016. Это дистрибутив Linux, с различными утилитами для восстановления системы. Авторы этого дистрибутива конечно жлобы и попросят у вас 9$ но вы смело можете зайти на Torrent Search и найти ближайший к вам torrent трекер откуда его и скачаете.
Дальше вам нужно открыть командную строку и выполнить команду:
fdisk -l
Которая покажет вам, какие диски есть в вашей системе. Предварительно вам необходимо подключить всю периферию.
В дальнейшем все что нам нужно, это открытая консоль и команда ddrescue
Немного теории — утилита ddrscue обладает одной очень полезной особенностью, она ведёт специальный лог, в котором отмечает проблемныепропущенные места, и при дальнейших запусках уже использует этот файл пробует читать только то, что раньше распознать не удалось. Поэтому процесс восстановления будет идти в несколько этапов, сначала пытаемся максимально быстро распознать большую часть, а потом возвращаемя к проблемным участкам.
В данном примере диск /dev/sda — исходный диск с битыми секторами
Диск /dev/sdb — пустой диск такой же или большей емкости.
Первый проход запускается командой
ddrescue --no-split --verbose /dev/sda /dev/sdb /root/rescue.log
Если система вам скажет что на диске куда вы собираетесь клонировать исходный диск уже есть данные, вам необходимо использовать параметр —force
ddrescue --no-split --verbose --force /dev/sda /dev/sdb /root/rescue.log
Лог восстановления — параметр не обязательный, но при многопроходном варианте нужен, и если в первый проход его создать забыли, то можно использовать —generate-logfile, полученный лог будет больше оптимального, но для дальнейших проходов полностью подойдёт.
[ad name=»Responbl»]
В моём случае первый проход занял больше дня и сообщил о следующем
rescued: 22093 MB, errsize: 12264 MB, errors: 3876
картина не самая приятная, но уже что-то, начинаем второй проход.
ddrescue --direct --max-retries=2 --verbose /dev/sda /dev/sdb /root/rescue.log
теперь пробуем прочесть диск в режиме прямого доступа и с 2 повторными попытками. Это число можно увеличивать, но в моём случае это только увеличивало время и результатов не приносило. (А вот при копировании CD вполне может дать результат).
Второй проход занял ещё около 15 часов, причём значительно улучшил картину:
rescued: 34292 MB, errsize: 65220 kB, errors: 16659
но попробуем вернуть остатки
ddrescue --retrim --max-retries=2 --verbose /dev/sda /dev/sdb /root/rescue.log
в этом режиме очень сильно падает скорость, но восстанавливается то, что предыдущие два прохода не смогли.
Через два часа восстановление прерываю, результат
rescued: 34293 MB, errsize: 64579 kB
понятно что резкого улучшения ждать не стоит. С другой стороны для файлов небольшого размера (10-100мб) именно третий проход давал максимум данных, так что зависит от везения и характера проблем.
[ad name=»Responbl»]
Времени на всё ушло чуть более двух суток, что конечно много, но приемлемо.
Удачного восстановления, и не забывайте делать бекапы, они стоят потерянного времени, но а на крайний случай, ddrescue Вам в помощь.
3 comments On Как клонировать жесткий диск с поврежденными данными
Pingback: Что делать если жесткий диск перестал работать. - Cryptoworld ()
Подскажите: как можно бороться с зависанием контроллера на повреждениях диска?
ddrescue: unrecognized option ‘—no-split’