Gravando uma ISO no pendrive com dd (forma correta, rápida e segura)

Esqueça CDs, DVDs e até muitos programas gráficos. No Linux, você já tem uma ferramenta poderosa instalada por padrão que faz isso de forma direta, confiável e muito mais rápida: dd.

Este guia mostra a maneira correta de gravar uma imagem ISO em um pendrive para que ele seja inicializável (bootável), explicando as flags que realmente fazem diferença — inclusive as que quase nenhum tutorial comenta.


⚠️ Antes de começar (leia isso!)

  • Todo o conteúdo do pendrive será apagado. Faça backup se necessário.
  • Você não precisa formatar o pendrive antes. A ISO já contém tabela de partições e sistema de arquivos próprios.
  • Um erro no dispositivo (/dev/sdX) pode apagar seu HD. Confirme com cuidado.

Uma ISO bootável moderna não é um “arquivo para copiar dentro de um pendrive” — ela já é uma imagem completa de disco.

Ferramentas como dd não “copiam arquivos”. Elas clonam byte a byte a estrutura que já está dentro da ISO para o dispositivo.

Muitas ISOs (como a do Arch Linux, Ubuntu, Debian, Fedora) são do tipo isohybrid. Isso significa que a ISO já contém:

  • Tabela de partições (MBR e/ou GPT)
  • Sistema de arquivos (geralmente ISO9660 + El Torito + às vezes FAT para UEFI)
  • Estrutura de boot BIOS e UEFI
  • Layout exato de setores que o firmware espera

Quando você roda mkfs antes, você escreve outra tabela de partições e outro sistema de arquivos no pendrive.

O que acontece então?

1 - mkfs grava:

  • Nova tabela de partições
  • Novo filesystem (FAT, por exemplo)

2 - Depois o dd grava a ISO por cima, setor a setor.

O resultado é:

  • A ISO destrói o que o mkfs fez
  • Mas o kernel, o udisks, e até o firmware podem ter metadados em cache daquela formatação anterior
  • Isso pode gerar:
    • Pendrive que “some” depois da gravação
    • Tabela de partições “fantasma” aparecendo no lsblk
    • Mensagens tipo “device contains a valid partition table” conflitantes
    • Sistemas que se recusam a montar depois
    • UEFI não reconhecendo corretamente em alguns firmwares mais chatos

Ou seja: você cria lixo estrutural temporário que a ISO vai sobrescrever logo depois — mas o sistema já “viu” aquilo.

O ponto principal

mkfs é para preparar um dispositivo para armazenar arquivos.

dd com ISO é para transformar o dispositivo na própria mídia original.

São objetivos opostos.

É como:

formatar um HD para depois clonar uma imagem de outro HD por cima — a formatação não só é inútil, como pode confundir ferramentas do sistema.

Regra prática

  • Vai usar pendrive como armazenamento? → mkfs
  • Vai transformar pendrive em mídia de instalação? → NUNCA mkfs

1) Descobrir qual é o dispositivo do pendrive

Conecte o pendrive e rode:

lsblk

Você verá algo assim:

sda      500G
└─sda1
sdd       16G
└─sdd1

O pendrive costuma ser o menor dispositivo. No exemplo acima, é o /dev/sdd.

Use sempre o dispositivo inteiro (/dev/sdd), não a partição (/dev/sdd1).


2) Desmontar o pendrive

Se o sistema montou automaticamente:

sudo umount /dev/sdd*

3) O comando correto com dd

Aqui está a forma recomendada:

sudo dd if=~/Downloads/archlinux-x86_64.iso of=/dev/sdd bs=16M oflag=direct status=progress && sync

Substitua arch.iso pelo nome da sua imagem.


Entendendo as flags importantes

bs=16M

Define o tamanho do bloco que o dd lê/escreve por operação.

  • Padrão do dd: 512 bytes (muito lento)
  • 16M: escreve 16 megabytes por vez

Resultado: gravação muito mais rápida com menos overhead do sistema.

Valores entre 4M e 32M funcionam bem. 16M é um ótimo equilíbrio.


oflag=direct (o segredo que quase ninguém usa)

Sem essa flag, o Linux usa cache em RAM:

dd → RAM → kernel grava depois no pendrive

O dd pode terminar… mas o pendrive ainda está sendo gravado em segundo plano.

Com oflag=direct:

dd → pendrive diretamente (sem cache)

Isso garante que:

  • A gravação é real
  • O progresso mostrado é verdadeiro
  • Quando termina, terminou mesmo

status=progress

Mostra o andamento em tempo real.


sync no final

Garante que qualquer dado pendente seja finalizado antes de remover o pendrive.


O que você NÃO deve fazer (erro comum)

Muitos tutoriais ensinam a formatar o pendrive com mkfs antes. Isso está errado para ISOs bootáveis.

A ISO já possui:

  • Tabela de partições
  • Sistema de arquivos
  • Estrutura de boot

Formatar antes é desnecessário e pode até causar problemas.


Resumo do comando ideal

sudo dd if=imagem.iso of=/dev/sdX bs=16M oflag=direct status=progress && sync

Troque apenas:

  • imagem.iso
  • /dev/sdX

Quer saber mais?

man dd
dd --help

Agora você pode gravar qualquer ISO bootável no pendrive da forma correta, rápida e segura, usando apenas o que já vem no seu Linux.