Недавно я получил невыносимо небольшое, но довольно важное повреждение жесткого диска на хосте 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: **
Я сдался, ожидая дальнейших предложений. Я удалил диск и восстановил коробку. Я позабочусь о том, чтобы что-то случилось.
источник
ddrescue
другой аналогичный инструмент, чтобы скопировать как можно больше секторов. Не делайте восстановления на уровне файловой системы с поврежденного диска, делайте это из копии.Ответы:
Несколько заметок из моего опыта:
testdisk
Linux, но если это не удастся, Windows 'chkdisk
может помочь. Если у вас установлена Windows на виртуальной машине, вы можете преобразовать полученный необработанный образddrescue
в формат, поддерживаемый этой виртуальной машиной (например,VDI
илиVMDK
), добавить его в виртуальную машину и загрузить Windows в режиме командной строки, чтобы исправить файловую систему. Если вы используете VirtualBox, команда для преобразования такого изображенияVBoxManage convertfromraw <filename> <outputfile>
необязательно используется--format VDI|VMDK|VHD
для получения указанного выходного формата.источник
Это может относиться или не относиться к вашему случаю, но одной из крайних мер является «уловка замораживания». См. Восстановление данных с поврежденного жесткого диска: «уловка замораживания» для обсуждения метода.
источник