Как клонировать раздел NTFS (WinXP) с поврежденного диска на новый?


10

Мне нужно клонировать раздел NTFS с поврежденного жесткого диска (SCSI, если это имеет значение) на новый (SATA).

Я установил последнюю версию утилит Hiren Boot CD на USB-накопитель и попробовал использовать GParted, который сказал мне, что он не может копировать / вставлять раздел, потому что он поврежден и «помечен» окнами для запуска CHKDSK. Я последовал совету по предупреждению и попытался восстановить его с помощью CHKDSK /f(это заняло 9 часов и завершилось с ошибкой после «фазы 3») и программой Linux, которую я сейчас не могу вспомнить, но безуспешно.

Я пытался клонировать с помощью Clonezilla, но и по тем же причинам это не удалось. В HBCD есть dd_rescue, но он снова потерпел неудачу, потому что не может найти "ntfs.something".

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

Так что я должен делать?


Что за сообщение об ошибке вернулось CHKDSK /fпосле "фазы 3"?

Ответы:


5

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

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

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

Вот почему по моему опыту ddrescueгораздо лучше в проблемных случаях, чем ddс conv=noerror. ddrescueведет журнал о том, что он сделал, и перезапускается на основе этой информации, функция недоступна dd. ddrescueтакже умнее в чтении блоков, начиная с конца, если он сталкивается с проблемной областью. Он будет гораздо быстрее достигать состояния копирования изображения, которое вы можете использовать в качестве основы для проверки файловой системы (и вы можете перейти ddrescueк исходной копии). Вы можете сделать что-то подобное только в том ddслучае, если вы готовы потратить много времени на вычисление смещений вручную.

Вы также можете скопировать файл в раздел NTFS нужного размера, поместить диск в компьютер с Windows и использовать оттуда встроенные инструменты восстановления.


1
Очень полезный! Не могли бы вы добавить точный пример командной строки ddrescueв действии, подобный ddпримеру в другом ответе?
Ландрони

2
@landroni Я мог (в основном ddrescue /dev/sdX driveimage logfile), но вы действительно должны потратить усилия на чтение ddrescueдокументации. Если ваша система сломана, есть много причин, чтобы прочитать руководство, прежде чем ухудшить ситуацию.
Anthon

Сейчас я смотрю на справочную страницу, но некоторые варианты загадочны. Что будет самым консервативным ddrescueэквивалентом dd if=/dev/olddisk of=/dev/newdisk bs=4k conv=noerror,sync? Помня о том, что он будет работать на поврежденном (и умирающем) диске, и что «изо всех сил пытаться спасти данные в случае ошибок чтения» на самом деле не вариант. Спасибо!
Ландрони

@landroni с параметрами, указанными в моем предыдущем комментарии, каждый сектор в блоке пробуется только один раз. Единственный способ, которым я знаю, что вы можете улучшить это, если вы знаете, какие области в порядке, чтобы использовать -iи -sвосстановить их.
Энтон

Что ж, в прошлый раз, когда я пытался ddrescue /dev/sr0 driveimage.iso(на поцарапанном CD), программа пыталась снова прочитать много плохих секторов, много раз. Может быть, я ошибаюсь, но я бы неосторожно запустил ddrescueбез других ограничивающих опций на умирающем диске.
Ландрони

3

Возникла та же проблема: диск, который вот-вот умрет,
с разделом NTFS, который я хотел сперва спасти и исправить после
(до того, как диск полностью исчезнет).

Был в состоянии решить это с помощью ntfsclone :

  1. Подключите два диска - старый и новый
  2. Загрузка с Live-Linux с USB
    ( для этого также можно использовать Parted Magic )
  3. Создайте достаточно большой раздел на новом диске
    ( для этого используйте gparted )
  4. Обратите внимание на названия разделов, так как они названы в gparted
    ( /dev/sdaX, /dev/sdbX)
  5. Откройте окно терминала и выполните следующую команду: (замените и на имена из шага '4.' - )
    ntfsclone --force --ignore-fs-check --rescue --overwrite NEW-part OLD-part
    NEW-partOLD-part/dev/sd...
    ntfsclone будет жаловаться на то, что вы пропустили несоответствия,
    но следует продолжить с копирования раздела

- когда сделано -

  1. Выключить компьютер
  2. Отключите неисправный диск
    (теперь вы хотите использовать его как можно меньше)
  3. Загрузите компьютер снова - либо в Windows, либо в Linux,
    и попробуйте исправить раздел на новом диске.

РЕДАКТИРОВАТЬ:

- ПРИМЕЧАНИЕ. -
Неисправный (нестабильный) источник питания может привести к сбою контроллеров диска,
к сбою в работе и гораздо более вероятному строя, чем к дискам, поэтому лучше также проверить это.
Вы можете столкнуться с поведением, что все работает отлично в течение нескольких минут
(или секунд), а затем системы начинают сходить с ума, как только буквально прогревается.

(исправление источника питания, конечно, не восстановит потерянные данные, но предотвратит их дальнейшую потерю)


1

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

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


0

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

0) Установлен запасной диск идентичного размера (и марки) по гарантии и перенес старый диск во второй слот

1) Я использовал загрузочный компакт-диск с Ubuntu

Я попробовал простой вариант, но он сразу выдал много ошибок и завис

dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync
root@ubuntu:~# dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync
dd: error reading ‘/dev/sdb’: Input/output error
57496+0 records in
57496+0 records out
29437952 bytes (29 MB) copied, 6.02927 s, 4.9 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+1 records in
57497+0 records out
29438464 bytes (29 MB) copied, 8.86693 s, 3.3 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+2 records in
57498+0 records out
29438976 bytes (29 MB) copied, 11.7068 s, 2.5 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+3 records in
57499+0 records out

2) Прочитайте эти статьи:

Обратите внимание, что последний рекомендовал использовать -dпрямой доступ к диску, но я не использовал его

3) Установлен ddrescue

sudo apt-get install gddrescue
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install gddrescue
man ddrescue

Может также понадобиться (?)

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"

4) Наконец-то побежал (если вы копируете и вставляете, остановитесь, sda - мой новый диск ... обратите внимание и сделайте свою домашнюю работу)

ddrescue -v -r3 /dev/sdb /dev/sda ~/ddrescue.log
  • -в многословном
  • -r 3 попытки
  • Файл журнала ~ / xx, который можно использовать для повторной попытки. Обратите внимание, что это только хранится в памяти, но может быть скопировано на USB-диск

Вывод:

GNU ddrescue 1.17
About to copy 1000 GBytes from /dev/sdb to /dev/sda
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors       Initial skip size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
rescued:    22555 MB,  errsize:    196 kB,  current rate:   91815 kB/s
   ipos:    22555 MB,   errors:       5,    average rate:   68975 kB/s
   opos:    22555 MB,    time since last successful read:       0 s
Copying non-tried blocks...

5) Загрузились окна и восстановились ... TBC


0

Добрый день!

Дело в том, насколько сильно поврежден ваш исходный диск. Если он почти полностью разрушен, единственный способ клонировать данные - использовать профессиональные аппаратные средства для восстановления данных. Как Atola Insight

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.