dd
tem muitas opções (estranhas), consulte dd (1) .
Você deve declarar explicitamente o tamanho do buffer, então tente
dd if=/dev/sda of=/dev/sdb bs=16M
IIRC, o tamanho do buffer padrão é de apenas 512 bytes. O comando acima define para 16 megabytes. Você poderia tentar algo menor (por exemplo, bs=1M
), mas você deve usar mais do que o padrão (especialmente em hardware de disco recente com setores de 4Kbytes, ou seja, Formato Avançado ). Eu ingenuamente recomendo algum poder de dois que seja pelo menos um megabyte.
Com o tamanho padrão do buffer de 512 bytes, eu acho (mas eu posso estar muito errado) que o hardware requer que o kernel transfira 4K para cada bloco de 512 bytes.
Em relação a rdsk
, as páginas man sd (4) dizem:
At this time, only block devices are provided. Raw devices have not yet been implemented.
O aumento do tamanho do buffer do dd proporcionará mais desempenho para as operações de leitura e gravação. Agora todos os discos têm buffer de leitura / gravação de hardware. Mas se você aumentar o tamanho do buffer de dd mais do que o buffer de hardware, seu desempenho diminuirá, pois o dd lerá do primeiro disco para o buffer quando o segundo disco tiver escrito tudo a partir de seu próprio buffer de hardware. Você precisa definir a opção bs
do comando dd a cada vez um valor diferente para diferentes dispositivos.