Расширенные методы восстановления файлов разделов NTFS для поврежденных дисков (ошибки ввода-вывода)?

8

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

Подробности:

1) Я использовал ddrescue (инструмент AWESOME) в загрузочном ISO-образе Parted Magic для восстановления 99,98% соответствующего диска виртуальной машины. К сожалению, ошибки, по-видимому, почти полностью связаны с записью файлов RECENT ... так что, конечно, это именно те сектора, которые мне нужно восстанавливать больше всего.

2) Накопитель выдает ошибки ввода-вывода при чтении неверных секторов, но иногда ему ЧИТАЕТСЯ чтение ранее неисправных секторов! Итак, восстановление все еще возможно. Чуть чаще это может привести к серьезной неисправности и вращению привода вниз и назад. О, и около 1/4 из этих вращений не вернется. (Требуется жесткий цикл питания, отключение не будет работать). Наконец, почти каждое чтение плохого сектора сопровождается приятным звуком щелчка.

3) Важный диск виртуальной машины отформатирован в NTFS.

4) Я могу (обычно) смонтировать поврежденный том NTFS только для чтения, и я могу (чуть реже) перейти к папке, в которой содержится нужный мне файл. Однако рассматриваемый файл всегда выдает ошибку ввода-вывода, когда я делаю 'ls' папки. Другие файлы в папке не выдают ошибку ввода-вывода.

5) Я попытался использовать ntfsinfo / etc ... который звучит как то, что мне нужно ... но он вообще не открывает раздел. (Разочаровывает, так как обычно будет «гора»)

6) Этот файл представляет собой файл XLS эпохи Excel 2003, поэтому я не уверен, что смогу найти какие-либо строки для поиска необработанного образа диска. (Возможно, части 6-месячной версии?)

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

Ранее я писал (относительно простые) модули ядра, поэтому я мог скомпилировать специальный модуль NTFS с включенной (или добавленной) дополнительной отладочной информацией. (Файл стоит по крайней мере несколько дней, чтобы попытаться восстановить ... плюс я изучаю интересные вещи в процессе)

Есть указатели?

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

Больше информации об ошибке диска:

Конечно, / var / log / messages показывает много ошибок NTFS-fs ... но я, наконец, потрудился перевести необработанное сообщение с кодом смысла, которое я обычно получаю: смысловой ключ 0x3, ASC = 0x11, ASCQ = 0x4. (который, по-видимому, переводится в НЕОБРАЗОВАННУЮ ОШИБКУ ЧТЕНИЯ - СБОЙ АВТОЗАПИСИ)

Когда диск вращается, я вижу сообщение «scsi0: * BusLogic BT-958 Initialized». Я не уверен, что именно драйвер Linux SCSI, драйвер ESXi или сам диск решает уменьшить скорость диска. Если бы это был драйвер Linux, то, возможно, я мог бы изменить драйвер, чтобы избежать его замедления. Эта целая вещь спасения сделана намного более болезненной этими spindowns, требующими цикла власти.

EDIT2:

используя сообщение журнала «end_request: ошибка ввода-вывода, dev sda, sector 7238859» сразу после того, как я 'ls' каталог, содержащий рассматриваемый файл, я настроил свою операцию ddrescue на этот сектор. В настоящее время я планирую использовать свои шансы и ЗАПИСАТЬ этот сектор обратно на живой диск, если это удастся. Возможно, я смогу медленно перестроить свой путь к рассматриваемому файлу таким образом. Тем не менее, большинство восстанавливаемых поврежденных секторов восстанавливаются менее чем за 20 попыток ... на данный момент это более 150 ... * вздох *

EDIT3:

Ошибка сектора из 'ls' в файле, который мне нужен, совершенно не помогает (1000+ попыток в одночасье и безуспешно). Я надеюсь, что это просто метаданные, когда вы делаете «лс»? :)

У меня есть большая часть ddrescue-копии, но она не монтируется (или монтируется без файлов). Поврежденный диск монтируется правильно большую часть времени ... может быть, ошибки ввода-вывода на поврежденном диске вынуждают «монтировать» обратно к работающему зеркалу?

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

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

Darron
источник
3
Первое, что нужно сделать, это сделать копию диска, используя ddrescueдругой аналогичный инструмент, чтобы скопировать как можно больше секторов. Не делайте восстановления на уровне файловой системы с поврежденного диска, делайте это из копии.
Жиль "ТАК - перестать быть злым"
1
@ Жиль, я упоминал, что использовал ddrescue. По-видимому, есть ошибки только в неподходящих местах для монтирования копии. Непонятно, на каких смещениях мне нужно сосредоточиться с помощью ddrescue, чтобы решить эту проблему ... таким образом, вопрос о чем-то вроде debugfs (или ntfsinfo, которая может работать как с разделом, по крайней мере, так же, как с обычным 'mount'). На данный момент лучше всего смотреть / var / log / messages на наличие ошибок в секторах, когда я получаю доступ к плохому диску в монтируемом только для чтения монтировании и пытаюсь восстановить его до копии, пока он не заработает.
Даррон
1
Вы активно охлаждали диск во время этого процесса? Сохранение диска как можно холоднее помогает значительно.
Натан V

Ответы:

4

Несколько заметок из моего опыта:

  1. (причина) Если вы слышите необычный звук во время попыток доступа к жесткому диску, и проблемы не возникают (более или менее) только в случайных местах на диске, то основная причина, скорее всего, находится на поверхности диска (а не в электронике) - к сожалению, грустный сценарий. Если бы это была «просто» электроника, у вас могла бы быть возможность восстановить большинство или даже все ваши данные.
  2. (плохие сектора) Если вы еще этого не сделали, поищите в Интернете загрузочный инструмент диагностики / восстановления производителя диска, загрузите его, загрузитесь, проведите глубокое тестирование и позвольте ему попытаться переназначить плохие сектора - это лучший среди бесплатных методов. Обратите внимание, что плохие сектора имеют тенденцию к росту - поэтому даже если вам удастся перехватить один кусок вашего файла после 2314-й попытки чтения, есть вероятность, что эти попытки только что вызвали рост соседних плохих секторов, эффективно уменьшая шансы на восстановление других частей. файла.
  3. (восстановление NTFS) Ничто не может исправить файловую систему NTFS, а также собственные инструменты MS Windows. Если образ NTFS не монтируется (также убедитесь, что вы пытались смонтировать раздел, а не весь диск!), Вы можете попробовать что-то вроде testdiskLinux, но если это не удастся, Windows ' chkdiskможет помочь. Если у вас установлена ​​Windows на виртуальной машине, вы можете преобразовать полученный необработанный образ ddrescueв формат, поддерживаемый этой виртуальной машиной (например, VDIили VMDK), добавить его в виртуальную машину и загрузить Windows в режиме командной строки, чтобы исправить файловую систему. Если вы используете VirtualBox, команда для преобразования такого изображения VBoxManage convertfromraw <filename> <outputfile>необязательно используется --format VDI|VMDK|VHDдля получения указанного выходного формата.
rozcietrzewiacz
источник