Eu li muitos guias e mensagens do fórum descrevem como usar dd
, mas uma coisa que notei é que as pessoas sempre usam valores diferentes para o bs=
, count=
e seek=
switches.
Alguém pode explicar exatamente o que essas opções fazem (a página de manual não é muito detalhada) e explicar quais são as melhores configurações para tarefas diferentes, como criar arquivos a partir de / dev / random ou / dev / zero e substituir partições e unidades externas.
Respostas:
Realmente não sei como explicar isso melhor do que a página de manual.
bs=
define o tamanho do bloco, por exemplo,bs=1M
seria 1MiB tamanho do bloco.count=
copia apenas esse número de blocos (o padrão é que o dd continue para sempre ou até que a entrada acabe). Idealmente, os blocos são dobs=
tamanho, mas pode haver leituras incompletas; portanto, se você usarcount=
para copiar uma quantidade específica de dados (count*bs
), também deverá forneceriflag=fullblock
.seek=
procura esse número de blocos na saída, em vez de gravar no início do dispositivo de saída.Assim, por exemplo, isso copia 1MiB
y\n
para a posição 8MiB do arquivo de saída. Portanto, o tamanho total do arquivo será 9MiB.Desde que você mencione
/dev/random
e sobrescreva partições ... levará uma eternidade, pois/dev/random
(assim como/dev/urandom
) é muito lento. Você pode simplesmente usarshred -v -n 1
, é rápido e geralmente está disponível em qualquer lugar.fonte
Ok, você disse que as páginas de manual não são detalhadas, por isso vou explicar o que elas significam com metáforas fáceis de entender sobre um cara em movimento (que se chama
dd
):dd
pega alguma coisa (caixas, vasos, camas, arroz, etc.), move-se para onde precisa e deixa-a. Até que ele não solte a carga, ele não escolhe mais nada. Agora, quando você precisa dizer a ele exatamente quantos objetos ele deve escolher por viagem, é isso quebs
faz. Você define a quantidade de dados que ele lerá e gravará. Isso é quase obrigatório em todos os comandos úteis e comuns.Isso determina a quantidade total de caixas que ele moverá. Caixas neste contexto são os blocos no disco . Você diz a ele para mover 5 caixas, ele só move 5 caixas mesmo que haja mais de 5 caixas (se houver menos de 5 caixas, ele pegará um vaso que encontrou além das caixas para adicioná-lo). Se você disser
dd
paracount
apenas 5 e escrevê-lo em algum lugar, ele copiaria os 5 primeiros blocos que ele vê e os escreveria onde quiser.O cara normalmente encontra o primeiro local disponível para descartar a carga, normalmente no início (do disco) e continua preenchendo até o final. Bem, com isso você diz
dd
para começar mais, digamos, em vez do corredor, comece em um dos quartos mais ao interior. Apenas "pula" os blocos de partida.Agora, dependendo do que você estiver fazendo, você precisará de diferentes combinações com base na origem e destino, juntamente com o formato em que elas serão lidas e gravadas. Eu recomendo que você procure por eles separados.
fonte