ddrescue abrandou maciçamente no os x

4

Estou usando o ddrescue para criar uma imagem de uma unidade, e ela é reduzida para aproximadamente 0,1% tão rápido quanto começou, a essa taxa Não tenho certeza se ela terminará, de qualquer forma, não estou Tenho certeza de que posso amarrar essa máquina por muito tempo para fazer isso. Esperando que alguém possa ajudar, ou recomendar alguma outra maneira de criar imagens no disco?

A configuração: - macbook pro executando 10.8 - ddrescue instalado a partir de macports - a unidade de origem está no freezer, com os cabos correndo para o laptop usando um adaptador SATA para USB - unidade de destino em um modelo idêntico de um maxtor de 640gig em um gabinete sata para usb - o comando utilizado foi: - o arquivo de log está sendo gravado em /root/rescue.log (em qualquer sistema de arquivos / está em um macbook) - saída de terminal do comando e minha tentativa de retomar abaixo, você pode ver que era com média de 7000kbs e agora tem uma média de cerca de 5000 bps!

Alguma dica muito apreciada! Iain

Iains-MacBook-Pro:~ root# ddrescue -f -g -v -n /dev/disk1 /dev/disk2 /root/rescue.log
ddrescue: warning: Options -aCdDeEIMnOprRStTx are ignored in generate mode.


GNU ddrescue 1.16
About to generate an approximate logfile for /dev/disk1 and /dev/disk2
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
rescued:     2543 MB,  generated:    2731 MB,  current rate:    8847 kB/s
   opos:     2731 MB,                          average rate:    9134 kB/s
Generating logfile...
ddrescue: Error opening logfile '/root/rescue.log' for writing: No such file or directory
Fix the problem and press ENTER to retry, or Q+ENTER to abort. 


rescued:   474160 MB,  generated:  499761 MB,  current rate:     5461 B/s
rescued:   474160 MB,  generated:  499761 MB,  current rate:     3449 B/s
   opos:   499761 MB,                          average rate:    7440 kB/s
Generating logfile...
Interrupted by user
Iains-MacBook-Pro:~ root# 
Iains-MacBook-Pro:~ root# ddrescue -f -g -v -n /dev/disk1 /dev/disk2 /root/rescue.log
ddrescue: warning: Options -aCdDeEIMnOprRStTx are ignored in generate mode.


GNU ddrescue 1.16
About to generate an approximate logfile for /dev/disk1 and /dev/disk2
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   474160 MB,  generated:  499761 MB
Current status
rescued:   474164 MB,  generated:  499765 MB,  current rate:     5041 B/s
   opos:   499765 MB,                          average rate:     8793 B/s
Generating logfile...
    
por Iain Duncan 11.07.2013 / 20:24

2 respostas

3

Esse é o comportamento esperado do ddrescue. Ele diminui a velocidade para ler pedaços menores em áreas danificadas do disco. Como sua unidade está no freezer, presumo que esteja em apuros e você está tentando salvar informações. Ddrescue é a ferramenta que eu usaria nessa situação.

No manual

The algorithm of ddrescue is as follows (the user may interrupt the process at any point, but be aware that a bad drive can block ddrescue for a long time until the kernel gives up):

1) Optionally read a logfile describing the status of a multi-part or previously interrupted rescue. If no logfile is specified or is empty or does not exist, mark all the rescue domain as non-tried.

2) Read the non-tried parts of the input file, marking the failed blocks as non-trimmed and skipping beyond them, until all the rescue domain is tried. Only non-tried areas are read in large blocks. Trimming, splitting and retrying are done sector by sector. Each sector is tried at most two times; the first in this step as part of a large block read, the second in one of the steps below as a single sector read.

3) Read backwards one sector at a time the non-trimmed blocks, until a bad sector is found. For each non-trimmed block, mark the bad sector found as bad-sector and mark the rest of that block as non-split.

4) Read forwards one sector at a time the non-split blocks, marking the bad sectors found as bad-sector. After a number of consecutive bad sectors is found in a block large enough, the block is split by half and the reading continues on the second half. This recursively splits the largest failed blocks without producing a logfile too large.

5) Optionally try to read again the bad sectors until the specified number of retries is reached.

6) Optionally write a logfile for later use.

    
por 11.07.2013 / 20:37
1

De acordo com a informação manual na resposta @ForeverWintr, pode ser uma ideia parar a conexão e tentar ler o disco de trás para frente, o que pode permitir que você obtenha mais informações rapidamente se o seu disco estiver morrendo. Você também pode dizer ao ddrescue para ignorar blocos maiores inicialmente, mas no final, sim, o DDRescue pode levar anos (para sempre?) Para tentar recuperar o máximo que puder. Você pode chegar ao ponto em que você só precisa pegar o que pode conseguir e anotar as partes que não consegue ler. Muitas vezes, porém, quanto mais tempo você deixar, mais ele irá se recuperar. Eu tinha uma unidade de 320 GB que demorava dias para extrair praticamente todos os dados - o processo era muito lento enquanto o disco estava morrendo -, eu suspeito que tenha conseguido todos os 100k do disco no final.

    
por 12.07.2013 / 09:21