«

»

Nov 06

Анализ и восстановление данных с винчестера

Полетел винт. В BIOSе винчестер определяется. Но не видятся логические диски или Windows радушно предлагает их отформатировать? А данные ой как нужны. Что делать?

Подключаем его к другому компьютеру как дополнительный винчестер – вполне возможно что у вас капризничает материнка или ОС. В примерах ниже, если это не оговорено, в качестве операционной системы используется линукс. Подключаем, если это возможно, не через usb, а напрямую к материнской плате, через sata/ide  разъемы. Если есть несколько шлейфов sata/ide – попробуйте каждый – иногда проблема бывает именно в некачественном шлейфе.

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

Если винчестер внешний и подключается только через USB – подключайте его сзади системника. Если не хватает напряжения – передние usb-порты страдают от этого первыми, в такой ситуации, например, флешки, могут примонтироваться только в read-mode.

Подключили? Проблема все та же? Данные все так же нужны?

Тогда действуем прям по списку:

1. Определяем идентификатор винчестера

Для дальнейшей работы с проблемным винчестером необходимо узнать его идентификатор в системе (это название вида /dev/sd*, где * – буква a-z). Цифры после третьей буквы – номер обнаруженного раздела. Таким образом /dev/sdg – идентификатор винчестера, а /dev/sdg5 – один из его разделов. Определить идентификатор винчестера в системе можно несколькоми способами:

Если разделы винчестера корректно определяются системой – можно воспользоваться утилитой fdisk:

sudo fdisk -l|grep NTFS

/dev/sda1   *           1        1030     8271872    7  HPFS/NTFS
/dev/sda2            1030        6130    40962045    7  HPFS/NTFS
/dev/sda5            6130       91202   683336704    7  HPFS/NTFS
/dev/sdb5               1      807237  1953511424    7  HPFS/NTFS
/dev/sdd1               1      182402  1465135104    7  HPFS/NTFS

Данная команда выведет информацию по всем NTFS разделам всех жестких дисков и вам останется только выбрать диск с проблемным разделом.

Если же система не может распознать что за файловая система расположена на винчестере можно воспользоваться утилитой lshw, выводящей детальную информацию о любой железке:

lshw -C disk -short

H/W path                 Device       Class       Description
=============================================================
/0/100/1c.4/0/0.0.0      /dev/sdc     disk        320GB ST3320620A
/0/100/1f.2/0.0.0        /dev/cdrom1  disk        DVD RW AD-7260S
/0/100/1f.2/0.1.0        /dev/sda     disk        750GB WDC WD7501AALS-0
/0/100/1f.5/0.0.0        /dev/sdb     disk        2TB WDC WD20EARS-00S
/0/1/0.0.0               /dev/sdd     disk        2TB SCSI Disk
/0/2/0.0.0               /dev/sde     disk        32GB SCSI Disk

Вывод данной команды будет содержать краткую информацию по всем винчестерам, вам необходимо выбрать  идентификатор жесткого диска, данные с которого необходимо восстановить.

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

Если ничего из вышеописанного в системе нет и установить по каким-то причинам невозможно – идем “в лоб”:

cat /proc/partitions и cat /proc/mount

и сравнивая списки успешно примонтированных разделов со списком всех обнаруженных разделов – выбираем идентификатор винчестера при работе с которым возникли трудности.

Зная идентификатор винчестера – мы можем его продиагностировать – какого рода болезнь его одолела – софтверного или хардверного толку.

2. Проверяем винчестер на bad-blocks

Во всех примерах ниже, используемый идентификатор жесткого диска – /dev/sda необходимо заменить на идентификатор вашего винчестера, полученный на предыдущем этапе. Учтите – все подробные проверки могут выполняться долго, конкретное время зависит от объема вашего жесткого диска, оставлять его на ночь – обычная практика и то, не все проверки успевают завершиться.

1) с помощью утилиты badblocks пакета e2fsprogs:

badblocks -nvs /dev/sda

или использовать флаг -e 1 – тогда программа закончить проверку при первом же найденном поврежденном секторе. Проверка осуществляется независимо от SMART. Важно указать флаг -n – в таком случае проверка будет производиться в “мягком” режиме не разрушая данные. флаги -s и -v служат для подробного отображения хода проверки.

2) С помощью утилит пакета smartmontools. Применима только для устройств поддерживающих SMART – т. е. для подавляющего большинства современных жестких дисков.

Быстрая проверка:

smartctl -H /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

К сожалению даже благополучный диагноз PASSED еще не значит, что винчестер механически здоров, потому проверим, были ли ошибки во время работы:

smartctl -l error /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
No Errors Logged

Показать общую информацию о жестком диске:

smartctl –all /dev/sda

Атрибуты SMART на которые необходимо обратить внимание. Чем меньше их значение (столбец RAW_VALUE) – тем лучше здоровье нашего винчестера.

Raw Read Error Rate – частота аппаратных ошибок при чтении данных с диска.
Spin Up Time – время раскрутки пакета дисков из состояния покоя до рабочей скорости.
Spin Up Retry Count – число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка провалилась.
Seek Error Rate – частота ошибок при позиционировании блока головок.
Reallocated Sector Count – число операций переназначения секторов.
Reallocated Event Count – число операций переназначения
Current Pending Sector – число подозрительных секторов, кандидатов на переназначение.

В частности, если при выполнении команды

sudo smartctl -a /dev/sda|grep -i reallocated
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       –       0

последняя цифра не равна нулю – у нас на лицо проблемы аппаратного характера.

Перед тем как провести детальное тестирование, полезно знать сколько оно будет продолжаться:

smartctl -c /dev/sda

Вывод будет длинный. Важные для нас строчки:

Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 185) minutes.

Если smartctl не выводит нужную нам информацию и не запускает проверки – проверьте – быть может именно у вас тот винчестер что не поддерживате SMART? Проверьте, что в выводе команды smartctl -c /dev/sda в разделе “Offline data collection capabilities” есть отметка о “Self-test supported” – это подтверждает, что проверяемый винчестер поддерживает SMART. Если smartctl не понимает какой у вас винчестер можно ей помочь указав через флаг -d (–device=) его тип. Наиболее распространенные: ata/scsi/sat, полный список в man smartctl.

Запуск краткого тестирования:
smartctl -t short /dev/sda
Запуск подробного тестирования:
smartctl -t long /dev/sda
Вывод результатов тестирования:
smartctl -l selftest /dev/sda

Вот там разобраны некоторые интересные моменты по смарт-технологии:
http://sourceforge.net/apps/trac/smartmontools/wiki/FAQ

3) Программы сканирующие жесткий диск на наличие bad-блоков для Windows:
MHDD, Victoria, Vivard

3.1 Если на винчестере не обнаружено bad-секторов, но файловая система повреждена и ее необходимо восстановить.

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

Если данные очень-очень важны – настоятельно рекомендуется сделать копию диска и работать с ней. Как это сделать описано в следующем разделе. Все что указано ниже – используется на оригинальном накопителе.

1) для NTFS-разделов запустить из под Windows

chkdsk /f DRIVE-LETTER: (chkdsk /f C:)

/f  – этот флаг указывает, что необходимо исправлять ошибки на жестком диске
DRIVE-LETTER – буква диска

2) Под линуксом для NTFS разделов есть утилита ntfsfix из пакета ntfsprogs. Запускать как:

ntfsfix /dev/sda

По моему опыту – родная проверка из под Windows в большинстве случаев оказывается более эффективной.

3) Под линуксом, если файловая система линукс-специфичная, можно попробовать запустить e2fsck с флагом -c (или -cc) будет проведена проверка всего диска. Все найденные поврежденные сектора будут занесены в специальный список и не будут доступны для работы.

4) Под линуксом для других типов разделов необходимо использовать утилиту fsck. Она самостоятельно пробует определить тип файловой системы и соответствующим образом проводит проверку и восстановление структуры файловой системы.

5) Если все вышеописанное не помогло – обратимся к тяжелой “артелерии” – утилите testdisk:

  1. Запускаете програму testdisk (testdisk.exe под Windows)
  2. Выбираете создать новый лог-файл (при перезапуске выбирайте пункт “Добавлять к существующему”, это позволит возобновлять остановленные проверки не с начала)
  3. Выбираете диск для анализа
  4. Выбираете тип раздела (для обычных бытовых винчестеров скорее всего обычный Intel)
  5. Выбираем первый пункт – Analyse
  6. Далее вам будем отображена текущая разметка диска – если вас не устраивает, что вы видете – выбирайте пункт “quick search” при выборе которого запускается быстрая проверка винчестера на предмет поврежденных разделов
  7. Как правило быстрый поиск ничего не дает и приходится прибегать к deeper search, который занимает существенно больше времени однако, если на винчестере нет механических повреждений способен эффективно восстанавливать структуру файловой системы.
  8. После завершения поиска полезно проверить содержимое разделов – нажимаем кнопку P и изучаем список обнаруженных на разделе файлов.
  9. Если результаты нас устраивают – найденным разделам, которые нам нужны, с помощью стрелок “влево-вправо”, необходимо присвоить соответствующий статус. L – логический, * – загрузочный и т.д. Некорректные разделы – помечаем как D – deleted – удаленные.
  10. Важно после этого записать все изменения разметки диска – выбираем пункт write
  11. Перезагружаемся
  12. Если же результаты нас не устраивают – придется вручную указывать характеристики диска – число цилиндров, тип файловой системы и после этого вновь запускать глубокий поиск.

В том случае, если NTFS раздел не определяется после восстановления структуры с помощьюtestdisk, необходимо, после перезагрузки в Windows, запустить “родную”  проверку диска – chkdsk.

Вот там прекрасное описание (на английскомй) со скриншотами: http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

Платные утилиты:
Acronis Disk Director, Active Partition Recovery

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

Для восстановления данных из разделов мы можем использовать следующие утилиты:

Photorec, foremostscalpel, scrounge-ntfs – детальное описание в разделе 5: Как восстановить данные с жесткого диска или образа диска применительно к созданному образу винчестера. Для восстановления данных непосредственно с устройства, порядок действий тот же, просто вместо файла содержащего побайтовую копию накопителя, необходимо указывать идентификатор устройства.

под Windows:
Recuva

Платные:
Get data back, R-studio

4. Что делать если на винчестере обнаружены bad-блоки?

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

Копируем жесткий диск:

1 вариант – с помощью dd:

dd if=/dev/sdg of=/dev/sda bs=8K conv=noerror,sync

/dev/sdg – ЧТО будем зеркалить
/dev/sda – КУДА будем зеркалить
bs=8K – указываем размер блоков данных для считывания/записи.
noerror  – флаг указывает что не смотря на ошибки копирование должно быть завершено
sync – флаг указывает, что в проблемные блоки можно понавтыкать нулей, чтоб не возникло смещений на приемнике.

2-ой вариант – делать копию диска с помощью ddrescue. Данная утилита корректно обрабатывает аппаратные ошибки чтения, способна производить реверсивное копирование и может быть гибко настроена с помощью соответствующих ключей. Для копирования диска с механическими повреждениями рекомендуется использовать именно ее – так как многие проверки в ней активизированы по умолчанию и вам нет нужды, заслышав пощелкивание головок, перезапускать реверсивное копирование или явно указывать о необходимости пропустить участок с ошибками.

В общем случае, достаточно такой последовательности команд:

Копируем свободные от ошибок блоки данных:

ddrescue –no-split /dev/sdg /path/to/image-file/image-file /path/to/log-file/log-file

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

ddrescue –direct –max-retries=3 /dev/sdg /path/to/image-file/image-file /path/to/log-file/log-file
ddrescue –direct –retrim –max-retries=3 /dev/sdg /path/to/image-file/image-file /path/to/log-file/log-file

–no-split – указываем заполнять не считанные области нулями (в расчет на то, что при последующей попытке удастся часть данных считать)
–max-retries – максимальное число попыток считывания
–direct -считываем напрямую с устройства, не используя данные считанные на предыдущих этапах из кеша
–retrim – помечаем все битые блоки

Там достаточно подробно описаны детали использования утилиты ddrescue в зависимости от ядра линукс системы, которые вы используете: http://www.forensicswiki.org/wiki/Ddrescue

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

5. Как восстановить данные с жесткого диска или образа диска.

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

Итак, у нас есть:

/user/home/badhdd.img – копия винчестера, которую мы побайтово считали на предыдущем (линк) этапе (можно использовать и идентификатор проблемного жесткого диска – /dev/sdw).
/dev/sdz – чистый диск, на который мы будем записывать всю информацию найденную на копии жесткого диска.

Очищаем диск-приемник:

dd if=/dev/zero of=/dev/sdz bs=8K (аккуратней – эта команда удаляет ВСЕ данные на вашем винчестере)

Теперь пришла пора искать данные:

1). Используя утилиту foremost – мощный инструмент для поиска скрытых данных на шифрованных разделах. Общий формат команды:

sudo foremost -i (address of corrupted hard drive) -o (address of external drive) -T -v

в нашем случае будет:

sudo foremost -i /user/home/badhdd.img -o /dev/sdz -T -v

-T – временная метка будет добавлена к имени выходного каталога, что исключает возможность перезатирания восстановленных данных при повторном перезапуске
-v – verbose mode –  при работе будет выводиться подробная информация

Можно указать искать файлы определенного типа (флаг -t), указать искать заголовки файлов, пропустив заданное число блоков в начале устройства (флаг -s), для ускорения процесса можно указать флаг -k размер блока данных считываемый в память. Перед началом анализа полезно запускать foremost с флагом -w – будет выведен список обнаруженных файлов, которые foremost может попытаться восстановить.

2) scalpel – аналог foremost, ориентированный на слабые машины.

3) Программа photorec, ее интерфейс очень похож на testdisk:

  1. Запускаем photorec (photorec.exe под windows)
  2. Выбираем интересующий нас диск
  3. Выбираем тип раздела (в большинстве случаев, для бытовых винчестеров – Intel)
  4. Выбираем раздел диска в котором хотим искать данные
  5. В разделе FileOpt мы можем выбрать какие типы файлов мы хотим восстанавливать
  6. Далее мы выбираем в какой файловой системе на выбранном ранее разделе хранятся наши данные
  7. Выбираем где искать данные – во всем разделе или только в области помеченной как нераспределенная
  8. Наконец выбираем куда сохранять найденные данные

Подробное описание со скриншотами на английском – там – http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step

Photorec может быть запущена для анализа образа диска как:

photorec /path/to/my-image/image.dd

6. Ссылки по теме восстановление данных с винчестера

Список утилит для восстановления данных – http://www.forensicswiki.org/wiki/Tools:Data_Recovery

Подробная статья про восстановление данных используя Ubuntu:  https://help.ubuntu.com/community/DataRecovery

Неплохие статьи про восстановление информации:

http://www.howtogeek.com/howto/15761/recover-data-like-a-forensics-expert-using-an-ubuntu-live-cd/

http://geekyprojects.com/storage/how-to-recover-data-even-when-hard-drive-is-damaged/

Здесь подробно расписано про восстановление данных с файловых систем ext2/ext3/ReiserFS: http://smartmontools.sourceforge.net/badblockhowto.html

Любопытный пример описания того, как извлечь скрытые данные с помощью foremosthttp://mydebianblog.blogspot.com/2007/01/1-foremost.html

В интернетах бродят сборки всяческих средств для восстанавления данных – можно искать по этим словам:
alkid live cd
rescue cd – http://www.sysresccd.org/Main_Page

Записки ремонтника:

http://nnm.ru/blogs/X-Hunter777/zapiski-remontnika-iz-rabochego-zhurnala/
http://nnm.ru/blogs/X-Hunter777/zapiski-remontnika-iz-rabochego-zhurnala-chast-2/

15 comments

4 pings

Skip to comment form

  1. Tamisha

    The information on this site is useful.

  2. Family Vacation Ideas

    Amazing article. I desire you up-to-date your blog significantly more often, I just cannot seem to be to acquire adequate of your blog. I preserved your blog in my bookmarks. Would it be feasible to do a guest post sometime?…

  3. Tony Digrande

    Hi! I’ve just stopped by to thank you for this great review. Take care!

  4. Avery Zinn

    Thank you for this information and for your website on the whole. I’ve just subscribed to it.

  5. Jaxon

    What a great reourcse this text is.

  6. Algarve Golf Hotels

    You made a few nice points there. I did a search on the topic and found the majority of people will go along with with your blog.

  7. financial advice

    I really appreciate your post and you explain each and every point very well.Thanks for sharing this information.And I’ll love to read your next post too.

  8. Android Phones

    Nice post. I went through the post I found it very informative and useful. Thanks for sharing.

  9. Hot jobs

    Magnificent! (As usual. 😛 )
    Welcome to my blog Career advice 😉

  10. Shawn

    Thanks for the article!

    1. Ganesh

      That’s a brilliant anwesr to an interesting question

  11. Willian Ball

    I like this web site it’s a master piece! Glad I noticed this on google.

  12. source

    Re: Whoever produced the comment that this was an excellent site really needs to get their head reviewed.

  13. source

    I experimented with viewing your website on my mobile phone and the design doesnt seem to be correct. Might wanna check it out on WAP as well as it seems most smartphone layouts are not working with your web page.

  14. Debora

    awesome blog to read…love to read it, thanks for all.http://www.dedetizador.com

  1. Kelly Arves

    Visitor recommendations…

    […]one of our visitors recently recommended the following website[…]……

  2. Lori Girl

    Tumblr article…

    I saw someone talking about this on Tumblr and it linked to…

  3. Legal Steroids

    Wow!…

    A very awesome post….

  4. Sober Escort

    Wow!…

    A very awesome post….

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>