Восстановление данных со сбойного накопителя и копирование в образ

Материал из ALT Linux Wiki

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

Восстановление данных со сбойного накопителя

Для наилучшего результата, лучше восстановить данные в образ в несколько проходов:

1.При первом проходе копируется как можно больше данных, без "проблемных" секторов:

ddrescue --no-split /dev/sda1 imagefile logfile

2.Теперь переходим к raw-диску. С помощью следующей команды утилита с повторными попытками попробует восстановить информацию из "проблемных секторов", которые мы пропустили в прошлом шаге:

modprobe raw
raw /dev/raw/raw1 /dev/sda1
ddrescue --max-retries=3 --complete-only /dev/raw/raw1 imagefile logfile 

3.Если это не удается, вы можете попробовать еще раз (все еще используя raw), повторно попытаться считать целые сектора:

ddrescue --retrim --max-retries=3 --complete-only /dev/raw/raw1 imagefile logfile 

Теперь вы можете использовать ddrescue (или обычный dd) для копирования образа в новый раздел на новом диске. Используйте соответствующую утилиту для проверки файловой системы (fsck, CHKDSK), чтобы попытаться исправить ошибки, вызванные битыми блоками. Обязательно сохраните файл образа. На всякий случай, если файловая система сильно испорчена, то для оригинального образа необходимо использовать datacarving-утилиты, например, testdisk.

4.По окончании восстановления вы можете отключить raw-диск:

raw /dev/raw/raw1 0 0

Примеры использования

Восстановление ext2-раздела

с /dev/sda2 в /dev/sdb2

Обратите внимание: следующая команда перезапишет на разделе /dev/sdb2. Если вы не хотите этого делать, создайте образ восстанавливаемого раздела.

# ddrescue -r3 /dev/sda2 /dev/sdb2 logfile
# e2fsck -v -f /dev/sdb2
# mount -t ext2 -o ro /dev/sdb2 /mnt

Копирование диска в образ

с /dev/sda2 в образ

# ddrescue -r3 /dev/sda2 image logfile

Полное восстановление жесткого диска

с /dev/sda на /dev/sdb

1. Сначала скопируйте области с ошибками...

# ddrescue -n /dev/sda /dev/sdb rescue.log

2. ...а затем, попытайтесь восстановить поврежденные сектора

# ddrescue -r 1 /dev/sda /dev/sdb rescue.log

Источники: forensicswiki.org