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

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

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

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

1) Я использовал ddrescue (УДИВИТЕЛЬНЫЙ инструмент) в загрузочном ISO Parted Magic для восстановления 99,98% диска виртуальной машины, о котором идет речь. К сожалению, ошибки, похоже, почти полностью связаны с НЕДАВНИМИ записями файлов... так что, конечно, это именно те сектора, которые мне нужно восстановить больше всего.

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

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

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

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

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

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

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

Есть какие-нибудь указания?

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

Дополнительная информация об ошибках привода:

В /var/log/messages, конечно, отображается множество ошибок NTFS-fs... но я, наконец, удосужился расшифровать необработанное сообщение о чувственном коде, которое я обычно получаю: sense key 0x3, ASC=0x11, ASCQ=0x4. (которое, похоже, расшифровывается как UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED).

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

ПРАВКА2:

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

РЕДАКТИРОВАНИЕ3:

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

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

** ПРАВКА4:**

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

решение1

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

  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получения указанного выходного формата.

решение2

Это может быть применимо или не применимо к вашему случаю, но последняя мера — это «трюк с заморозкой». СмотритеВосстановление данных с поврежденного жесткого диска: «трюк с заморозкой»для обсуждения метода.

Связанный контент