hispalis70
Usuari@ ADSLzone
- Mensajes
- 3,851
Clonar, grabar discos y mas cosas, facilmente con dd.
El comando dd (Dataset Definition), es una herramienta sencilla, útil, y sorprendente a la vez que desconocida. Esta herramienta fue creada a mediados de los 70 en principio para Unix, simplemente porque no existía. Pero al contrario que otras herramientas que desde su creación se han ido sofisticando, está se ha ido simplificando, hasta el punto de poder hacer lo mismo que buenos programas comerciales como Norton Ghost o libres como CloneZilla, con solo una pequeña linea de comandos.
Ni que decir tiene que toda la información de dd, la podéis consultar con el comando man dd e info dd, también dos grandes olvidados...
Al lio...
Lo primero siempre es tener claro el disco de origen y el de destino, algo que averiguamos fácilmente con el comando sudo fdisk -l
La sintaxis mas básica, seria esta:
sudo dd if=<origen> of=<destino>
Por lo que si quisiéramos clonar un disco duro:
sudo dd if=/dev/hda of=/dev/hdb bs=1M con esto clonaríamos el disco hda en hdb. (discos IDE)
sudo dd if=/dev/sda of=/dev/sdb bs=1M para discos SATA
Con bs=1M, estamos diciendo que tanto la lectura como la escritura se haga en bloques de 1 megabyte, (menos, seria mas lento pero mas seguro, y con mas nos arriesgamos a perder datos por el camino).
Hay que tener en cuenta que de esta forma grabaras el disco “tal cual”, MBR, tabla de particiones, espacio vacío, etc..., por lo que solo podrás grabar en un disco del mismo o mayor tamaño.
Vamos a ver algunos ejemplos prácticos y opciones de este comando:
sudo dd if=/dev/hda1 of=/dev/hdb bs=1M Grabaríamos solo la primera partición del disco de origen en el de destino.
sudo dd if=/dev/hda of=/dev/hdb1 bs=1M Grabaríamos el disco completo en la primera partición del disco de destino.
sudo dd if=/dev/hda of=/home/hda.bin Crear una imagen del disco duro, puede ser bin o iso (a partir de ahora utilizaré nuestro home como ejemplo).
sudo dd if=/dev/hda | gzip > /home/hda.bin.gz Crear una imagen del disco comprimida, (podemos utilizar gzip, bzip o bzip2.)
sudo dd if=/dev/cdrom of=/home/imagendeCD.iso Crea una imagen de un CD
sudo mount -o loop imagedeCD.iso /mnt/home Para montar la imagen del CD
sudo dd if=/dev/hda of=mbr count=1 bs=512 Copiar el Master Boot Record (MBR)
sudo dd if=mbr of=/dev/hda Para restaurar el MBR
sudo dd if=/dev/hda of=/home/sector_arranque_hda count=1 bs=512 Copiar el Volume Boot Sector (VBS)
sudo dd if=/home/sector_arranque_hda of=/dev/hda Para restaurar el VBS.
Algunas curiosidades:
sudo dd if=/dev/cdrom of=/home/dvd_recuperado.iso conv=noerror,sync Recuperar un DVD rayado (Esto no recupera todo el DVD, en este caso, solo los sectores legibles). Sirve también para discos duros defectuosos.
La opción noerror, sirve para obviar los errores de lectura en cualquier situación. Otro ejemplo seria:
sudo dd conv=noerror if=/dev/hda of=~/home/imagen_disco_con_errores.iso Grabaríamos una imagen del disco en nuestro home saltándonos los errores del disco (muy útil para discos que se están muriendo)
sudo dd if=/dev/zero of=/dev/hda bs=512 count=1 Limpia nuestro MBR y la tabla de particiones
sudo dd if=/dev/zero of=/dev/hda bs=446 count=1 Limpia el MBR pero no toca la tabla de particiones, ( muy útil para borrar el GRUB sin perder datos en las particiones)
sudo dd if=/dev/zero of=archivo_nuevo_vacio bs=1024 count=1024 Crea un archivo vacío de 1 Mb, una opción muy interesante como ahora veremos:
sudo dd if=/dev/zero of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace Acabamos de crear un archivo swap de 2Gb así de fácil
Al borde de la paranoia:
sudo dd if=miarchivo of=miarchivo conv=ucase Convierte todas las letras en mayúsculas
sudo dd if=/dev/sda | sed 's/Puigcorbe/Slqh/g' | dd of=/dev/sda Cambia en todo el disco, la palabra Puigcorbe por Slqh, ( puedes cambiar rápidamente tu nombre a todos los archivos del disco)
for n in {1..5}; do dd if=/dev/urandom of=/dev/hda bs=8b conv=notrunc; done Llena el disco con caracteres aleatorios cinco veces. No va a quedar ni rastro de información en el disco
Nota final: Utiliza este comando con precaución, y asegurate siempre del orden y nombre de tus discos, porque lo mismo que te clona un disco te lo borra en un plis.
Fuentes: http://doc.ubuntu-es.org, y los consabidos man dd e info dd.
El comando dd (Dataset Definition), es una herramienta sencilla, útil, y sorprendente a la vez que desconocida. Esta herramienta fue creada a mediados de los 70 en principio para Unix, simplemente porque no existía. Pero al contrario que otras herramientas que desde su creación se han ido sofisticando, está se ha ido simplificando, hasta el punto de poder hacer lo mismo que buenos programas comerciales como Norton Ghost o libres como CloneZilla, con solo una pequeña linea de comandos.
Ni que decir tiene que toda la información de dd, la podéis consultar con el comando man dd e info dd, también dos grandes olvidados...
Al lio...
Lo primero siempre es tener claro el disco de origen y el de destino, algo que averiguamos fácilmente con el comando sudo fdisk -l
La sintaxis mas básica, seria esta:
sudo dd if=<origen> of=<destino>
Por lo que si quisiéramos clonar un disco duro:
sudo dd if=/dev/hda of=/dev/hdb bs=1M con esto clonaríamos el disco hda en hdb. (discos IDE)
sudo dd if=/dev/sda of=/dev/sdb bs=1M para discos SATA
Con bs=1M, estamos diciendo que tanto la lectura como la escritura se haga en bloques de 1 megabyte, (menos, seria mas lento pero mas seguro, y con mas nos arriesgamos a perder datos por el camino).
Hay que tener en cuenta que de esta forma grabaras el disco “tal cual”, MBR, tabla de particiones, espacio vacío, etc..., por lo que solo podrás grabar en un disco del mismo o mayor tamaño.
Vamos a ver algunos ejemplos prácticos y opciones de este comando:
sudo dd if=/dev/hda1 of=/dev/hdb bs=1M Grabaríamos solo la primera partición del disco de origen en el de destino.
sudo dd if=/dev/hda of=/dev/hdb1 bs=1M Grabaríamos el disco completo en la primera partición del disco de destino.
sudo dd if=/dev/hda of=/home/hda.bin Crear una imagen del disco duro, puede ser bin o iso (a partir de ahora utilizaré nuestro home como ejemplo).
sudo dd if=/dev/hda | gzip > /home/hda.bin.gz Crear una imagen del disco comprimida, (podemos utilizar gzip, bzip o bzip2.)
sudo dd if=/dev/cdrom of=/home/imagendeCD.iso Crea una imagen de un CD
sudo mount -o loop imagedeCD.iso /mnt/home Para montar la imagen del CD
sudo dd if=/dev/hda of=mbr count=1 bs=512 Copiar el Master Boot Record (MBR)
sudo dd if=mbr of=/dev/hda Para restaurar el MBR
sudo dd if=/dev/hda of=/home/sector_arranque_hda count=1 bs=512 Copiar el Volume Boot Sector (VBS)
sudo dd if=/home/sector_arranque_hda of=/dev/hda Para restaurar el VBS.
Algunas curiosidades:
sudo dd if=/dev/cdrom of=/home/dvd_recuperado.iso conv=noerror,sync Recuperar un DVD rayado (Esto no recupera todo el DVD, en este caso, solo los sectores legibles). Sirve también para discos duros defectuosos.
La opción noerror, sirve para obviar los errores de lectura en cualquier situación. Otro ejemplo seria:
sudo dd conv=noerror if=/dev/hda of=~/home/imagen_disco_con_errores.iso Grabaríamos una imagen del disco en nuestro home saltándonos los errores del disco (muy útil para discos que se están muriendo)
sudo dd if=/dev/zero of=/dev/hda bs=512 count=1 Limpia nuestro MBR y la tabla de particiones
sudo dd if=/dev/zero of=/dev/hda bs=446 count=1 Limpia el MBR pero no toca la tabla de particiones, ( muy útil para borrar el GRUB sin perder datos en las particiones)
sudo dd if=/dev/zero of=archivo_nuevo_vacio bs=1024 count=1024 Crea un archivo vacío de 1 Mb, una opción muy interesante como ahora veremos:
sudo dd if=/dev/zero of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace Acabamos de crear un archivo swap de 2Gb así de fácil
Al borde de la paranoia:
sudo dd if=miarchivo of=miarchivo conv=ucase Convierte todas las letras en mayúsculas
sudo dd if=/dev/sda | sed 's/Puigcorbe/Slqh/g' | dd of=/dev/sda Cambia en todo el disco, la palabra Puigcorbe por Slqh, ( puedes cambiar rápidamente tu nombre a todos los archivos del disco)
for n in {1..5}; do dd if=/dev/urandom of=/dev/hda bs=8b conv=notrunc; done Llena el disco con caracteres aleatorios cinco veces. No va a quedar ni rastro de información en el disco
Nota final: Utiliza este comando con precaución, y asegurate siempre del orden y nombre de tus discos, porque lo mismo que te clona un disco te lo borra en un plis.
Fuentes: http://doc.ubuntu-es.org, y los consabidos man dd e info dd.