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

Материал из ALT Linux Wiki
Строка 26: Строка 26:


====с /dev/sda2 в /dev/sdb2====
====с /dev/sda2 в /dev/sdb2====
'''Обратите внимание:''' следующая команда ''перезапишет'' на разделе /dev/sdb2. Если вы не хотите этого делать, создайте образ восстанавливаемого раздела.
'''Обратите внимание:''' следующая команда ''перезапишет'' все данные на разделе /dev/sdb2. Если вы не хотите этого делать, создайте образ восстанавливаемого раздела.
<pre># ddrescue -r3 /dev/sda2 /dev/sdb2 logfile
<pre># ddrescue -r3 /dev/sda2 /dev/sdb2 logfile
# e2fsck -v -f /dev/sdb2
# e2fsck -v -f /dev/sdb2

Версия от 09:57, 6 марта 2018

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

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

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

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

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

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

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/sda1

# ddrescue -f image /dev/sda1 logfile

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

с /dev/sda на /dev/sdb

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

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

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

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

Параметры

-h, --help
   отобразить справку
-V, --version
   отобразить информацию о версии
-b, --block-size=<bytes>
   hardware block size of input device [512] 
-B, --binary-prefixes
   show binary multipliers in numbers [default SI] 
-c, --cluster-size=<blocks>
   hardware blocks to copy at a time [128] 
-C, --complete-only
   do not read new data beyond logfile limits 
-d, --direct
   use direct disc access for input file 
-D, --synchronous
   use synchronous writes for output file 
-e, --max-errors=<n>
   maximum number of error areas allowed 
-F, --fill=<types>
   fill given type areas with infile data (?*/-+) 
-g, --generate-logfile
   generate approximate logfile from partial copy 
-i, --input-position=<pos>
   starting position in input file [0] 
-n, --no-split
   do not try to split or retry error areas 
-o, --output-position=<pos>
   starting position in output file [ipos] 
-q, --quiet
   quiet operation 
-r, --max-retries=<n>
   exit after given retries (-1=infinity) [0] 
-R, --retrim
   mark all error areas as non-trimmed 
-s, --max-size=<bytes>
   maximum size of data to be copied 
-S, --sparse
   use sparse writes for output file 
-t, --truncate
   truncate output file 
-v, --verbose
   verbose operation

За числами могут следовать значения: b = blocks, k = kB = 10^3 = 1000, Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc...

Советы

  • Считывать данные, желательно, указывая параметр --block-size=<bytes> (У старых дисков 512, у новых ("advanced format") 4096). Проверьте! Если блок будет меньше, то скорость чтения будет медленнее; если больше - возможна потеря данных.[1]

Источники: forensicswiki.org, Форум opennet.ru, superuser.com