Qual é a diferença no uso de cp e dd ao clonar pen drives USB?

6

Descobri que existem pelo menos dois métodos para clonar um pendrive: (com /dev/sdb como a fonte enquanto /dev/sdc o alvo)

  1. Clonando com cp :

    sudo cp /dev/sdb /dev/sdc
    
  2. Clonando com dd :

    sudo dd if=/dev/sdb of=/dev/sdc bs=4096
    

Existe alguma diferença significativa entre os dois comandos e por que o dd é preferido sobre o cp?

    
por MrWm 28.03.2016 / 21:53

1 resposta

7

Nesse caso, a diferença é que dd está restrito a ler blocos de 4096 bytes por vez, pois você usou bs=4096 . O efeito provável é que dd será muito, muito mais lento que cp . Tente com um tamanho de bloco maior ( 10M , 50M ?).

O tamanho do buffer específico mais adequado para os dispositivos atuais pode ser diferente de cp (ou cat 's). Você não pode controlar facilmente o buffer de cp . O utilitário dd brilha quando:

  • você tem muito dispositivos grandes para copiar, de modo que vale a pena experimentar para determinar o melhor tamanho de bloco.
  • você tem que copiar apenas parte de um disco. Você pode especificar count para limitar quantos blocos são copiados.
  • você deseja retomar uma cópia interrompida. Você não pode fazer isso com cp , mas pode tentar com dd , usando as opções seek e skip .
  • você quer canalizá-lo para a entrada padrão de algo (reconhecidamente, cat funcionará aqui também):

    dd if=/dev/sda bs=10M | ssh host dd of=/dev/sdb
    
A utilidade

dd é muito bem discutida neste post do Unix e Linux: dd vs cat - o dd ainda é relevante nos dias de hoje?

    
por muru 28.03.2016 / 22:14