qual é a diferença entre esses dois comandos

1

Primeiro comando

  

sudo dd se = / dev / zero de = / dev / sda

segundo comando

  

sudo dd se = / dev / zero de = / dev / sda bs = 1M

Estou formatando meu pc por 4 horas com o primeiro código, mas ele não foi concluído.

O primeiro código está errado?

Qual é a diferença?

    
por halit cetin 21.12.2012 / 12:55

3 respostas

2

O tamanho padrão do bloco para dd é de 512 bytes, com o segundo comando informando dd para usar tamanho de bloco de 1MB.

Qual é o tamanho do bloco?

  

Um bloco é uma unidade que mede o número de bytes lidos,   escrito ou convertido de uma só vez. Opções de linha de comando podem especificar um   tamanho de bloco diferente para entrada / leitura (ibs) comparado a   saída / escrita (obs), embora a opção de tamanho de bloco (bs) substituirá   ambos ibs e obs. O valor padrão para o bloco de entrada e saída   tamanhos é 512 bytes (o tamanho do bloco de dispositivos de bloco Unix). A conta   opção para copiar é medida em blocos, assim como a contagem de saltos   para ler e procurar contar para escrever. As operações de conversão também são   afetado pelo "tamanho do bloco de conversão" (cbs).

     

Para alguns usos do comando dd, o tamanho do bloco pode afetar   desempenho. Por exemplo, ao recuperar dados de um disco rígido, um   tamanho de bloco pequeno geralmente fará com que a maioria dos bytes seja recuperada.   Para maior velocidade durante as operações de cópia, um tamanho de bloco   usava. Quando dd é usado para transferências de rede, o tamanho do bloco pode ter   um impacto no tamanho do pacote, dependendo do protocolo de rede usado.

fonte

    
por ricciocri 21.12.2012 / 13:08
2

O primeiro comando usa blocos de 512 bytes, enquanto o segundo usa blocos de 1MB. Na verdade, um bloco de 4kB fará o truque na maioria dos casos, já que o disco usa blocos de 4kB no nível do hardware.

O que acontece no primeiro caso é o seguinte (simplificado):

  1. leia um bloco de 4kB do disco no buffer de memória
  2. substitua 512 bytes no buffer de memória
  3. escreve um buffer de 4kB no disco
  4. leia o bloco de 4kB do disco na memória
  5. substitua os próximos 512 bytes no buffer
  6. escreve bloco de 4kB no disco

... substituir um bloco de 4kB requer 8 leituras do disco e 8 gravações no disco.

Eu adivinho você adquire a imagem para o que acontece quando você aumenta tamanho de bloco para 4kB ou maior (de preferência múltiplo de 4kB) e como isso aumenta velocidade. Não precisa mais ler o disco, porque blocos inteiros estão escritos.

Além disso, é bem provável que o PC agora esteja entregando dados com rapidez suficiente para o disco, que provavelmente ele pode gravar um bloco consecutivo um após o outro, sem ter que esperar que o prato rotativo faça um revolução completa até o bloco direito aparecer sob as cabeças.

    
por jippie 21.12.2012 / 16:09
0

Argumento bs=1M no segundo comando significa o número de bytes lidos e depois gravados. Portanto, quando você executar dd com esse argumento, 1 MB será lido de /dev/zero e, em seguida, 1 MB será gravado em /dev/sda . Quando você não tem o argumento, o valor padrão para o número de bytes é usado, acho que são 512 bytes. Esse número de bytes é muito menor, portanto, mais leitura e gravação são necessárias para concluir a operação solicitada e isso será mais lento.

    
por Milan Todorovic 21.12.2012 / 13:09