Desempenho

Como usar o comando dd no Linux

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

Neste artigo, vou mostrar alguns dos usos comuns do dd comando em Linux. Vou usar o Debian 9 Stretch para a demonstração. Mas deve funcionar em qualquer outra distribuição Linux. Vamos começar.

Criação de uma unidade USB inicializável com dd:

Fazer 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 do qual você deseja fazer um USB inicializável.

Vamos supor que você tenha baixado um ISO imagem do Alpine Linux e o arquivo é salvo no ~ / Downloads diretório como alpine-standard-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 são listados. Aqui, / dev / sdb é meu drive USB. Tem duas partições, / dev / sdb1 e / dev / sdb2. Mas quando você faz unidades inicializáveis ​​USB, você tem que usar o / dev / sdb, todo o dispositivo de bloco, não quaisquer partições.

Agora crie uma unidade USB inicializável do Alpine Linux com o seguinte comando:

$ sudo dd if = ~ / Downloads / alpine-standard-3.8.0-x86_64.iso de = / dev / sdb bs = 1M

Aqui, se =~ / Downloads / alpine-standard-3.8.0-x86_64.iso 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 opção é usada para dizer dd que o arquivo de saída está no caminho / dev / sdb. O bs =1M conta dd ler de ~ / Downloads / alpine-standard-3.8.0-x86_64.iso e escrever 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 Alpine Linux.

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

Exibindo 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 mostrar 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 quantos dados são copiados e a taxa em que estão sendo copiados.

Medindo 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. Claro, existem muitos softwares gráficos que fornecem essas informações, mas os amantes da linha de comando achariam isso muito interessante.

Primeiro, você deve montar a partição ou o dispositivo de armazenamento em seu sistema de arquivos. Se você não tiver uma partição em seu dispositivo de armazenamento, você sempre pode criá-la com o fdisk comando e formate-o para o 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ê queira montar / dev / sdb1 partição para / mnt diretório e execute o seguinte comando:

$ sudo mount / 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 contagem = 1 oflag = direto

Aqui, contagem = 1 significa, leia bs = 1G que é 1 Gigabyte de / dev / zero, e escrever para / mnt / testrw Arquivo.

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

NOTA: Lembre-se, para esta operação, você deve ter pelo menos 1 GB de memória livre ou RAM em seu computador. Se você não pode pagar por tanta RAM livre, reduza o tamanho do bs. Por exemplo, defina bs = 128M ou ainda 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 of = ~ / Downloads / test bs = 1G count = 1 oflag = direct

Como você pode ver, 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 que leva 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 blocos 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 bloco de dados com muita facilidade. Isso é chamado de latência do dispositivo de armazenamento.

Por exemplo, digamos que você deseja calcular a latência de gravação. Agora execute o seguinte comando para gravar blocos de 512 bytes cerca de 1000 vezes:

$ sudo dd if = / dev / zero of = / mnt / testX bs = 512 count = 1000 oflag = direct

Como você pode ver, leva cerca de 16.4541 segundos para escrever 1000 pedaços de 512 dados de bytes. Agora, para escrever um único bloco de dados, leva cerca de (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 testa o desempenho de um dispositivo de I / O com ele. Obrigado por ler este artigo.

AppyMouse na tela Trackpad e ponteiro do mouse para tablets Windows
Os usuários de tablets costumam perder o ponteiro do mouse, especialmente quando costumam usar laptops. Os smartphones e tablets touchscreen vêm com m...
O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...