Como usar o comando dd no linux

Como usar o comando dd no linux
O dd O comando é usado para fazer muitas coisas importantes. O uso mais comum e generalizado do dd o comando é fazer unidades USB inicializáveis ​​de um ISO ou Img arquivo de imagem. Eu o uso muito para fazer unidades USB inicializáveis ​​de diferentes distribuições Linux. Mas existem outros usos do dd comando também. Por exemplo, o dd O comando pode ser usado para fazer um backup da tabela de partição, converter textos e arquivos, instalar um carregador de inicialização em uma unidade de disco rígido, ssd ou unidade USB. O dd O comando também pode ser usado para fazer testar o desempenho de dispositivos de armazenamento, como latência do seu disco rígido, ler e escrever velocidade do seu disco rígido etc.

Neste artigo, mostrarei alguns dos usos comuns do dd comando no linux. Eu estarei usando o Debian 9 Stretch para a demonstração. Mas deve funcionar em qualquer outra distribuição do Linux. Vamos começar.

Fazendo uma unidade USB inicializável com DD:

Fazendo uma unidade USB inicializável do seu sistema operacional favorito com o dd O comando é muito fácil. Tudo que você precisa é uma unidade USB e um ISO ou Img imagem do sistema operacional que você deseja criar um USB inicializável.

Vamos supor, você baixou um ISO imagem do alpino linux e o arquivo é salvo para o ~/Downloads diretório como Alpine-padrão-3.8.0-x86_64.ISO

Agora, você pode listar todos os dispositivos de armazenamento ou bloqueio conectados com o seguinte comando:

$ sudo lsblk

Como você pode ver, todos os dispositivos de armazenamento ou bloco conectados estão listados. Aqui, /dev/sdb é minha unidade USB. Tem duas partições, /dev/sdb1 e /dev/sdb2. Mas quando você faz unidades inicializáveis ​​USB, você precisa usar o /dev/sdb, Todo o dispositivo de bloco, não qualquer partição.

Agora faça a unidade USB inicializável do alpino Linux com o seguinte comando:

$ sudo dd if = ~/downloads/alpine-padrão-3.8.0-x86_64.ISO de =/dev/sdb bs = 1m

Aqui, se =~/Downloads/Alpine-Standard-3.8.0-x86_64.ISO a opção é usada para dizer dd que o arquivo de entrada está no caminho ~/Downloads/Alpine-Standard-3.8.0-x86_64.ISO e de =/dev/sdb a opção é usada para dizer dd que o arquivo de saída está no caminho /dev/sdb. O BS =1m diz dd para ler ~/Downloads/Alpine-Standard-3.8.0-x86_64.ISO e escreva para /dev/sdb 1 megabytes de dados por vez.

Como você pode ver, o arquivo ISO é copiado para o dispositivo de bloco /dev/sdb. Agora você pode usá -lo para instalar o alpino linux.

Este comando é muito destrutivo. O dd O comando limpa a tabela de partição e outros metadados, sinalizadores do dispositivo de bloco. Então você deve ter cuidado.

Exibindo a barra de progresso:

Por padrão, o dd O comando não mostra nenhuma barra de progresso. Mas você pode dizer dd para mostrar com o status = progresso opção.

Por exemplo, para copiar dados de /Dev/SDA para /dev/sdb 1 megabytes por vez e também mostram a barra de progresso, execute o seguinte comando:

$ sudo dd if =/dev/sda de =/dev/sdb bs = 1m status = progresso

Como você pode ver, a barra de progresso é exibida. Você pode ver quanto dos dados é copiado e a taxa na qual está sendo copiada.

Medir o desempenho de leitura e gravação de um dispositivo de armazenamento com DD:

Você pode medir a velocidade de leitura e gravação de um dispositivo de armazenamento com dd muito facilmente. Obviamente, existem muitos softwares gráficos que fornecem essas informações, mas os amantes da linha de comando acharão isso muito interessante.

Primeiro, você deve montar a partição ou o dispositivo de armazenamento no seu sistema de arquivos. Se você não tem uma partição no seu dispositivo de armazenamento, sempre pode criá -lo com o fdisk comando e formate -o ao sistema de arquivos desejado (como FAT32, Ext4, NTFS, XFS etc). Aqui, presumo que você tenha uma partição /dev/sdb1 e é formatado como Ext4.

Digamos que você quer montar /dev/sdb1 partição para /mnt Diretório e execute o seguinte comando:

$ sudo monte /dev /sdb1 /mnt

Como você pode ver, a partição /dev/sdb1 está montado em /mnt diretório.

$ df -h

Agora vamos criar um arquivo de 1 GB testrw no /mnt diretório com dd:

$ sudo dd if =/dev/zero de =/mnt/testrw bs = 1g count = 1 ofLag = direto

Aqui, contagem = 1 significa ler BS = 1G que é 1 gigabyte de /dev/zero, e escreva para /mnt/testrw arquivo.

O oflag = direto A opção é usada para desativar o cache de disco. Se o cache de disco estiver ativado, você não terá resultados muito precisos.

OBSERVAÇÃO: Lembre -se, para esta operação, você deve ter pelo menos 1 GB de memória livre ou RAM no seu computador. Se você não pode pagar tanto RAM gratuito, reduza o tamanho da BS. Por exemplo, defina BS = 128m ou até menos, BS = 64m.

Como você pode ver, a velocidade de gravação da minha unidade USB é cerca de 6.1 mb por segundo.

Você também pode testar a velocidade de leitura do seu dispositivo de armazenamento com o seguinte comando:

$ sudo dd if =/mnt/testrw de = ~/downloads/teste bs = 1g count = 1 ofLag = direto

Como você pode ver, eu posso ler em 4.3 MB por segundo.

Testando a latência do dispositivo de armazenamento com DD:

A latência de um dispositivo de armazenamento é o tempo necessário para acessar o dispositivo. É um parâmetro importante que podemos determinar com a ajuda do dd comando.

Para testar a latência, podemos escrever ou ler pequenos pedaços de dados (cerca de 512 bytes por vez) x vezes e ver quanto tempo leva. Então podemos calcular quanto tempo leva para ler ou escrever um único pedaço de dados com muita facilidade. Isso é chamado de latência do dispositivo de armazenamento.

Por exemplo, digamos que você queira calcular a latência de gravação. Agora execute o seguinte comando para escrever 512 Bytes Chunk cerca de 1000 vezes:

$ sudo dd if =/dev/zero de =/mnt/testx bs = 512 count = 1000 ofLag = direto

Como você pode ver, é preciso 16.4541 segundos para escrever 1000 pedaços de 512 dados de bytes. Agora, para escrever um único pedaço de dados, é preciso (16.4541s / 1000 = 0.0164 s) 0.0164 segundos. Portanto, a latência de gravação é cerca de 0.0164 segundos para este dispositivo de armazenamento.

Você pode calcular a latência de leitura da mesma maneira.

Então é assim que você usa o DD e o desempenho de teste de um dispositivo de E/S com ele. Obrigado por ler este artigo.