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

Материал из ALT Linux Wiki
(Это не работает)
 
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''ddrescue''' - инструмент для восстановления данных, копирующий данные из одного файла или блочного устройства (жесткий диск, CD-ROM и т. д.) в другой, пытаясь спасти данные в случае ошибок чтения.
'''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


==Примеры использования==
==Примеры использования==
Строка 26: Строка 5:


====с /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.log
# e2fsck -v -f /dev/sdb2
# e2fsck -v -f /dev/sdb2
# mount -t ext2 -o ro /dev/sdb2 /mnt</pre>
# mount -t ext2 -o ro /dev/sdb2 /mnt</pre>
Строка 34: Строка 13:
====с /dev/sda2 в образ====
====с /dev/sda2 в образ====
<pre>
<pre>
# ddrescue -r3 /dev/sda2 image logfile
# ddrescue -r3 /dev/sda2 image.img logfile.log
</pre>
</pre>


Строка 40: Строка 19:
====из образа в /dev/sda1====
====из образа в /dev/sda1====
<pre>
<pre>
# ddrescue -f image /dev/sda1 logfile
# ddrescue -f image.img /dev/sda1 logfile.log
</pre>
</pre>


Строка 49: Строка 28:
2. ...а затем, попытайтесь восстановить поврежденные сектора
2. ...а затем, попытайтесь восстановить поврежденные сектора
  # ddrescue -r 1 /dev/sda /dev/sdb rescue.log
  # ddrescue -r 1 /dev/sda /dev/sdb rescue.log
==Монтирование образа==
Если вы не хотите восстанавливать файлы путем записывания содержимого образа на жесткий диск, то вы можете просто смонтировать img-образ.
# mkdir /mnt/disk
# mount -o loop image.img /mnt/disk


==Параметры==
==Параметры==
Строка 100: Строка 84:
*Считывать данные, желательно, указывая параметр <nowiki>--block-size=<bytes></nowiki> (У старых дисков 512, у новых ("advanced format") 4096). '''Проверьте!''' Если блок будет меньше, то скорость чтения будет медленнее; если больше - возможна потеря данных.[http://www.opennet.ru/tips/3054_disk_bad_sector_ddrescue.shtml]
*Считывать данные, желательно, указывая параметр <nowiki>--block-size=<bytes></nowiki> (У старых дисков 512, у новых ("advanced format") 4096). '''Проверьте!''' Если блок будет меньше, то скорость чтения будет медленнее; если больше - возможна потеря данных.[http://www.opennet.ru/tips/3054_disk_bad_sector_ddrescue.shtml]


Источники: [http://forensicswiki.org/wiki/Ddrescue forensicswiki.org], [http://www.opennet.ru/tips/3054_disk_bad_sector_ddrescue.shtml Форум opennet.ru]
Источники: [http://forensicswiki.org/wiki/Ddrescue forensicswiki.org], [http://www.opennet.ru/tips/3054_disk_bad_sector_ddrescue.shtml Форум opennet.ru], [http://superuser.com/questions/1070015/how-to-ddrescue-from-an-image superuser.com], [https://habrahabr.ru/post/233961/ habrahabr.ru]
{{Category navigation|title=Помощь по ALT Linux Rescue|category=Rescue manuals|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Помощь по ALT Linux Rescue|category=Rescue manuals|sortkey={{SUBPAGENAME}}}}
[[Category:Rescue manuals]]
[[Category:Rescue manuals]]
[[Категория:Неоконченные страницы]]
[[Категория:Неоконченные страницы]]

Текущая версия от 13:17, 14 июля 2019

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

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

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

с /dev/sda2 в /dev/sdb2

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

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

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

с /dev/sda2 в образ

# ddrescue -r3 /dev/sda2 image.img logfile.log

Восстановление из образа

из образа в /dev/sda1

# ddrescue -f image.img /dev/sda1 logfile.log

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

с /dev/sda на /dev/sdb

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

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

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

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

Монтирование образа

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

# mkdir /mnt/disk
# mount -o loop image.img /mnt/disk

Параметры

-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, habrahabr.ru