Veo ejemplos en línea todo el tiempo de uso dden combinación con pvpara mostrar el progreso ... Pero, algo que no entiendo es que pves perfectamente capaz de hacer la tarea por sí solo. Entonces, ¿por qué usar ddtambién? ¿Existe alguna ventaja ddque pvno sea así?
Ejemplos usando ambos ddy pv. Algunos de estos son realmente complicados ...
dd if=/dev/sda | pv | dd of=/mnt/backup.img
dd if=/dev/sda | pv -s 10G | dd of=/mnt/backup.img
dd if=/dev/sda | (pv -s `fdisk -l /dev/sda | grep -o '[0-9]*\{1\} MB' | awk '{print $1}'`m) | dd of=/mnt/backup.img
Puedes lograr lo mismo usando pvsolo haciendo
pv /dev/sda > /mnt/backup.img
linux
command-line
dd
disk-image
Drew Chapin
fuente
fuente

pvestá haciendo, pero no entiendo lo queddestá haciendo y no lo estápv. Entonces, cambié el título a "¿qué hace dd que no hace el pv?"pv /dev/sda > /mnt/backup.img,pv¿no se lee desde una tubería? Está leyendo desde el archivo del dispositivo.Respuestas:
Bueno,
pvsolo proporciona una visión de una operación de tubería, por lo que la verdadera pregunta es si la tubería / redirección es equivalente add. La respuesta, por supuesto, es no.Si bien
ddpuede parecer que los casos simples de uso funcionan de manera similar a la redirección o canalización de E / S,ddes una herramienta bastante complicada con muchas características relacionadas con la conversión de datos de archivos (las tuberías apenas saben qué es un archivo, y mucho menos qué tipo de orden de bytes / codificarlo es), mientras que la redirección solo empuja bits, ypvsolo observa los datos que pasan por una tubería, sin comprenderlo más que contando bytes.ddcomprende estructuras de disco como bloques y direcciones, de las cualespvno tiene conocimiento.ddinteractúa con el núcleo en el nivel del controlador, mientras quepvocurre por encima de una gran cantidad de abstracción de E / S.por ejemplo,
ddpodría tomar la copia de seguridad del MBR de un disco (siempre en el bloque 63) con:No hay una forma limpia de hacerlo con la redirección / tubería.
fuente
pvun error al leer? Sé lo que pasa cuando lo usasdd. Se detiene ... Además, debepvtener una bandera para especificar cuántos bytes leer. así que podría hacer una copia de seguridad de los primeros 512 bytes, pero no podría saltarse los primeros 62.$ ltrace pv </dev/zero >/dev/nullmuestra pv usando un tamaño de bloque de 128 KB. Puede decir pv -s 2M y luego usa 2MB. Por lo tanto, pv le permite especificar totalmente el tamaño del bloque y está en man pv.