Eu 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 blocos de tamanho de 1MiB.
count=
copia apenas esse número de blocos (o padrão é que o dd continue sempre ou até que a entrada acabe). O ideal é que os blocos sejam de bs=
size, mas pode haver leituras incompletas, portanto, se você usar count=
para copiar uma quantidade específica de dados ( count*bs
), também deverá fornecer iflag=fullblock
.
seek=
procura esse número de blocos na saída, em vez de gravar no início do dispositivo de saída.
Portanto, por exemplo, isso copia 1 MiB de y\n
para a posição 8 MiB do arquivo de saída. Então o tamanho total do arquivo será 9MiB.
$ yes | dd bs=1M count=1 seek=8 iflag=fullblock of=outputfile
$ ls -alh outputfile
9.0M Jun 3 21:02 outputfile
$ hexdump -C outputfile
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00800000 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a |y.y.y.y.y.y.y.y.|
*
00900000
Como você mencionou /dev/random
e sobrescreve as partições ... demorará uma eternidade, pois /dev/random
(assim como /dev/urandom
) é muito lento. Você poderia usar apenas shred -v -n 1
, isso é rápido e geralmente está disponível em qualquer lugar.