# Восстановление с поврежденных жестких дисков.

### From CGSecurity

english version deutsche Version versión español version française Русская версия

Плохие сектора являются наиболее распространенной формой физического повреждения жесткого диска... Они - первый сигнал о поломке диска, с течением времени их количество будет только увеличиваться. Плохие сектора - это сектора диска, информация в которые не может быть записана или прочтена из-за физического повреждения или несоответствия контрольного бита (CRC or Cyclic Redundancy error). Лучший метод восстановления ваших данных в данной ситуации - это копирование на другой жесткий диск прежде, чем пытаться восстанавливать данные. Новый диск должен быть, по крайней мере, точно такого же размера (проверять количество LBA секторов) или больше. Когда больше, это не проблема, поскольку число головок на цилиндр и секторов на головку будет таким же, если оба диска в режиме LBA. Windows может иметь некоторые проблемы в работе с плохими секторами на поврежденных жестких дисках, так что лучшее решение - использование Linux-а для копирования данных на другой жесткий диск.

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

## Загрузка Knoppix-а, Linux LiveCD

Если у вас нет установленного Linux-a, загрузите Knoppix LiveCD , это бесплатный загрузочный компактдиск с полнофункциональным Linux-ом, который работает только в памяти!

- запишите .iso файл на CD
- Загрузитесь с CD-ROMа
- При загрузке, введите `knoppix lang=us` для английской раскладки клавиатуры/языка.
- Вы автоматически залогинитесь в пользовательскую консоль.
- Запустите консоль/терминал
  (внимание: Knoppix имеет отдельную выбор 'консоль для root', но функция копирования/вставки тогда будет не доступна, поэтому мы рекомендуем использовать метод, описанный ниже для получения привилегий суперпользователя от обычного пользователя консоли.)

Knoppix включает в себя TestDisk, PhotoRec, dd и dd_rescue. Для доступа к жестким дискам, Вам необходимо запустить эти утилиты от root'овских (администраторских) привилегий.

- Что бы стать суперпользователем в Knoppix, выберите Konsole и напечатайте `sudo -s`, а затем нажмите клавишу ВВОД.
- Теперь вы можете использовать все команды root'a, нужные для полного доступа к диску с консоли.

Вниманию пользователей Knoppix версии 4.0.2 CD:
Для использования TestDisk в Knoppix 4.0.2, вам необходимо решить проблемы с библиотеками:

    ln -s /usr/lib/libntfs.so.7 /usr/lib/libntfs.so.5

и сделать это требуется перед запуском.

Вниманию пользователей Knoppix версии 5.1 CD:
Для использования TestDisk в Knoppix 5.1, вам необходимо решить проблемы с библиотеками:

    ln -s /usr/lib/libntfs.so.10.0.0 /usr/lib/libntfs.so.9

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

## Идентификация HDD-устройств

### Идентификация HDD-устройств в Linux

Под Linux, Примари Мастер IDE диск будет /dev/hda
Примари Слейв IDE диск будет /dev/hdb
Секондари Мастер IDE диск будет /dev/hdc и так далее.
SATA жесткий диск будет /dev/hde или /dev/sda
SCSI жесткие диски называются /dev/sda
USB устройства часто используют названия SCSI-устройств: /dev/sda и так далее.

Что бы узнать перечень разделов на жестких дисках, как root, запустите команду: fdisk -l device.
Где "device" - это /dev/sda или /dev/hda

### Идентификация HDD-устройств в Mac OS X

Для идентификации дисков/разделов:

- Запустите программу Terminal, найдите папку `/Applications/Utilities`.
- Напечатайте `diskutil list` в терминале

Существуют два типа устройств:

- raw devices `/dev/rdisk*`, ?прямое подключение диска?.
- buffered devices `/dev/disk*`, данные проходят через буфер.

При использовании dd или других программ дублирования, всегда используйте raw-устройства.

В Mac OS X, разделы называются "slices". Например, тома в GPT формате, как правило, s2, т.е. `rdisk4s2`.

## Дубликатирование дисков

После проверки имен устройств поврежденного диска начинаем копировать свои данные. В командном шелле (CLI) или терминальной консоли.

### Классический метод использования 'dd'

dd - очень мощная и может быть использована для записи с дисков в файлы и файлов на разделы или тома.

- Для копирования дисков от root'a, запустите:

    dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync

`conv=noerror,sync` используется для дисков с плохими блоками, что бы заменить поврежденные блоки нулями и продолжить копирование.

- Для копирования диска в файл образа:

    dd if=/dev/old_disk of=image_file conv=noerror

Пользователи Mac OS X, Ubuntu или других линуксов, всегда должны пользовать `sudo` или `su`, а так же вводить пароль рута, перед использованием dd.

Будьте осторожны, если вы копируете диск, получатель должен так же быть диском, а не разделом. Если вы копируете раздел, то диск-получатель раздела должен быть достаточно большим. Рекомендуется производить копирование всего диска целиком.

По умолчанию размер блока для dd - это 1 блок (512 bytes), команда bs= используется для увеличения размера блока. Для чтения-записи диска по 16 секторов используйте:

- `bs=8192`
- `bs=8k`

Например:

- Для копирования примари IDE-диска на секондари по 64 блока:

     sudo dd bs=131072 if=/dev/hda /dev/hdb conv=noerror,sync

- Для копирования всего диска (disk0) на другой диск (disk1) блоками по 64k и заменой плохих блоков нулями:

     sudo dd bs=131072 if=/dev/rdisk0 of=/diskcopy conv=noerror,sync

- Для копирования тома диска0 (всего раздела) на другой раздел диска1:

     sudo dd bs=131072 if=/dev/rdisk0s2 of=/dev/rdisk1s2 conv=noerror,sync

- Для копирования диска или раздела в файл-образ, с точным полным путём или файл будет создан в текущей директории или в директории по умолчанию:

     sudo dd bs=131072 if=/dev/rdisk0s2 /home/john/rdisk0s2.dd conv=noerror

### Kurt Garloff's 'dd_rescue'

Если поврежденных секторов на жестком диске очень много, вы можете попробовать использовать dd_rescue' (dd_rescue) вместо dd.

### Лучший метод: Antonio Diaz's GNU 'ddrescue'

Наилучшее решение, быстрее и эффективнее Antonio Diaz's 'ddrescue'(ddrescue)

    # выкачать ddrescue
    wget http://download.savannah.gnu.org/releases/ddrescue/ddrescue-1.8.tar.bz2
    # распаковать файлы исходных кодов
    tar xjf ddrescue-1.8.tar.bz2
    # скомпилировать ddrescue
    cd ddrescue-1.8
    ./configure && make
    # Сначала следует постараться скопировать свободные от ошибок области диска:
    ./ddrescue -n /dev/old_disk /dev/new_disk rescued.log
    # Затем следует попытаться восстановить наиболее важные области, на сколько это возможно:
    ./ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.log

## Раннее обнаружение плохих секторов

Современные жесткие диски могут обнаружить физические проблемы с помощью SMART Monitoring.

Вернуться TestDisk

Category: Data Recovery