Eu uso o dd em sua forma mais simples para clonar um disco rígido:
dd if=INPUT of=OUTPUT
No entanto, li na página de manual que o dd conhece um parâmetro de tamanho do bloco. Existe um valor ideal para o parâmetro blocksize que acelera o procedimento de clonagem?
linux
hard-drive
backup
clone
Phi
fonte
fonte
Respostas:
64k parece ser uma boa escolha:
(tirada daqui ).
isso combina com minhas próprias descobertas sobre o buffer de leitura / gravação para acelerar um programa conversor pesado com io que eu já estava usando @work.
fonte
O dd copiará felizmente usando o BS do que você quiser e copiará um bloco parcial (no final).
Basicamente, o parâmetro do tamanho do bloco (bs) parece definir a quantidade de memória usada para ler um bloco de um disco antes de tentar gravar esse bloco no outro.
Se você tiver muita RAM, tornar o BS grande (mas totalmente contido na RAM) significa que o subsistema de E / S é utilizado o máximo possível, fazendo leituras e gravações massivamente grandes - explorando a RAM. Reduzir o tamanho da BS significa que a sobrecarga de E / S como uma proporção da atividade total aumenta.
É claro que há uma lei de retornos decrescentes. Minha aproximação aproximada é que um tamanho de bloco na faixa de 128K a 32M provavelmente fornecerá desempenho de forma que as despesas gerais sejam pequenas em comparação com a E / S simples, e aumentar ainda mais não fará muita diferença. O motivo pelo qual o limite inferior é de 128K a 32M é - depende do sistema operacional, hardware e assim por diante.
Se fosse eu, eu faria algumas experiências cronometrando uma cópia / clone usando um BS de 128K e novamente usando (digamos) 16M. Se alguém for consideravelmente mais rápido, use-o. Caso contrário, use o BS menor dos dois.
fonte
Para aqueles que acabam aqui via Google, mesmo que essa discussão seja um pouco antiga ...
Lembre-se de que dd é burro por um motivo: quanto mais simples, menos maneiras ele pode estragar.
Esquemas complexos de particionamento (considere um disco rígido de inicialização dupla que também usa o LVM para seu sistema Linux) começarão a extrair bugs da madeira em programas como o Clonezilla. Sistemas de arquivos mal desmontados podem explodir o ntfsclone muito alto.
Um sistema de arquivos corrompido, clonado setor por setor, não é pior que o original. Um sistema de arquivos corrompido após uma "cópia inteligente" com falha pode estar realmente em péssimo estado.
Em caso de dúvida, use dd e siga forense. A imagem forense requer cópias setor por setor (na verdade, pode exigir mais setores do que você conseguirá com o dd, mas essa é uma longa história). É lento e tedioso, mas ele fará o trabalho corretamente.
Além disso, conheça as opções "conv = noerror, sync", para que você possa clonar unidades que estão começando a falhar - ou criar ISOs a partir de CDs riscados ( sem tosse ) - sem levar meses.
fonte
sync
opção faz? A página man apenas diz:"use synchronized I/O for data and metadata"
. Com o que estamos sincronizando? Isso pode ser muitas coisas diferentes.Como outros já disseram, não há tamanho de bloco universalmente correto; o que é ideal para uma situação ou uma peça de hardware pode ser terrivelmente ineficiente para outra. Além disso, dependendo da integridade dos discos, pode ser preferível usar um tamanho de bloco diferente do que é "ideal".
Uma coisa que é bastante confiável no hardware moderno é que o tamanho padrão do bloco de 512 bytes tende a ser quase uma ordem de magnitude mais lenta que uma alternativa mais ideal. Na dúvida, descobri que 64K é um padrão moderno bastante sólido. Embora 64K geralmente não seja o tamanho ideal de bloco, na minha experiência, ele tende a ser muito mais eficiente que o padrão. O 64K também tem um histórico bastante sólido de desempenho confiável: Você pode encontrar uma mensagem na lista de discussão Eug-Lug, por volta de 2002, recomendando um tamanho de bloco de 64K aqui: http://www.mail-archive.com/eug- [email protected]/msg12073.html
Para determinar o tamanho ideal do bloco de saída, escrevi o seguinte script que testa a gravação de um arquivo de teste de 128M com dd em um intervalo de tamanhos de bloco diferentes, do padrão de 512 bytes a um máximo de 64M. Esteja avisado, este script usa dd internamente, portanto, use com cuidado.
dd_obs_test.sh:
Ver no GitHub
Eu testei esse script apenas em um sistema Debian (Ubuntu) e no OSX Yosemite, por isso provavelmente será necessário alguns ajustes para fazer funcionar outros tipos de Unix.
Por padrão, o comando criará um arquivo de teste chamado dd_obs_testfile no diretório atual. Como alternativa, você pode fornecer um caminho para um arquivo de teste personalizado, fornecendo um caminho após o nome do script:
A saída do script é uma lista dos tamanhos de bloco testados e suas respectivas taxas de transferência da seguinte forma:
(Nota: a unidade das taxas de transferência variará de acordo com o sistema operacional)
Para testar o tamanho ideal do bloco de leitura, você pode usar mais ou menos o mesmo processo, mas em vez de ler / dev / zero e gravar no disco, você deve ler o disco e gravar em / dev / null. Um script para fazer isso pode ser assim:
dd_ibs_test.sh:
Ver no GitHub
Uma diferença importante nesse caso é que o arquivo de teste é um arquivo gravado pelo script. Não aponte este comando para um arquivo existente ou o arquivo existente será substituído por dados aleatórios!
Para meu hardware em particular, descobri que 128K era o tamanho de bloco de entrada mais ideal em um HDD e 32K era o melhor em um SSD.
Embora esta resposta cubra a maioria das minhas descobertas, já me deparei com essa situação várias vezes em que escrevi uma postagem no blog sobre ela: http://blog.tdg5.com/tuning-dd-block-size/ Você pode encontrar mais detalhes nos testes que realizei lá.
Esta publicação do StackOverflow também pode ser útil: dd: Como calcular o tamanho ideal do bloco?
fonte
Sim, mas você não o encontrará sem muitos testes. Descobri que 32M é um bom valor para usar.
fonte
clonando a unidade de inicialização antiga para o novo ssd em sata externo (ssd para ssd)
usando Discos (ferramenta)> formato> ATA Secure Erase (2min)
Execuções de teste:
segunda tentativa após apagamento seguro com o mesmo resultado:
fonte