baltun
Администратор
		- Сообщения
- 12.854
- Реакции
- 3.250
- Баллы
- 1.833
Алгоритм работы GNU ddrescue таков:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Команда на создание образа и лога.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Если носитель сильно поврежден делаем в 2 проходы снятие образа.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Итог по завершению работы.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
		
			
	
	
	
		
			
	
				
			- Если нужно, считывается журнал, где описано состояние предыдущего прерванного сеанса работы, либо прежних попыток восстановления различных участков файла.
- До указанного места, либо до прерывания пользователем считываются неповрежденные участки входного файла.
- Делается попытка прочитать поврежденные участки. Поврежденные участки разбиваются на более маленькие, из них считываются уцелевшие фрагменты; и так пока не будет достигнут физический размер блока устройства, либо работу не прервет пользователь.
- Поврежденные блоки считываются в указанное число попыток, либо до прерывания работы.
- Если нужно для последующего вызова, записывается журнал работы.
			
				Код:
			
		
		
		yum install ddrescueКоманда на создание образа и лога.
			
				Код:
			
		
		
		ddrescue /dev/sde /media/Hard/backup/server.img /media/Hard/backup/server.img.logЕсли носитель сильно поврежден делаем в 2 проходы снятие образа.
			
				Код:
			
		
		
		Первый проход
ddrescue --no-split --verbose /dev/sde /media/Hard500/backup/server.img /media/Hard500/backup/server.img.log
Второй проход
ddrescue --direct --max-retries=2 --verbose /dev/sde /media/Hard500/backup/server.img /media/Hard500/backup/server.img.log
В этом режиме очень сильно падает скорость, но восстанавливается то, что предыдущие два прохода не смогли
ddrescue --retrim --max-retries=2 --verbose /dev/sde /media/Hard500/backup/server.img /media/Hard500/backup/server.img.logИтог по завершению работы.
			
				Код:
			
		
		
		Press Ctrl-C to interrupt
        Initial status (read from logfile)
        rescued:         0 B,  errsize:       0 B,  errors:       0
        Current status
        rescued:   101763 kB,  errsize:       0 B,  current rate:    3801 kB/s
           ipos:   101711 kB,   errors:       0,    average rate:    2702 kB/s
           opos:   101711 kB-A или --try-again
Не углубляясь в нюансы работы ddrescure, можно пометить все ошибочные области, как области, которые еще не читались. Рекомендуется использовать опцию, если диск перестает отвечать.
-d или --idirect
При указании данной опции, ddrescure использует прямой доступ к диску, обходя кэши ядра.
-i bytes или --input-position=bytes
Ключ задает откуда (с какого bytes) начинать чтение с infile. По умолчанию установлен в ноль.
-m file или --domain-mapfile=file
Ограничить размер восстанавливаемого раздела последним блоком, обозначенным в логфайле. Используется для слияния образов восстановления. Например, если диск outfile сломался во время восстановления.
-n или --no-scrape
Пропускает т.н. фазу scrape. Уменьшает время восстановления, т.к. снижает время на попытки чтения самых трудных частей файла.
-r n или --retry-passes=n
Задает количество повторных попыток чтения поврежденных областей. По умолчанию - 0. -1 подразумевает, что количество попыток бесконечное. Каждый битый сектор читается один раз, пи этом перечитывается 0 раз по умолчанию, или то количество раз, которое заданно в текущей опции.
-R или --reverse
Обратная последовательность выполнения каждой фазы восстановления. То есть ddrescure читает данные в обратной последовательности.
-f или --force
Заставить ddrescure перезаписать диск outfile. Необходим, когда в качестве outfile используется устройство. Используется для защиты от ошибочного повреждения данных.
-v или --verbose
Verbose mode, он же подробный режим. Можно указать несколько -v (до 4х), что увеличит детальность вывода.
		Не углубляясь в нюансы работы ddrescure, можно пометить все ошибочные области, как области, которые еще не читались. Рекомендуется использовать опцию, если диск перестает отвечать.
-d или --idirect
При указании данной опции, ddrescure использует прямой доступ к диску, обходя кэши ядра.
-i bytes или --input-position=bytes
Ключ задает откуда (с какого bytes) начинать чтение с infile. По умолчанию установлен в ноль.
-m file или --domain-mapfile=file
Ограничить размер восстанавливаемого раздела последним блоком, обозначенным в логфайле. Используется для слияния образов восстановления. Например, если диск outfile сломался во время восстановления.
-n или --no-scrape
Пропускает т.н. фазу scrape. Уменьшает время восстановления, т.к. снижает время на попытки чтения самых трудных частей файла.
-r n или --retry-passes=n
Задает количество повторных попыток чтения поврежденных областей. По умолчанию - 0. -1 подразумевает, что количество попыток бесконечное. Каждый битый сектор читается один раз, пи этом перечитывается 0 раз по умолчанию, или то количество раз, которое заданно в текущей опции.
-R или --reverse
Обратная последовательность выполнения каждой фазы восстановления. То есть ddrescure читает данные в обратной последовательности.
-f или --force
Заставить ddrescure перезаписать диск outfile. Необходим, когда в качестве outfile используется устройство. Используется для защиты от ошибочного повреждения данных.
-v или --verbose
Verbose mode, он же подробный режим. Можно указать несколько -v (до 4х), что увеличит детальность вывода.
Пример 1: Восстановление целого диска с несколькими разделами ext3 (или любыми другими, хоть NTFS) с /dev/hda на /dev/hdb.
Примечание: Нет необходимости создавать таблицу разделов на /dev/hdb, т.к. данные копируются побайтово вместе со структурой разделов.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Пример 2: Восстановление одного раздела с /dev/hda2 на /dev/hdb2.
Примечание: результирующий раздел должен существовать с тем же типом и размером, что и исходный, либо должен быть создан.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Пример 3:Во время восстановления целого диска /dev/hda на /dev/hdb, /dev/hda остановился и перестал отвечать на позиции 12345678.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Пример 4:Во время восстановления целого диска /dev/hda на /dev/hdb, /dev/hdb выдал ошибку и мы пытаемся восстановить данные на третий диск /dev/hdc
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Пример 5:Во время восстановления целого диска /dev/hda на /dev/hdb, /dev/hda перестал отвечать, стал недоступен и невидим в /dev
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		Примечание: Нет необходимости создавать таблицу разделов на /dev/hdb, т.к. данные копируются побайтово вместе со структурой разделов.
			
				Код:
			
		
		
		ddrescue -f -n /dev/hda /dev/hdb mapfile
ddrescue -d -f -r3 /dev/hda /dev/hdb mapfile
fdisk /dev/hdb
e2fsck -v -f /dev/hdb1
e2fsck -v -f /dev/hdb2Пример 2: Восстановление одного раздела с /dev/hda2 на /dev/hdb2.
Примечание: результирующий раздел должен существовать с тем же типом и размером, что и исходный, либо должен быть создан.
			
				Код:
			
		
		
		ddrescue -f -n /dev/hda2 /dev/hdb2 mapfile
ddrescue -d -f -r3 /dev/hda2 /dev/hdb2 mapfile
e2fsck -v -f /dev/hdb2
mount -t ext2 -o ro /dev/hdb2 /mnt
# (попробуйте прочитать данные с восстановленного раздела)Пример 3:Во время восстановления целого диска /dev/hda на /dev/hdb, /dev/hda остановился и перестал отвечать на позиции 12345678.
			
				Код:
			
		
		
		ddrescue -f /dev/hda /dev/hdb mapfile
# ( <-- /dev/hda freezes here --> )
# (переподключите  /dev/hda или перезагрузите компьютер )
# перезапускаем восстановление с байта 12350000
ddrescue -f -i 12350000 /dev/hda /dev/hdb mapfile
# Пробуем восстановить с конца диска
ddrescue -f -R /dev/hda /dev/hdb mapfileПример 4:Во время восстановления целого диска /dev/hda на /dev/hdb, /dev/hdb выдал ошибку и мы пытаемся восстановить данные на третий диск /dev/hdc
			
				Код:
			
		
		
		ddrescue -f -n /dev/hda /dev/hdb mapfile1
# (<-- /dev/hdb выдал ошибку -->)
ddrescue -f -m mapfile1 /dev/hdb /dev/hdc mapfile2
ddrescue -f -n /dev/hda /dev/hdc mapfile2
ddrescue -d -f -r3 /dev/hda /dev/hdc mapfile2Пример 5:Во время восстановления целого диска /dev/hda на /dev/hdb, /dev/hda перестал отвечать, стал недоступен и невидим в /dev
			
				Код:
			
		
		
		ddrescue -f -n /dev/hda /dev/hdb mapfile
# (<-- /dev/hda fails here --> )
# Переподключите /dev/hda или перезагрузите компьютер столько раз, сколько необходимо
ddrescue -f -n -A /dev/hda /dev/hdb mapfile
ddrescue -d -f -r3 /dev/hda /dev/hdb mapfile
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
							
							 
				