Posted by q3it on sábado, abril 20, 2024 in Linux
Otro comando muy útil para hacer copias de seguridad es el comando dd, y lo que hace es copiar datos a bajo nivel, es utilizado para hacer copias de seguridad de dispositivos de disco entero, de una partición a otro disco o a un fichero.
La sintaxis es dd if= de "input file" luego una entrada, normalmente va a ser un dispositivo por ejemplo, dev/sda1, luego of= de "output file" que indica donde lo queremos copiar, puede ser un fichero o puede ser otro dispositivo.
dd if=entrada of=salida [opciones]
Y también vemos que acepta opciones como:
- bs=x cuántos datos vamos a ir leyendo del fichero del dispositivo de entrada, por ejemplo, 1MB o 4MB.
- count=x para repeticiones. Normalmente se utiliza cuando queremos crear ficheros vacíos.
dd if=/dev/zero of=swap.img bs=4M count=256
dd if=/dev/sda1 of=/dev/sdb1 bs=1M
es recomendable utilizar 1MB para que sea más rápido, si no va ir de bloque en bloque y nos llevará más tiempo.
Vamos a ver como se ve esto en consola. Si queremos crear el fichero swap.img ejecutamos el comando anterior.
La instrucción se ha ejecutado correctamente creando un fichero de 1GB, con un tiempo de ejecución de 0.48 segundos y a una velocidad de 2.2GB/s. Si vamos al directorio /Documents veremos que ahí se encuentra el fichero swap.img.
También el comando dd es útil para ver cuál es la velocidad de nuestro disco, en este caso vemos que tenemos un disco bastante rápido porque ha escrito a 2.2 GB/s.
En post anteriores explique como se crea una partición swap, pero ahora voy a tomar información referenciada de ibliblio.org para el tratamiento de de dicho archivo.
Un archivo de swap es un archivo común, y no necesita ningún tratamiento especial para el kernel. Lo único que le interesa al kernel es que este no tenga huecos y que esté preparado para ser utilizado por el utilitario mkswap. Este debe residir en un disco local, y no puede residir en un disco montado a través de NFS por razones de implementación.
El bit que indica espacios vacíos es importante. El archivo swap reserva espacio en disco de forma que el kernel pueda swapear una página rápidamente sin tener que atravesar por todas las cosas que son necesarias cuando aloca un sector de disco para un archivo. El kernel simplemente utiliza cualquier sector que ya haya sido alocado para el archivo. Debido a que un hueco en un archivo significa que no hay sectores de discos alocados (para ubicar en ese archivo) no es bueno que el kernel trate de hacer uso del mismo.
Una vez creado el archivo o la partición de swap, es necesario escribir unas marcas al comienzo del mismo que contienen información administrativas utilizadas por el kernel. El comando para realizar esto es mkswap, y la forma es la siguiente:
Una vez creado el archivo o la partición de swap, es necesario escribir unas marcas al comienzo del mismo que contienen información administrativas utilizadas por el kernel. El comando para realizar esto es mkswap, y la forma es la siguiente:
Nótese que el espacio swap aun no es usado, este existe, pero el kernel aun no hace uso de este para proveer memoria virtual.
Y Se debe ser muy cuidadoso cuando se usa el comando mkswap, ya que este no chequea que el archivo o la partición no estén siendo usados por alguien más. Se puede fácilmente sobre escribir importantes archivos y particiones con mkswap! Por suerte este comando solo debería ser necesario cuando se instala el sistema.