Clonar Linux DD Command
Clonar Linux DD Command
Disk)
Data loss will be costly. At the very least, critical data loss will have a financial impact
on companies of all sizes. In some cases, it can cost your job. Ive seen cases where
sysadmins learned this in the hard way.
There are several ways to backup a Linux system, including rsync and rsnapshot that we
discussed a while back.
This article provides 6 practical examples on using dd command to backup the Linux
system. dd is a powerful UNIX utility, which is used by the Linux kernel makefiles to
make boot images. It can also be used to copy data. Only superuser can execute dd
command.
Warning: While using dd command, if you are not careful, and if you dont know what
you are doing, you will lose your data!
if represents inputfile, and of represents output file. So the exact copy of /dev/sda
will be available in /dev/sdb.
If there are any errors, the above command will fail. If you give the parameter
conv=noerror then it will continue to copy if there are read errors.
Input file and output file should be mentioned very carefully, if you mention source
device in the target and vice versa, you might loss all your data.
In the copy of hard drive to hard drive using dd command given below, sync option
allows you to copy everything using synchronized I/O.
# dd if=/dev/sda of=/dev/sdb conv=noerror,sync
The above creates the image of a harddisk /dev/hda. Refer our earlier article How to
view initrd.image for more details.
The image file hdadisk.img file, is the image of a /dev/hda, so the above command will
restore the image of /dev/hda to /dev/hdb.
dd command reads one block of input and process it and writes it into an output file.
You can specify the block size for input and output file. In the above dd command
example, the parameter bs specifies the block size for the both the input and output
file. So dd uses 2048bytes as a block size in the above command.
Note: If CD is auto mounted, before creating an iso image using dd command, its
always good if you unmount the CD device to avoid any unnecessary access to the CD
ROM.
Muchas veces cuando estamos ejecutando un proceso con el comando dd, una de las cosas
que ms echamos en falta, o yo por lo menos lo hago, es saber en qu punto est y cuanto
le falta. Esto tpicamente se conoce como una barra de progreso. Pues bien, os voy a
ensear un truco que permitir saber el progreso de la ejecucin de dd, aunque no en
forma de barra, pero s lo podra simular. Para saberlo, haremos uso del comando kill. S,
kill se encarga de mandar seales y no slo de matar procesos, aunque efectivamente
algunas de las seales tambin matan los procesos.
Pues bien, vamos a ver a continuacin cmo lograr saber el estado del comando durante
el tiempo. Para ello partimos de una ejecucin de dd, tal como esta, por ejemplo.
shell> dd if=/dev/zero of=file.img bs=1024 count=1048576
Con ello crearemos un fichero de 1,1Gb vaco. Mientras se est ejecutando en otra consola
averiguamos el pid del proceso, ya que tenemos que saber a quin le hay que mandar la
seal.
shell> ps aux |grep dd
javier
17829 ...
javier
17831 ...
grep --color=auto dd
Aqu observamos que el pid del proceso dd es 17829, pues ahora le mandamos una seal
de tipo USR1 para que nos informe del estado del proceso.
shell> kill -USR1 17829
Y cada vez que ejecutemos el kill con dicha sea, lo que nos aparecer ser la informacin
de esta, similar a sta,
739705+0 records in
739705+0 records out
757457920 bytes (757 MB) copied, 11,3332 s, 66,8 MB/s