unix dd – ¿Cuál es la diferencia entre 'bs', 'count' y 'seek' en el comando dd?

Pregunta:

He leído muchas guías y publicaciones en foros que describen cómo usar dd , pero una cosa que he notado es que la gente siempre usa valores diferentes para los interruptores bs= , count= y seek= .

Por favor, ¿alguien puede explicar qué hacen exactamente estos conmutadores (la página de manual no es muy detallada) y explicar cuáles son las mejores configuraciones para diferentes tareas, como crear archivos desde / dev / random o / dev / zero, y sobrescribir particiones y unidades externas.

Respuesta:

Realmente no sé cómo explicar esto mejor que la página de manual.

bs= establece el tamaño del bloque, por ejemplo, bs=1M sería un tamaño de bloque 1MiB.

count= copia solo este número de bloques (el valor predeterminado es que dd continúe para siempre o hasta que se agote la entrada). Idealmente, los bloques son de tamaño bs= pero puede haber lecturas incompletas, por lo que si usa count= para copiar una cantidad específica de datos ( count*bs ), también debe proporcionar iflag=fullblock .

seek= busca este número de bloques en la salida, en lugar de escribir al principio del dispositivo de salida.

Entonces, por ejemplo, esto copia el valor de 1MiB de y\n en la posición 8MiB del archivo de salida. Entonces el total 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

Ya que menciona /dev/random y sobrescribe particiones … tomará una eternidad ya que /dev/random (así como /dev/urandom ) es demasiado lento. En su lugar, podría usar shred -v -n 1 , que es rápido y generalmente está disponible en cualquier lugar.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım