Discussion:
Ayuda con dd
Lucas Nogueron
2010-06-24 02:16:17 UTC
Permalink
Hola gente!:

Estoy pensando en hacer un backup con el programita "g4u". La idea es,
como paso previo, llenar con ceros el espacio no utlizado del mi disco
de 20GB, de manera que despues al comprimir la imagen se me genere una
imagen mucho menor del hdd.

Para esto se sugiere:

dd if=/dev/zero of=/0bits bs=20971520
rm /0bits

Pero no me cierra "bs=20971520" que son 20 MB , que es el tamaño del
bloque ¿Por que este valor en particular? Si me traducen q es
exactamente lo que hace este comando se los agradecería.

Saludos
--
Hay 10 tipos de personas, las que saben binario y las que no.

Luxas
Emiliano Castagnari
2010-06-24 03:58:55 UTC
Permalink
Post by Lucas Nogueron
dd if=/dev/zero of=/0bits bs=20971520
rm /0bits
Pero no me cierra "bs=20971520" que son 20 MB ,  que es el tamaño del
bloque ¿Por que este valor en particular? Si me traducen q es
exactamente lo que hace este comando se los agradecería.
Lucas,

bs, o blocksize es simplemente eso, la cantidad de informacion que
vas leer / copiar en una operacion.

Por defecto, dd utiliza bloques de 512 bytes, lo que puede hacer que
una operacion de copiado de un gran volumen de datos pueda tardar
mucho tiempo. Si el bs es chico, vas a malgastar recursos realizando
lecturas y escrituras de poca informacion. Por otra parte, la relacion
tamaño de bloque y velocidad de copiado, no es lineal (si pones 1T no
te va a copiar todo de una ;).

Esos 20MB no te van a hacer daño, y de hecho, te recomendaria que
juegues con ese valor para ver donde esta el punto en el cual deja de
ser util incrementar el bs.

Saludos
--
# Emiliano Castagnari - (aka Torian)
--=========================--
Lucas Nogueron
2010-06-24 16:57:07 UTC
Permalink
El día 24 de junio de 2010 00:58, Emiliano Castagnari
Post by Emiliano Castagnari
Post by Lucas Nogueron
dd if=/dev/zero of=/0bits bs=20971520
rm /0bits
Pero no me cierra "bs=20971520" que son 20 MB ,  que es el tamaño del
bloque ¿Por que este valor en particular? Si me traducen q es
exactamente lo que hace este comando se los agradecería.
Lucas,
 bs, o blocksize es simplemente eso, la cantidad de informacion que
vas leer / copiar en una operacion.
 Por defecto, dd utiliza bloques de 512 bytes, lo que puede hacer que
una operacion de copiado de un gran volumen de datos pueda tardar
mucho tiempo. Si el bs es chico, vas a malgastar recursos realizando
lecturas y escrituras de poca informacion. Por otra parte, la relacion
tamaño de bloque y velocidad de copiado, no es lineal (si pones 1T no
te va a copiar todo de una ;).
 Esos 20MB no te van a hacer daño, y de hecho, te recomendaria que
juegues con ese valor para ver donde esta el punto en el cual deja de
ser util incrementar el bs.
.


Gracias Emiliano. Me quedo tranquilo con "bs". Pero todavia no me
cierra /dev/zero ... segun wikipedia:

"En sistemas operativos tipo Unix, /dev/zero es un archivo especial
que provee tantos caracteres null (ASCII NUL, 0x00; no el carácter
ASCII "0", 0x30) como se lean desde él. Uno de los usos típicos es
proveer un flujo de caracteres para sobreescribir información. Otro
uso puede ser para generar un archivo "limpio" de un determinado
tamaño. Usando mmap para mapear /dev/zero al espacio de memoria
virtual, es la manera en que BSD implementa memoria compartida."

He visto que lo usan para generar un archivo con "ceros" de un
determinado tamaño. Pero ..¿como se logra el objetivo de llenar
espacios disponibles del rigido con ceros?. Acaso /dev/zero contiene
esa informacion? por lo tanto despues con:

#rm /0bits

borro un archivo de tamaño igual a espacios disponibles en el rigido
que han sido "cereados"?
--
Hay 10 tipos de personas, las que saben binario y las que no.

Luxas
Pablo Fredrikson
2010-06-24 18:11:59 UTC
Permalink
Post by Lucas Nogueron
El día 24 de junio de 2010 00:58, Emiliano Castagnari
Post by Emiliano Castagnari
Post by Lucas Nogueron
dd if=/dev/zero of=/0bits bs=20971520
rm /0bits
Pero no me cierra "bs=20971520" que son 20 MB ,  que es el tamaño del
bloque ¿Por que este valor en particular? Si me traducen q es
exactamente lo que hace este comando se los agradecería.
Lucas,
 bs, o blocksize es simplemente eso, la cantidad de informacion que
vas leer / copiar en una operacion.
 Por defecto, dd utiliza bloques de 512 bytes, lo que puede hacer que
una operacion de copiado de un gran volumen de datos pueda tardar
mucho tiempo. Si el bs es chico, vas a malgastar recursos realizando
lecturas y escrituras de poca informacion. Por otra parte, la relacion
tamaño de bloque y velocidad de copiado, no es lineal (si pones 1T no
te va a copiar todo de una ;).
 Esos 20MB no te van a hacer daño, y de hecho, te recomendaria que
juegues con ese valor para ver donde esta el punto en el cual deja de
ser util incrementar el bs.
.
Gracias Emiliano. Me quedo tranquilo con "bs". Pero todavia no me
"En sistemas operativos tipo Unix, /dev/zero es un archivo especial
que provee tantos caracteres null (ASCII NUL, 0x00; no el carácter
ASCII "0", 0x30) como se lean desde él. Uno de los usos típicos es
proveer un flujo de caracteres para sobreescribir información. Otro
uso puede ser para generar un archivo "limpio" de un determinado
tamaño. Usando mmap para mapear /dev/zero al espacio de memoria
virtual, es la manera en que BSD implementa memoria compartida."
He visto que lo usan para generar un archivo con "ceros" de un
determinado tamaño. Pero ..¿como se logra el objetivo de llenar
espacios disponibles del rigido con ceros?. Acaso /dev/zero contiene
#rm /0bits
borro un archivo de tamaño igual a espacios disponibles en el rigido
que han sido "cereados"?
--
Hay 10 tipos de personas, las que saben binario y las que no.
Luxas
No, lo que estas haciendo con ese comando es crear una imagen "vacia"
de un peso especifico, si haces:

dd if=/dev/zero of=hola.iso bs=20000

vas a crear una iso llamada hola.iso que pesa 20mb y no tiene nada
adentro, para que sirve? por ejemplo, la montas y le metes cosas y
despues la desmontás

cuando la borres, vas a borrar un archivo .iso de 20mb y nada mas,
/dev/zero no equivale a tus "ceros" en el disco, no tiene nada que
ver, simplemente es un archivo
--
Pablo Fredrikson
Emiliano Castagnari
2010-06-24 21:33:40 UTC
Permalink
Post by Pablo Fredrikson
vas a crear una iso llamada hola.iso que pesa 20mb y no tiene nada
adentro, para que sirve? por ejemplo, la montas y le metes cosas y
despues la desmontás
cuando la borres, vas a borrar un archivo .iso de 20mb y nada mas,
/dev/zero no equivale a tus "ceros" en el disco, no tiene nada que
ver, simplemente es un archivo
En realidad lo que pasa es que creas un archivo con 0s, que crece
hasta que no haya mas lugar en la particion (dd te va a decir que no
hay mas espacio, y se va a cortar la ejecucion). Esto, te asegura que
la particion esta toda usada, pero con ceros.

Cuando borras el archivo, en realidad no borras la informacion del
disco, sino que simplemente eliminas la informacion del sistema de
archivos que te dice como acceder a esa porcion de datos.

Resumiendo, creas un archivo cuan grande te permita la particion, con
ceros, despues lo borras. Terminas teniendo tu particion con los datos
que queres backupear, y muchos ceros, por esto, cuando la comprimas,
va a ser equivalente (como maximo, todo depende de lo que haya en el
disco) a los datos que realmente tenes.

Saludos
--
# Emiliano Castagnari - (aka Torian)
--=========================--
Lucas Nogueron
2010-06-24 22:00:30 UTC
Permalink
El día 24 de junio de 2010 18:33, Emiliano Castagnari
Post by Emiliano Castagnari
Post by Pablo Fredrikson
vas a crear una iso llamada hola.iso que pesa 20mb y no tiene nada
adentro, para que sirve? por ejemplo, la montas y le metes cosas y
despues la desmontás
cuando la borres, vas a borrar un archivo .iso de 20mb y nada mas,
/dev/zero no equivale a tus "ceros" en el disco, no tiene nada que
ver, simplemente es un archivo
En realidad lo que pasa es que creas un archivo con 0s, que crece
hasta que no haya mas lugar en la particion (dd te va a decir que no
hay mas espacio, y se va a cortar la ejecucion). Esto, te asegura que
la particion esta toda usada, pero con ceros.
Cuando borras el archivo, en realidad no borras la informacion del
disco, sino que simplemente eliminas la informacion del sistema de
archivos que te dice como acceder a esa porcion de datos.
Resumiendo, creas un archivo cuan grande te permita la particion, con
ceros, despues lo borras. Terminas teniendo tu particion con los datos
que queres backupear, y muchos ceros, por esto, cuando la comprimas,
va a ser equivalente (como maximo, todo depende de lo que haya en el
disco) a los datos que realmente tenes.
Clarisimo Emiliano. Ahora entiendo como lo hace, dd es la navaja suiza
de linux.Gracias.

Saludos
--
Hay 10 tipos de personas, las que saben binario y las que no.

Luxas
Loading...