Посекторное копирование жесткого диска с битыми секторами

Посекторное копирование жесткого диска с битыми секторами

Небольшая предыстория

Обратилась ко мне недавно родственница с проблемой: любимый котик уронил внешний жесткий диск с архивом любимых фото на (не менее любимый) пол. И диск (на 2 Тб) сдох. Ну, как сдох: включаешь его, а он какое-то время подумав, начинает стучать головками. Информация, естественно не читается.

Ну, я решил помочь, тем более, что интересно стало: получится или нет? Раньше, когда ко мне обращались с такими дисками, я посылал [в ремонт, восстановление данных на спец. аппаратуре, 20 000 руб. и выше]. С этой целью я взял [неиспользуемый] комп, заставил купить запасся жестким диском заведомо большего (3 Тб) размера, и решил осуществить посекторное копирование всего, что удастся скопировать (а там уже вытаскивать файлы).

Подключаю [по SATA] 2 диска к компьютеру, загружаюсь с реаниматора (виндового) и пробую сделать посекторную копию диска с помощью Symantec Ghost (с пропуском битых секторов естественно). Не тут-то было: копирование начинается, проходит 1, 5, 10…20 минут, доходит до битого сектора… и начинается постукивание головок, а с диска только ошибки, полезной инфы нет. После перезагрузки какое-то время всё ок, а потом та же картина.

Пробую dd для linux: то же самое. Начинаю рыть в инете, и натыкаюсь на чудные утилиты: ddrescue и dd_rescue. Они обе умеют копировать диск и вести лог (хотя это не совсем лог, а скорее что-то типа базы данных) своей работы, причем после перезагрузки компьютера скормишь им этот лог — и они уже продолжают с прерванного места.

Беру дистрибутив убунту (Linux Lite), загружаюсь с CD, с двумя подключенными дисками (2Тб-битый, 3Тб-новый) и флешкой (куда писать лог). Запускаю ddrescue — нет такого пакета, надо ставить. Ставлю, запускаю, указал лог, пошло копирование… через 5 минут диск начал стучать.

Останавливаю копирование, выключаю компьютер, жду когда диск остынет (пару минут в данном случае) и … СНОВА:

  • включаю компьютер
  • загружаюсь с CD с linux lite
  • устанавливаю пакет ddrescue
  • запускаю процесс копирования, указав ему тот же лог файл, что и в прошлый раз.

Наверное после 30-го выключения/включения компьютера мне это надоело и я подключил битый диск через USB коробочку. Однако, мне по-прежнему приходилось слушать, не начнет ли стучать диск: это значило, что пора опять прерывать процесс копирования, отключать/включать коробочку с диском и снова запускать копирование.

Где-то дня через 4 мне это надоело, и я нашел такой параметр как тайм-аут: если последние ххх секунд успешных считываний с диска не было — останавливать копирование. С этой опцией мне уже не нужно было сидеть наготове "как бы ddrescue весь диск не пометил как битый":

  • запустил копирование
  • ушел
  • пришел через какое-то время
  • увидел,что копирование прервалось по тайм-ауту
  • выключил коробочку с битым диском / подождал, пока диск остынет / включил коробочку
  • запустил копирование снова

Итог: за неделю было скопировано свыше 1800 Гб из 2000 Гб. Возможно, что потратив еще неделю, я бы смог "вытянуть" еще сотню гигабайт, но поскольку я даже не знал объема потерянной инфы (может, там 5 Гб на весь 2Тб диск?), я решил заняться восстановлением.

Программа R-Studio вполне справилась со своей задачей: менее, чем через сутки я увидел, что там есть "удаленные" файлы (NTFS испорчена) и смог их восстановить.

Итог: восстановлено свыше 60 000 фоток, кроме того какое-то там видео, MP3 и т.п. Да, часть из фоток (возможно — бОльшая, я просмотрел менее 1% фото) испорчена, но минимум 20-30% фотографий спасти удалось.

Итак, алгоритм работы с битым диском

Исходные данные и требования:

  • Битый диск должен читаться (посекторно, хоть какие-то места диска — не обязательно первые секторы) хоть по 5-10 минут сразу после включения, но должен. Если диск не читается вообще никак — тут программы бессильны.
  • Нужен еще один чистый диск такого же или большего объема
  • USB коробочка, в которую можно вставить битый диск чтобы его отключать, когда он перестает читаться — такая коробочка существенно сэкономит Вам время (хотя и без нее можно обойтись)
  • Нужна флешка или еще один жесткий диск, куда будет записываться лог-файл.
  • Требуется компьютер, на котором будут выполняться длительные операции посекторного копирования с диска на диск.
  • Ну и еще нужен LiveCD с linux, на котором уже есть или можно установить пакет ddrescue или dd_rescue
Читайте также:  Smbb сборка что это

Процедура копирования диска

  1. Подключаете все устройства (диски, флешку, устройство с linux) к компьютеру
  2. Загружаетесь с LiveCD
  3. Устанавливаете ddrescue (если это необходимо). В случае Linux Lite это будут команды:
    sudo apt update
    sudo apt install gddrescue
  4. Определяете пути:
  1. к битому диску (откуда копировать — пусть это будет /dev/sda)
  2. к хорошему диску (куда копировать — пусть это будет /dev/sdb)
  3. путь на (смонтированной) флешке к лог файлу (пусть это будет /mnt-flash/logs/ddrescue.log)
  • Первый проход копирования запускаете командой:
    sudo ddrescue —no-split -T 10s —verbose /dev/sda /dev/sdb /mnt-flash/logs/ddrescue.log
    команда выполняется долго, но она делает минимум попыток чтения и просто пробегается по всему диску (если это возможно). После первого подвисания диска на ошибке (и прекращении копирования) переходим к следующему пункту
  • Запускаете команду:
    sudo ddrescue —direct -f -T 10s -vvvvvvvvvvv /dev/sda /dev/sdb /mnt-flash/logs/ddrescue.log
  • Когда диск начинает сбоить, отображается таймер
  • По истечении 10 секунд операция копирования останавливается
  • Выключаете диск и даете ему остыть, если это необходимо.
  • Включаете диск
  • Возвращаетесь к пункту 6
  • Нюансы

    1. Бывает, что у диска слишком большие битые области. Поэтому даже после выключения/включения он сразу начинает сбоить. В этом случае просто увеличьте таймаут (за таймаут отвечает опция "-T", просто измените на -T 20s или на -T 30s )
    2. ddrescue иногда бывает "слишком умный" и после очередного запуска команды начинает сканировать диск в другую сторону (например, не от начала в конец, а обратно в сторону начала скан пошел). Если Вам такое поведение не нужно, используйте опцию: "-u" команда будет такая:
      sudo ddrescue —direct -f -u -T 10s -vvvvvvvvvvv /dev/sda /dev/sdb /mnt-flash/logs/ddrescue.log
    3. Вы уже просканировали диск от начала к концу и хотите проверить битые области еще раз, с меньшим тайм-аутом. для этого нужно все битые области пометить как несканированные. используйте опцию: "-A", команда при этом будет такая:
      sudo ddrescue -A —direct -f -T 10s -vvvvvvvvvvv /dev/sda /dev/sdb /mnt-flash/logs/ddrescue.log
    4. Количество попыток считывания с диска можно увеличить (или уменьшить) это задается опцией "-r":
      sudo ddrescue -r 10 —direct -f -T 10s -vvvvvvvvvvv /dev/sda /dev/sdb /mnt-flash/logs/ddrescue.log
    5. Советуем просканировать диск в разных направлениях: от начала к концу и от конца к началу, несколько раз и с разными таймаутами. Это поможет вытащить максимум информации (хотя и занимает уйму времени). Программа ddrescue дойдя (от начала) до конца диска автоматически начнет сканировать диск в обратном направлении, так что о смене направления сканирования беспокоиться не нужно. Но если Вы хотите, можете использовать опцию "-R" для смены направления сканирования:
      sudo ddrescue -R —direct -f -T 10s -vvvvvvvvvvv /dev/sda /dev/sdb /mnt-flash/logs/ddrescue.log
    6. Для ламеров в linux: когда подключено несколько жестких дисков, как определить, какой из них битый, а какой — новый? Откуда куда копировать? Если на диске читается MBR/GPT, то используйте команду:
      fdisk -l /dev/sda
      fdisk -l /dev/sdb
      fdisk -l /dev/sdc
      fdisk -l /dev/sdd
    7. Если mbr недоступна, то получить информацию об устройстве можно такой командой:
      lsblk
      или такой:
      fdisk -l
      или вот:
      blkid
      и вот еще:
      hwinfo —block —short
      кроме того, есть утилита gparted, которая также может отображать информацию о дисках:
      parted -l

    Источниками статьи послужили следующие материалы:

    Суть проблемы

    Данная неисправность представляет собой повреждение произвольного количества секторов на винчестере до состояния, когда их чтение головками в штатном режиме работы жёсткого диска становится невозможным. Либо поверхность накопителя деградирует до состояния, когда чтение секторов возможно, но идёт крайне медленно, что не позволяет накопителю полноценно работать с операционной системой и пользовательскими данными. Нужно признать, что на каждом жёстком диске есть повреждённые сектора. При производстве дисков эти повреждённые сектора заносят в специальный заводской дефект-лист P-List (Primary list) и уже далее в процессе работы эти повреждённые сектора диск "не видит". Если в процессе эксплуатации появляются дополнительные bad-блоки, то диск сам заносит их в пользовательский дефект лист G-List (Grown list). Объём этого дефект-листа ограничен и если поверхность диска начинает деградировать, а количество повреждённых секторов превышает вместимость G-List’а, то диск перестаёт полноценно функционировать и bad-блоки повреждают пользовательские данные.

    Читайте также:  Диапазон частот звука для человека

    Причины возникновения bad-блоков:

    • физический износ накопителя, вызванный длительной работой 24/7;
    • различные механические воздействия на накопитель, удары, падения, вибрация;
    • перегрев накопителя вследствие работы без охлаждения;
    • брак при изготовлении накопителя на заводе производителя;
    • некачественный блок питания, нестабильное напряжение в сети, отсутствие ИБП;
    • некорректное отключение жёсткого диска от работающего компьютера;

    Симптомы неисправности:

    • диск определяется в BIOS, но операционная система виснет на этапе загрузке или выдаёт синий экран;
    • отдельные файлы и папки перестают открываться или показываться в проводнике;
    • при копировании файлов и папок выдаются сообщения о невозможности прочитатьзаписать файл;
    • диск может издавать тихие "трыкающие" звуки при попытке прочитать файлы, содержащие bad-блоки;
    • очень медленная работа системы с повреждённым диском;
    • ненулевые параметры SMART: Reallocated Sector Count (количество переназначенных секторов) и Current Pending Sector Count (количество нестабильных секторов);

    Влияние bad-блоков на файлы пользователя

    Данная неисправность позволяет при использовании профессионального оборудования вычитать все пользовательские данные практически без потерь. На полноту восстановления данных при наличии повреждённых секторов на диске влияют такие факторы как количество bad-секторов и их расположение. Т.е. повреждённых секторов может быть 10шт. и они располагаются на секторах не содержащих пользовательских файлов, а может быть повреждённых секторов 100000шт. и все они попали например в бухгалтерскую базу 1C или в таблицу файлов MFT (Master File Table — «Главная файловая таблица»).

    Методы и программы для тестирования жёсткого диска на наличие bad-блоков

    Все существующие программные средства для тестирования жёстких дисков делятся на два типа: профессиональное оборудование для сервис центров и бесплатные программы доступные пользователям в интернете. Профессиональные средства работы с жёсткими дисками обычно являются программно-аппаратными комплесами, состоящими из непосредственно программной части и аппаратной платы криптозащиты с дополнительными независимыми от операционной системы SATA портами, реле управления питанием HDD и COM-терминалом с различными переходниками для разных моделей винчестеров. Возможности по тестированию HDD у программно-аппаратных комплексов значительно превосходят возможности в бесплатном програмном обеспечении. Стоимость одного программно-аппаратного комплекса может доходить до 3000$. Бесплатные программы не предназначены для ремонта, но подходят для полноценного тестирования HDD на наличие повреждённых секторов.

    Профессиональные программно-аппаратные комплексы: PC3000 Data Extractor, HDD Repair Tool.

    Бесплатные программы для тестирования жёстких дисков: MHDD, Victoria API, HDD Scan.

    Ниже представлен пример результатов тестирования жёсткого диска IBM на программно-аппаратном комплексе HDD Repair Tool. Как видно из рисунка, данное профессиональное оборудование позволяет не только определить количество и номера LBA повреждённых секторов, но и позволяет в графическом режиме показать точное расположение и распределение bad-блоков по всем пластинам жёсткого диска. На скриншоте повреждённые сектора на разных поверхностях и головках h0, h1, h2 ,h3 отмечены разныи цветами. Это даёт чёткое визуальное восприятие распределения повреждений по пластинам HDD.

    Методика восстановления информации при данной неисправности

    Существуют два основных метода копирования данных с дисков, повреждённых bad-секторами. В простых случаях, когда файловая таблица MFT не повреждена и её удаётся вычитать, то далее строится виртуальная карта занятых пользовательскими данными секторов на диске и копируются только сектора содержащие информацию, а пустые сектора не копируются. Это значительно ускоряет процесс копирования и снижает вероятность увеличения повреждений диска в ходе создания посекторного образа. В случаях, когда файловая таблица MFT повреждена и расположение файлов и папок на диске неизвестно, приходится делать полную посекторную копию всего диска, а уже после её завершения восстанавливать логическую структуру файловой системы на диске, куда была сделана посекторная копия. Любой метод восстановления данных при наличии повреждённых секторов на диске сводится к созданию посекторной копии повреждённого диска. Этот процесс всегда проходит в режиме "read only" (только чтение). Производить запись на повреждённый диск или подключать его к операционной системе крайне не рекомендуется, т.к. такой диск при попытке записать информацию может увеличить количество сбойных секторов и, как следствие, битых файлов. На многих моделях жёстких дисков имеется возможность вычитать данные из повреждённых секторов с помощью активной утилиты входящей в состав программно-аппаратного комплекса PC3000 DataExtractor. Активная утилита позволяет с помощью подачи в накопитель специальной команды ввести диск в технологический режим, после чего скорость чтения диска падает в разы, но при этом он начинает читать данные из повреждённых секторов. Общий же алгоритм сводится к тому, что бы сначала вычитать в режиме UDMA на высокой скорости все неповреждённые сектора, а затем перевести диск в технологический режим и вычитать на медленной скорости данные из повреждённых секторов.

    Читайте также:  Удельная теплоемкость меди и цинка

    Примеры повреждённых файлов в которых содержатся bad-блоки

    Как клонировать поврежденный жесткий диск от ноутбука?

    Есть ноутбук с Windows 7 Ultimate (лицензионный). Все отлично работает. Решили заменить жесткий диск на SSD. Ни одним Акронисом данные не копируются. Акронис либо не видит драйверов чипсета ( и жесткий диск), либо выдает ошибку копирования раздела. Судя по всему, там есть участок сбойных секторов, который на работу ноутбука никак не влияет. но и клонировать раздел не дает.

    Хочется винду перенести, а не переустанавливать. Нужна программа, которая умеет игнорировать сбойные участки и корректно клонировать диски. Либо программа, которая может копировать все папки со всеми NT-правами доступа. Либо иной способ переноса установленной Windows/

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

    • Вопрос задан более года назад
    • 6507 просмотров

    Акронис либо не видит драйверов чипсета

    Программы Акронис не работают с драйверами чипсета.

    Акронис это организация (фирма) создающая программные продукты — т.е. программы.

    берем домашнюю (триал 30 дней), ставим на текущую винду и переносим. На битых секторах не вылетает

    Вытащите HDD из ноутбука.
    Подключите к компьютеру на котором будет клонировать HDD и SSD
    Попробуйте запустить клонирование.
    Если не получается — сначала запустите полную проверку диска (бэкап ценных данных у вас разумеется есть)
    Ну или грузиться на ноут с загрузочной флешки.

    Еще варианты- делаем образ https://docs.microsoft.com/en-us/sysinternals/down.
    потом заливаем его обратно https://forum.sysinternals.com/vhd2disk_topic27311.html
    Но тут надо будет руками поработать — диск активным сделать, и загрузку восстановить. Ну и все операции только с vhd, ибо вторая утилита vhdx не понимает.

    Так же очень даже рабочий и беспроблемный вариант — панель управления — архивация и восстановление.
    А потом загрузка ноута с загрузочной флешки и восстановление системы из архива.

    Первая часть сообщения — пройденный этап =)

    А за за утилиты спасибо, буду пробовать.

    нет времени на эксперименты, нужно проверенное решение

    Нужна программа, которая умеет игнорировать сбойные участки

    заменить жесткий диск на SSD

    Сталкивался с аналогичной ситуацией. Софт, который шел в комплекте с SSD для клонирования, не помню уже, что это было — вылетал с ошибкой.

    Перепробовал всё, что нагуглил, опять же, весь список не помню. Ради любопытства, не стал останавливаться на первой же софтине, что сработала, дотестил всё что нашел. В моём случае, мне ещё требовалось размер раздела изменить, не просто скопировать. В итоге записал себе в книжечку на память только то, что справилось:

    Macrium Reflect
    MiniTool Partition Wizard
    Clonezilla

    Да, так вот. Диск был исправным, хотя отдельные софтины вылетали так, как будто натыкались на бэды. Что это было — не разбирался. Вполне возможно, что у вас ситуация аналогичная. Но на всякий случай, дисклеймер: если данные критически важны, прекращайте эксперименты, несите к специалистам. Если там бэды или царапина — попытки самостоятельного восстановления могут серьёзно ситуацию усугубить проблему. На PC-3000 используются специальные алгоритмы для обхода проблемных зон, а обычные копировщики будут тупо елозить головами по царапине, раздирая её ещё дальше.

    Ссылка на основную публикацию
    Adblock detector