Comando Linux DD

Comando Linux DD
"DD" é uma ferramenta Linux CLI. Agora, a versão atual de "DD" faz parte dos GNU CoreUtils, é aquele que todos os recursos do sistema UNIX/Linux. O objetivo principal desta ferramenta é converter e copiar arquivos. No entanto, é bem diferente de outras ferramentas de cópia de arquivo como "CP".

Recursos DD

"DD" pode ser usado para vários propósitos:

  • Usando "DD", é possível ler diretamente e/ou escrever de/para diferentes arquivos, desde que a função já seja implementada nos drivers respeitados.
  • É super útil para fins, como fazer backup do setor de inicialização, obtendo dados aleatórios etc.
  • Conversão de dados, por exemplo, convertendo ASCII em codificação EBCDIC.

Uso DD

Aqui estão alguns dos usos mais comuns e interessantes de "dd". Claro, "DD" é muito mais capaz do que essas coisas. Se você estiver interessado, sempre recomendo verificar outros recursos detalhados em "DD".

Localização

que dd

Como a saída indica, sempre que a execução de "DD", ele é lançado a partir de "/usr/bin/dd".

Uso básico

Aqui está a estrutura que "dd" segue.

dd se = de =

Por exemplo, vamos criar um arquivo com dados aleatórios. Existem alguns arquivos especiais embutidos no Linux que aparecem como arquivos normais como "/dev/zero" que produz um fluxo contínuo de nulo, "/dev/aleatório" que produz dados aleatórios contínuos.

dd if =/dev/urandom de = ~/desktop/aleatório.txt bs = contagem de 1m = 5

As primeiras opções são auto-explicativas. Significa usar "/dev/urandom" como fonte de dados e "~/desktop/aleatório.txt ”como o destino. Quais são as outras opções?

Aqui, "BS" significa "tamanho do bloco". Quando o DD está escrevendo dados, ele escreve em blocos. Usando esta opção, o tamanho do bloco pode ser definido. Nesse caso, o valor "1M" diz que o tamanho do bloco é de 1 megabyte.

"Count" decide o número de blocos a serem escritos. Se não for corrigido, "DD" continuará o processo de escrita, a menos que o fluxo de entrada termine. Nesse caso, "/dev/urandom" continuará gerando dados infinitamente, então essa opção foi fundamental neste exemplo.

Backup de dados

Usando este método, "DD" pode ser usado para despejar os dados de uma unidade inteira! Tudo que você precisa é contar a unidade como fonte.

dd se = de =

Se você está indo para essas ações, verifique se sua fonte não é um diretório. "DD" não tem idéia de como processar um diretório, então as coisas não funcionam.

"DD" sabe apenas trabalhar com arquivos. Então, se você precisar de backup de um diretório, use o alcatrão para arquivá -lo primeiro e depois use "dd" para transferi -lo em um arquivo.

Demonstração TAR CVJF.alcatrão.xz demodir/
dd if = demonstração.alcatrão.xz de = ~/desktop/backup.img

No próximo exemplo, realizaremos uma operação muito sensível: backup do MBR! Agora, se o seu sistema estiver usando o MBR (Master Boot Record), está localizado nos primeiros 512 bytes do disco do sistema: 466 bytes para o carregador de inicialização, outros para a tabela de partição.

Execute este comando para fazer backup do registro MBR.

dd if =/dev/sda de = ~/desktop/mbr.img bs = 512 contagem = 1

Restauração de dados

Para qualquer backup, a maneira de restaurar os dados é necessária. No caso de "DD", o processo de restauração é um pouco diferente de qualquer outra ferramenta. Você precisa reescrever o arquivo de backup em uma pasta/partição/dispositivo semelhante.

Por exemplo, eu tenho esse “backup.arquivo IMG "contendo a" demonstração.alcatrão.arquivo xz ”. Para extraí -lo, usei o seguinte comando.

dd if = backup.img de = demonstração.alcatrão.xz

Novamente, verifique se você está escrevendo a saída para um arquivo. "DD" não é bom com diretórios, lembre -se?

Da mesma forma, se "dd" fosse usado para criar um backup de uma partição, restaurá -la exigiria o seguinte comando.

dd se = de =

Por exemplo, que tal restaurar o MBR, apoiamos mais cedo?

dd if = mbr.img de =/dev/sda

Opções “dd”

Em algum momento deste guia, você enfrentou algumas opções "DD" como "BS" e "Count", certo? Bem, há mais deles. Aqui está uma lista restrita sobre o que eles são e como usá -los.

  • OBS: determina o tamanho dos dados a serem escritos. O valor padrão é 512 bytes.
  • CBS: determina o tamanho dos dados a serem convertidos por vez.
  • IBS: determina o tamanho dos dados a serem lidos.
  • Contagem: Copie apenas n blocos
  • Procura: Pule os blocos no início da saída
  • Skip: Skip N Blocks no início da entrada
Conv = ASCII: converte a entrada do arquivo de EBCDIC em ASCII
Conv = EBCDIC: converte a entrada do arquivo de ASCII em EBCDIC
Conv = IBM: converte a entrada do arquivo de ASCII em EBCDIC alternativo
Conv = lcase: converte a entrada do arquivo da mancha em minúsculas
Conv = ucase: converte a entrada do arquivo de minúsculas para maiúsculas
Conv = Swab: Troque todos os pares de entrada

Opções adicionais:

  • Nocreat: não crie o arquivo de saída
  • NOTRUC: não truque o arquivo de saída
  • Noerror: continue a operação, mesmo depois de enfrentar o erro
  • fdatasync: escreva dados para o armazenamento físico antes do processo de terminar
  • fsync: semelhante ao fdatasync, mas também escreve os metadados
  • iflag: ajuste a operação com base em várias bandeiras. Os sinalizadores disponíveis incluem: Anexar para anexar dados à saída

Opções adicionais:

  • Diretório: enfrentar um diretório falhará na operação
  • DSYNC: E/S sincronizada para dados
  • Sincronização: semelhante ao DSYNC, mas inclui metadados
  • Nocache: solicitações de soltar o cache.
  • Nofollow: não siga nenhum simplório

Opções adicionais:

  • count_bytes: semelhante a "count = n"
  • Seek_bytes: semelhante a "Seek = n"
  • skip_bytes: semelhante a "skip = n"

Como você viu, é possível empilhar várias bandeiras e opções em um único comando "dd" para ajustar o comportamento da operação.

dd if = demonstração.txt de = demo1.txt bs = 10 contagem = 100 conv = ebcdic
iflag = anexar, nocache, nofollow, sincronizar

Pensamentos finais

O fluxo de trabalho de "dd" é bem simples. No entanto, para "DD" brilhar verdadeiramente, depende de você. Existem várias maneiras pelas quais o "DD" pode ser usado para executar interações inteligentes.

Para obter informações detalhadas sobre "DD" e todas as suas opções, consulte a página do homem e da informação.

Homem DD