Clear PVs with dd

Si nos encontramos con la necesidad de limpiar el un disco de alguna información que contenga, podemos usar la herramienta dd:

Ejecutar:

# dd if=/dev/zero /dev/hdisk

bs=8192 count=100

100+0 records in

100+0 records out

Para consultar que se ejecutara correctamente:

# lquerypv -h /dev/hdiskX

00000000   00000000 00000000 00000000 00000000  |................|

00000010   00000000 00000000 00000000 00000000  |................|

00000020   00000000 00000000 00000000 00000000  |................|

00000030   00000000 00000000 00000000 00000000  |................|

00000040   00000000 00000000 00000000 00000000  |................|

00000050   00000000 00000000 00000000 00000000  |................|

00000060   00000000 00000000 00000000 00000000  |................|

00000070   00000000 00000000 00000000 00000000  |................|

00000080   00000000 00000000 00000000 00000000  |................|

00000090   00000000 00000000 00000000 00000000  |................|

000000A0   00000000 00000000 00000000 00000000  |................|

000000B0   00000000 00000000 00000000 00000000  |................|

000000C0   00000000 00000000 00000000 00000000  |................|

000000D0   00000000 00000000 00000000 00000000  |................|

000000E0   00000000 00000000 00000000 00000000  |................|

000000F0   00000000 00000000 00000000 00000000  |................|

Otros ejemplos útiles:

dd if=/dev/urandom of=/dev/sda bs=4k -» Llena el disco con datos aleartorios

dd if=/dev/sda of=/dev/sdb bs=4096 -» Duplicación disco-a-disco

dd if=/dev/zero of=/dev/sda bs=4k -» Limpia un disco duro (puede necesitar ser repetido)

dd if=inputfile of=/dev/st0 bs=32k conv=sync -» Copia de archivo a dispositivo de cinta

dd if=/dev/st0 of=outfile bs=32k conv=sync -» El anterior, invertido

dd if=/dev/sda | hexdump -C | grep [^00] -» Verifica si el disco está realmente puesto a cero

dd if=/dev/urandom of=/home/$user/hugefile bs=4096 -» Llena una partición (¡Cuidado con las particiones de sistema!)

dd if=/dev/urandom of=myfile bs=6703104 count=1 -» Codifica un archivo (tal vez antes de borrarlo)

dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror -» Copia una partición hacia otra partición

dd if=/proc/filesystems | hexdump -C | less -» Visualiza los sistemas de ficheros disponibles

dd if=/proc/partitions | hexdump -C | less -» Visualiza las particiones disponibles en kb

dd if=/dev/sdb2 ibs=4096 | gzip > partition.image.gz conv=noerror -» Crea una imagen gzip de la segunda partición del segundo disco

dd bs=10240 cbs=80 conv=ascii,unblock if=/dev/st0 of=ascii.out -» Copia el contenido de una cinta a un archivo, convirtiendo de EBCDIC a ASCII

dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1 -» Copia de un dispositivo de bloques de 1KB a un dispositivo de bloques de 2KB

dd if=/dev/zero of=/dev/null bs=100M count=100

100+0 records in

100+0 records out

10485760000 bytes (10 GB) copied,

5.62955 s, 1.9 GB/s

Copia 10 GB de ceros a la papelera de reciclaje.

dd if=/dev/zero of=/dev/sda bs=512 count=2

fdisk -s /dev/sda

dd if=/dev/zero of=/dev/sda seek=(number_of_sectors – 20) bs=1k

Borra GPT del disco. Como GPT escribe los datos al principio

Y al final del disco, después de borrar desde el principio, tenemos que encontrar el número de sectores (el segundo comando), y entonces borrar los 20 últimos sectores.

dd if=/home/$user/bootimage.img of=/dev/sdc -» Crea un disco UDB booteable (mostrado aquí como /dev/sdc)

dd if=/dev/sda of=/dev/null bs=1m -» Una buena manera de buscar bloques malos. Relacionados con respaldos y sistemas

dd if=/dev/sda of=/dev/fd0 bs=512 count=1 -» Copia el MBR a un disco flexible

dd if=/dev/sda1 of=/dev/sdb1 bs=4096 -» Duplicación disco-a-disco

dd if=/dev/sr0 of=/home/$user/mycdimage.iso\ bs=2048 conv=nosync -» Crea una imagen de un CD

mount -o loop /home/$user/mycdimage.iso /mnt/cdimages/ -» Monta localmente la imagen mencionada

dd if=/dev/sda of=/dev/sdb bs=64k conv=sync -» Útil cuando se reemplaza un disco por otro de idéntico tamaño.

dd if=/dev/sda2 of=/home/$user/hddimage1.img bs=1M count=4430

dd if=/dev/sda2 of=/home/$user/hddimage2.img bs=1M count=8860

[...]

Crea imágenes en DVD de una partición (útil para hacer respaldos)

dd if=/$location/hddimage1.img of=/dev/sda2 bs=1M

dd if=/$location/hddimage2.img of=/dev/sda2 seek=4430 bs=1M

dd if=/$location/hddimage3.img of=/dev/sda2 seek=8860 bs=1M

[etc...]

Restaura del respaldo anterior

dd if=/dev/zero count=1 bs=1024 seek=1 of=/dev/sda6 -» Destruye el superbloque

dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/sda5 -» Otra forma de destruir el superbloque

dd if=/home/$user/suspicious.doc | clamscan -» Verifica el archivo en busca de virus (necesita ClamAV)

dd if=/home/$user/binary file | hexdump -C | less -» Ver el contenido de un archivo binario (necesita hexdump)

dd if=/home/$user/bigfile of=/dev/null

dd if=/dev/zero of=/home/$user/bigfile bs=1024 count=1000000

Realiza un benchmark de la velocidad de lectura/escritura del disco duro

dd if=/dev/sda of=/dev/sda -» Da nueva vida a viejos discos duros que no han sido usados por un tiempo (los discos deben estar “unmounted”)

dd if=/dev/mem | strings | grep ‘string_to_search’ -» Examina el contenido de la memoria (legible para humanos, es decir)

dd if=/dev/fd0 of=/home/$user/floppy.image bs=2x80x18b conv=notrunc -» Copia un disco flexible

dd if=/proc/kcore | hexdump -C | less -» Muestra la memoria virtual

dd if=/proc/filesystems | hexdump -C | less -» Visualiza los sistemas de ficheros disponibles

dd if=/proc/kallsyms | hexdump -C | less -» Muestra los módulos cargados

dd if=/proc/interrupts | hexdump -C | less -» Muestra la tabla de interrupciones

dd if=/proc/uptime | hexdump -C | less -» Muestra el tiempo de actividad en segundos

dd if=/proc/partitions | hexdump -C | less -» Visualiza las particiones disponibles en kb

dd if=/proc/meminfo | hexdump -C | less -» Muestra el estado de la memoria

dd if=/dev/urandom of=/home/$user/myrandom bs=100 count=1 -» Crea un archivo de 1kb de jerigonza aleatoria

dd if=/dev/mem of=/home/$user/mem.bin bs=1024 -» Crea una imagen del estado actual de la memoria del sistema

dd if=/home/$user/myfile -» Imprime el archivo a stdout

dd if=/dev/sda2 bs=16065 | hexdump -C | grep ‘text_to_search’ -» Busca una cadena en una partición entera; incluso si está asegurada, usted puede bootear un liveCD

dd if=/home/$user/file.bin skip=64k bs=1 of=/home/$user/convfile.bin -» Copia file.bin a convfile.bin saltándose los primeros 64 kb

dd if=/home/$user/bootimage.img of=/dev/sdc -» Crea un disco UDB booteable (mostrado aquí como /dev/sdc)

dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 -» Lee la BIOS.

dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k -» Convierte una imagen de Nero en una imagen ISO estándar.

Esto es posible porque la única diferencia entre las dos son los 300 kB de encabezamiento que Nero adiciona a una imagen ISO estándar.

echo -n “hello vertical world” | dd cbs=1 conv=unblock 2> /dev/null -» Inténtalo, es seguro. :-)

dd if=/dev/sda1 | gzip -c | split -b 2000m – \ /mnt/hdc1/backup.img.gz -» Crea una imagen gzip de una partición utilizando división

cat /mnt/hdc1/backup.img.gz.* | gzip -dc | dd of=/dev/sda1 -» Restaura el respaldo anterior

dd if=/dev/zero of=myimage bs=1024 count=10240 -» Crea una imagen vacía del disco

dd ibs=10 skip=1 -» Divide los primeros 10 bytes de stdin

dd bs=265b conv=noerror if=/dev/st0 of=/tmp/bad.tape.image -» Hace una imagen de una cinta con sitios malos

dd if=/dev/sda count=1 | hexdump -C -» Visualiza su MBR

dd if=/dev/sda | nc -l 10001 nc $system_to_backup_IP 10001 | dd of=sysbackupsda.img -» Respaldo rápido de la red usando netcat

dd if=/dev/zero of=/dev/sdX bs=1024000 count=1 -» Limpia los primeros 10MB de la partición

dd if=/dev/zero of=tmpswap bs=1k

count=1000000

chmod 600 tmpswap

mkswap tmpswap

swapon tmpswap

Crea un espacio temporal de intercambio

dd if=/dev/sda of=/dev/null bs=1024k count=1024

1073741824 bytes (1.1 GB) copied,

24.1684 s, 44.4 MB/s

Determina la velocidad secuencial de I/O de su disco.

dd if=/dev/random count=1 2>/dev/null | od -t u1 |\ awk ‘{ print $2}’ | head -1 -» Genera un número aleatorio

dd if=/dev/mem of=myRAM bs=1024 -» Copia la memoria RAM hacia un archivo

dd if=/dev/sda bs=512 count=1 | od -xa -» Ver el contenido de su MBR en formato hex y ASCII

dd if=/my/old/mbr of=/dev/sda bs=446 count=1 -» Restaura el MBR sin alterar el registro de la tabla de partición el cual está entre 447 – 511 bytes

dd if=/dev/sda1 | split -b 700m – sda1-image -» Crea una copia de la partición y salva imágenes donde el tamaño máximo del volumen es 700MB

ls -l | dd conv=ucase -» Convierte la salida de un comando en mayúsculas

echo “MY UPPER CASE TEXT” | dd conv=lcase -» Convierte cualquier texto a minúsculas

dd if=/etc/passwd cbs=132 conv=ebcdic of=/tmp/passwd.ebcdic -» Convierte el archivo de contraseñas del sistema a un archivo de longitud fija de formato EBCDIC

dd if=text.ascii of=text.ebcdic conv=ebcdic -» Convierte de ASCII a EBCDIC

dd if=myfile of=myfile conv=ucase -» Convierte un archivo a mayúsculas (simple SED o reemplazo tr)

Fuente de los ejemplo:

http://blog.desdelinux.net/