ddrescue extremamente lento no disco rígido USB

9

Estou recuperando o disco rígido do meu laptop que morreu (não inicializou, o Disk Utility informou que não havia problemas, mas não montava o disco). Liguei o disco rígido através do adaptador USB. Correndo ddrescueassim:

sudo ddrescue -v -n /dev/disk1s2 "/Volumes/Original HD/image.dmg" ddrescue.log

Até o momento, não há erros, mas a velocidade média de leitura caiu gradualmente para 50KB / s. Era cerca de 2 MB / s no começo. O tamanho da partição é de 300 GB. Até agora, consegui recuperar 160 GB. Estou me recuperando para uma partição HFS + no meu MacBook.

Quais poderiam ser as razões para essa baixa taxa de transferência e como aumentá-la?

Mik
fonte

Respostas:

8

Parece que foi assim que ddrescueas transferências USB e funcionam no OSX. A partir deste tópico intitulado: Subject: [Bug-ddrescue] ddrescue 10x lento sob osx .

ao trabalhar em discos rígidos totalmente funcionais, no linux ele executa velocidade de E / S total. quando compilado sob osx com os sinalizadores de compilação padrão, é magnitude vezes mais lento, às vezes rastreando para Kb / s. o problema persistirá se o arquivo de saída for / dev / null.

Esse mesmo segmento também teve essa resposta.

Na minha experiência e teste no OS X, /dev/rdisk…é sempre preferível acessar os dispositivos de caracteres brutos . Além disso, a velocidade de transferência pode ser aprimorada ainda mais, definindo um tamanho maior de bloco de cópia. Um tamanho de 512KiB ( ddrescue -c 1Ki) me deu os melhores resultados na maioria dos casos.

E: Os dispositivos de caracteres brutos do OS X possuem um tamanho definido, para que possam ser usados ​​com facilidade, mesmo na primeira execução. (Pelo menos neste ponto, as notas sobre dispositivos brutos na documentação existente ddrescuenão se aplicam ao OS X.)

Eu não acho que isso seja um bug ddrescue, porque outros utilitários gostam ddou catexibem o mesmo comportamento no OS X.

O acesso a um dispositivo de bloco / dev / disk… fornece uma velocidade bastante lenta, independente do tamanho do bloco de cópia usado. A velocidade de leitura de um / dev / rdisk… dispositivo de caracteres brutos, por outro lado, depende muito do tamanho do bloco de cópia escolhido:

  • 512 Byte ( ddrescue -c 1, padrão em dd) é o mais lento.
  • Configurá-lo para 4096 Byte ( ddrescue -c 8, dd bs=4K) fornece a mesma velocidade lenta de acessar / dev / disk…
  • padrão de 128 setores (= 64KiB, de ddrecue ddrescue -c 128, dd bs=64K) traz resultados bastante positivos.
  • Multiplicando que mais (até ddrescue -c 1Ki/ dd bs=512K) traga velocidade máxima (geralmente 8 a 12 vezes mais rápido que /dev/disk…)
  • Subir acima disso não aumentou ainda mais a velocidade de transferência nos meus testes; às vezes até diminuiu.

Esses são os resultados de minhas próprias medições; seus resultados podem variar dependendo da mídia e do hardware de IO usados. Talvez se outros usuários compartilharem sua experiência, poderíamos obter uma melhor imagem do tópico.

Referências

slm
fonte
1
Alterar o tamanho do bloco de cópia não afeta a velocidade de transferência no meu caso. No entanto, jogando com / dev / null, consegui uma boa taxa de transferência (até 8 MB / s), definindo a posição do arquivo de entrada para 200 GB. Agora retomei meu processo de restauração com parâmetro adicional -i214748364800. Espero que 0 - 160GB inicial não seja afetado por isso.
26414 Mik
1
Infelizmente, o aumento da taxa de transferência durou pouco. Vou tentar executar a ddrescuepartir do sistema unix.
26714 Mik
@ Mik Obrigado por fornecer o parâmetro exato que você usou para retomar a recuperação em uma posição diferente. A unidade de origem que eu havia falhado na posição 121242584064 e tentei continuar além dela, mas a ddrescue disse Erro de leitura desalinhado. O tamanho do setor está correto? Então, usando o seu valor, retomei os 200 GB. E não, isso não afeta os 0 - 160 GB iniciais.
Colin
0

Não sei muito sobre o HFS+sistema de arquivos no MacOS, no entanto, acabei de experimentar que resgatar um disco rígido interno de 500 GB (conectado via SATA) em um laptop executando o Linux Mint a partir de um pendrive, salvando a imagem de resgate e o arquivo de log em um exFatdisco rígido USB formatado, estava iniciando muito lentamente (1-2 MB / s), mas após cerca de 250 GB ele estava apenas rastejando a <100 KB / s. Parecia ficar mais lento quanto maior o tamanho do arquivo de imagem de resgate.

Em seguida, mudei a imagem de resgate e o arquivo de log para outro local temporário, reformatei o disco rígido USB com o ext4sistema de arquivos, movi os arquivos novamente e retomei o processo ddrescue - e agora ele roda com 1-20MB / s novamente (flutuando mas cerca de 7 MB / s em média)!

Parece exFatque não funciona muito bem com arquivos muito grandes (várias centenas de gigabytes). Como já foi dito, não sei se esse também é o caso, HFS+mas talvez você queira tentar ext4.

Dirk
fonte