No es necesario usar utilidades como Acronis True Image o Norton Ghost para crear una imagen de un disco duro, basta con una simple utilidad dd, que se incluye con la mayoría de los dispositivos similares a Unix. sistemas operativos(Linux, FreeBSD, Solaris, etc.) Este artículo proporciona una manera fácil de crear respaldo imagen disco duro usando dd. El primer paso es prepararse para la copia de seguridad. En este artículo, introducimos la siguiente notación:

  • /dev/sda - disco del que se creará la imagen;
  • /dev/sdb: el disco donde se escribirá la imagen.

Sustituya sus propios valores si es necesario.

Preparación para crear una imagen de disco duro

El primer paso es arrancar desde cualquier Live-CD disponible que tenga la utilidad dd e ingresar línea de comando como superusuario. Crear un punto de montaje para sostener Copia de reserva.

mkdir /mnt/copia de seguridad

montamos disco duro en el que desea guardar la imagen.

Crear una imagen de disco duro

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,sin error

  • if=/dev/sda - copia todo el disco duro sda;
  • of=/mnt/backup/sda.img - copiar a /mnt/backup/sda.img;
  • bs=8M: establezca el tamaño de la memoria caché del disco duro para acelerar el proceso de copia (de lo contrario, los datos se volcarán en pequeñas porciones de 512 bytes);
  • conv=sync,noerror - dígale a dd que copie bit por bit, ignorando los errores de lectura.

Para reducir el tamaño de una imagen de disco duro, puede comprimirla con cualquier archivador.

dd if=/dev/sda bs=8M conv=sync,sinerror | gzip -c > /mnt/copia de seguridad/sda.img

Restaurar una imagen de disco duro

Para restaurar una imagen de disco duro, debe seguir el procedimiento inverso al procedimiento para crear esta imagen.

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,sin error

Al usar la compresión en paralelo, debe descomprimir la imagen.

gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,sin error bs=8M

Migración del sistema a otro disco duro

Para migrar todo el sistema a otra unidad de disco duro, debe establecer el destino de la nueva unidad como destino.

dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,sin error

Luego, si es necesario, instale el arranque desde dado duro disco. Siempre que nuevo duro el disco es más grande que el anterior, el área sin asignar permanecerá en él. Debe marcarse y formatearse de acuerdo con los requisitos existentes.

Copiar estadísticas en dd

La principal desventaja de dd es la falta de una representación visual de las estadísticas de ejecución del procedimiento de copia. Sin embargo, esta desventaja se puede eludir fácilmente. Basta con conectar a otro terminal.

Determine el número de proceso bajo el cual se ejecuta dd.

Envíe periódicamente a este proceso un comando kill -USR1 dd_process_number.

ver -n 5 matar -USR1 dd_process_number

  • watch -n 5 - ejecuta el comando cada 5 segundos;
  • kill -USR1 dd_process_number - muestra estadísticas de copia.

Muy a menudo, los administradores del sistema tienen que copiar varios datos binarios. Por ejemplo, a veces puede ser necesario hacer una copia de seguridad copia impresa disco, cree un archivo vacío lleno de ceros para organizar el espacio de intercambio u otro sistema de archivos virtual.

Para resolver todas estas tareas se utiliza la utilidad linux dd, que simplemente copia datos de un lugar a otro a nivel binario. Puede copiar un disco CD/DVD, una partición en un disco o incluso un disco duro completo. En este artículo, veremos qué es el comando dd linux, sus principales opciones y parámetros, y cómo usarlo.

Primero debe comprender cómo funciona el comando dd y qué hace. De hecho, este es un análogo de la utilidad solo para datos de bloque. La utilidad simplemente transfiere un bloque de datos del tamaño especificado de un lugar a otro. Debido a que Linux trata todo, incluidos los dispositivos, como archivos, puede mover dispositivos a archivos y viceversa.

Usando varias opciones de utilidad, puede influir en el tamaño del bloque y esto, a su vez, ya afecta la velocidad del programa. A continuación, consideraremos las principales opciones de la utilidad y sus capacidades.

comando dd

La sintaxis de la utilidad es bastante inusual, pero al mismo tiempo muy simple, después de recordarla y acostumbrarse:

$dd si= copiar_fuente de = destino opciones

Con el parámetro if, debe especificar la fuente desde la cual se copiarán los bloques, puede ser un dispositivo, por ejemplo, / dev / sda o un archivo: disk.img. A continuación, utilizando el parámetro of, debe especificar el dispositivo o archivo de destino. Otros parámetros tienen la misma sintaxis que if y of.

Ahora veamos las opciones adicionales:

  • bs- indica cuántos bytes leer y escribir a la vez;
  • cbs- cuántos bytes deben escribirse a la vez;
  • contar- copiar el número especificado de bloques, el tamaño de un bloque se especifica en el parámetro bs;
  • conversión- aplicar filtros al flujo de datos;
  • SII- leer el número especificado de bytes a la vez;
  • observación- escribir el número especificado de bytes a la vez;
  • buscar- omita el número especificado de bytes al comienzo del dispositivo para leer;
  • saltar- omitir el número especificado de bytes al principio del dispositivo de salida;
  • estado- indica qué tan detallado se necesita para llegar a una conclusión;
  • sibandera, debandera- le permite establecer banderas de operación adicionales para el dispositivo de entrada y salida, las principales son: nocache, nofollow.

Estas fueron todas las opciones básicas que podría necesitar. Ahora acerquémonos a la práctica y veamos algunos ejemplos de cómo usar la utilidad dd linux.

como usar dd

Los usuarios habituales utilizan el comando dd con mayor frecuencia para crear imágenes de DVD o CD. Por ejemplo, para guardar una imagen de disco en un archivo, puede usar el siguiente comando:

sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=sin error

El filtro sin errores le permite deshabilitar la respuesta de error. A continuación, puede crear una imagen de un disco duro o una partición en él y guardar esta imagen en el disco. Solo tenga cuidado de no guardar en el mismo disco duro o partición, para no causar recurrencia:

dd if=/dev/sda of=~/disk.img

Se creará un archivo llamado disk1.img en su carpeta de inicio, que puede implementar y restaurar el sistema roto en el futuro. Para escribir una imagen en un disco duro o partición, simplemente intercambie las direcciones del dispositivo:

dd if=~/disk.img of=/dev/sda

Una opción muy importante y útil es bs. Le permite influir en gran medida en la velocidad de la utilidad. Esta opción le permite establecer el tamaño de un bloque al transferir datos. Aquí debe especificar un valor numérico con uno de estos modificadores de formato:

  • Con- un carácter;
  • b- 512 bytes;
  • kB- 1000 bytes;
  • k- 1024 bytes;
  • MEGABYTE- 1000 kilobytes;
  • METRO- 1024 kilobytes;
  • ES- 1000 megabytes;
  • GRAMO- 1024 megabytes.

El comando dd linux usa un sistema de este tipo, es complejo, pero no hay escapatoria. Debe ser entendido y recordado. Por ejemplo, 2b es 1 kilobyte y 1k es también 1 kilobyte, 1M es 1 megabyte. De forma predeterminada, la utilidad utiliza un tamaño de bloque de 512 bytes. Por ejemplo, para acelerar la copia del disco, puede tomar bloques de 5 megabytes de tamaño. Para ello se utiliza el siguiente comando:

dd if=/dev/sda of=~/disk.img bs=5M

El siguiente parámetro es contar. Con él, puede especificar cuántos bloques copiar. Por ejemplo, podemos crear un archivo de 512 megabytes al llenarlo con ceros de /dev/zero o números aleatorios de /dev/random:

sudo dd if=/dev/zero of=file.img bs=1M count=512

Tenga en cuenta que este parámetro no indica el tamaño en megabytes, sino solo la cantidad de bloques. Por lo tanto, si especifica un tamaño de bloque de 1b, solo se necesitan dos bloques para crear un archivo de 1Kb. También puede usar esta opción para hacer una copia de seguridad de la tabla de particiones MBR. Para ello, copie los primeros 512 bytes del disco duro al archivo:

sudo dd if=/dev/sda of=mbr.img bs=1b cuenta=1

Para restaurar, use el comando normal para implementar la imagen en el disco.

Si la imagen del disco es demasiado grande, puede redirigir toda la salida a la salida no estándar de gzip:

dd if=/dev/sda2 | bzip2 disco.img.bz2

También puede usar la utilidad linux dd para copiar archivos, aunque este no es su propósito:

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

Como sabe, el comando linux dd escribe datos en el disco directamente en forma binaria, lo que significa que se escriben ceros y unos. Anulan lo que se colocó previamente en el dispositivo de grabación. Por lo tanto, para borrar un disco, simplemente puede llenarlo con ceros desde /dev/zero.

sudo dd if=/dev/cero de=/dev/sdb

Este uso de dd hace que todo el disco se borre por completo.

conclusiones

En este artículo, analizamos cómo usar dd linux, para qué se puede usar esta utilidad y qué tan útil puede ser. Es casi una herramienta indispensable. administrador de sistema, porque se puede utilizar para hacer una copia de seguridad de todo el sistema. Y ahora ya sabes cómo. Si tienes alguna duda, pregunta en los comentarios!

Usemos la utilidad dd para crear una imagen de una unidad flash con espacio libre para archivar. Una imagen de respaldo será útil si el original deja de funcionar repentinamente con información importante. Por ejemplo, un pendrive con claves privadas de firmas electrónicas de la dirección de la organización. Entonces, tenemos una unidad flash de 4 GB / dev / sdd, cuya información ocupa aproximadamente 90 MB.
du-sh/run/media/aleksey/Transcend

89M /run/media/aleksey/Trascender

Todos los comandos se ejecutan en nombre del usuario. raíz. O, en las respectivas distribuciones, antes de los comandos, agregar sudo.
fdisk -l /dev/sdd

Disco /dev/sdd: 3,7 GiB, 3904897024 bytes, 7626752 sectores Unidades: sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico/físico): 512 bytes/512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes/ 512 bytes Tipo de etiqueta de disco: dos Identificador de disco: 0xc653eaa4 Dispositivo Arranque Inicio Fin Sectores Tamaño Id Tipo /dev/sdd1 2048 7628543 7626496 3.7G b W95 FAT32

Disco /dev/sdd: 3,7 GiB, 3904897024 bytes, 7626752 sectores

Unidades: sectores de 1 * 512 = 512 bytes

Tamaño del sector (lógico/físico): 512 bytes / 512 bytes

Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes

Tipo de etiqueta de disco: dos

Identificador de disco: 0xc653eaa4

Dispositivo Arranque Inicio Fin Sectores Tamaño Id. Tipo

/dev/sdd1 2048 7628543 7626496 3.7G b W95 FAT32

Al crear una imagen simple con el comando
dd if=/dev/sdd of=sdd. iso bs=4M conv=sin error,
nos condenamos a almacenar un archivo de 4 GB. ¿Qué pasaría si la unidad flash fuera de 64 GB? ¿Y no solo? Este problema nos ayudará a resolver el archivador habitual, tome el estándar gzip.
dd if=/dev/sdd bs=4M conv=sin error | gzip-c>sdd. Yo asi. Código Postal
Dónde esta la llave -C le permite trabajar con salida estándar.
Una vez que se completa el trabajo, veamos el archivo resultante. ls-al sdd*

El archivo resultante tiene un tamaño aproximado de 25 MB. ¡Un verdadero ahorro de espacio en disco incluso en comparación con un archivo de 4 GB!
Para restaurar una unidad flash a partir de una imagen, usamos el orden inverso de los comandos.
gunzip-c sdd. Yo asi. cremallera | dd of=/dev/sdd conv=sin error bs=4M

También puede archivar imágenes unidades de disco duro, donde los volúmenes son un orden de magnitud mayor.

¡De paso! Para mayor claridad del proceso, debido a la falta de una barra de progreso en dd, sugiero usar una pequeña utilidad Progreso- Visor de progreso de Coreutils. Instalarlo en Fedora es fácil.
progreso de instalación dnf
Para otras distribuciones, el repositorio requerido se puede encontrar en https://pkgs.org/download/progress.
Después de instalar y ejecutar la utilidad con el comando ver el progreso en la segunda terminal (en la primera tenemos un archiver y dd corriendo) por parte del mismo usuario, veremos algo como esto.

progreso del hombre le mostrará varias teclas útiles de esta utilidad.

Como es sabido, "los usuarios de computadoras se dividen en los que hacen copias de seguridad y los que las van a hacer". En este artículo, veremos varias formas de hacer una copia de seguridad (copia de seguridad) de todo el sistema y, en consecuencia, restaurar desde una copia de seguridad.

Cabe señalar de inmediato que todas las operaciones no deben llevarse a cabo "en vivo", es decir. no en un sistema en ejecución, sino desde un liveCD o un sistema instalado en una partición / unidad flash / usb-hdd adyacente. En los casos en que un tiempo de inactividad de unos pocos minutos sea crítico para el sistema, es posible copiar el sistema desde abajo, pero debe tener en cuenta algunos Terminos adicionales que aún no se consideran en este artículo.

A partir de ahora, para las acciones realizadas como root se utilizará el comando sudo, que es el estándar de Ubuntu. En otros sistemas, es posible obtener privilegios de superusuario a través de su, algunos sistemas liveCD se ejecutan en modo de superusuario de forma predeterminada.

alquitrán

Una de las formas más populares de crear una copia de seguridad simple es archivar datos usando tar. Las ventajas de este método son la posibilidad de realizar copias de seguridad incrementales (agregar archivos a un archivo existente, eliminarlos o cambiarlos), la capacidad de extraer de un archivo archivos individuales, así como la presencia de tar en casi cualquier sistema Linux.

Creando un archivo

Primero, cree puntos de montaje para la partición raíz y para la partición en la que va a crear una copia de seguridad, como este

Monte ambas particiones. Para una mayor confiabilidad, puede montar la partición raíz en modo de solo lectura (read-only) para eliminar la posibilidad de cambios de datos accidentales

sudo mount /dev/sdXY /mnt/root -o ro sudo mount /dev/sdXY /mnt/backup

(En lugar de "sdXY", use sus valores para las particiones deseadas. Puede determinarlos con sudo fdisk -l o sudo blkid)

En caso de que use particiones separadas para /boot, /usr, /home, etc. y desee incluir sus contenidos en la copia de seguridad, móntelos en las carpetas correspondientes.

sudo mount /dev/sdXY /mnt/root/usr -o ro sudo mount /dev/sdXY /mnt/root/home -o ro

Si es necesario, cree una carpeta en la partición de respaldo donde desea colocar el archivo, por ejemplo

sudo mkdir -p /mnt/copia de seguridad/ubuntu/raíz

Ahora puede comenzar a crear el archivo. Para crear un archivo comprimido gzip, ejecute

Sudo tar -cvzpf -C /mnt/root /mnt/backup/ubuntu-sda1.tar.gz .

(El interruptor -p permite guardar propietarios y permisos para archivos)

Para uso de compresión bzip2

Sudo tar -cvjpf /mnt/backup/ubuntu-sda1.tar.bz2 /mnt/root

Para compresión lzma

sudo tar --lzma -cvpf /mnt/backup/ubuntu-sda1.tar.lzma /mnt/root

De manera similar, para la compresión lzo: cambie --lzop en lugar de --lzma

Los diferentes algoritmos de compresión dan diferentes tamaños de archivo y también difieren en el rendimiento.

Al final del proceso, desmonte todas las particiones montadas

Sudo umount /mnt/root(/boot,/var,/home,) /mnt/backup

Restaurar desde un archivo

Cree puntos de montaje para la partición raíz y la partición donde se almacena su archivo

Sudo mkdir /mnt/(raíz, copia de seguridad)

Montar la partición de copia de seguridad

sudo mount /dev/sdXY /mnt/backup -o ro

Formatee la partición raíz al mismo (o diferente) FS. Si está utilizando particiones separadas para /usr, /boot, etc. y las ha archivado, formatéelas también

(si está restaurando a un disco duro nuevo, particione con fdisk/gparted y formatee las particiones)

Algunos sistemas de archivos admiten la configuración de un UUID al formatear. Esto hace posible crear un sistema de archivos con el mismo UUID que el anterior, lo que evitará la necesidad de editar fstab.

Para ext2/3/4, el UUID se configura usando el modificador -U, y puede simplificar la tarea aún más con un comando como

sudo mkfs.ext4 -L "etiqueta" -U "$(sudo blkid -o valor -s UUID /dev/sda1)" /dev/sda1

Si usó el archivado al crear el archivo de imagen, primero descomprímalo usando el mismo archivador, por ejemplo

Bzip2 -dv /media/backup/sda5.dd.bz

Ahora puedes montar la imagen.

sudo mount /media/backup/sda5.dd -o bucle /mnt

(Con la opción de bucle, el programa de montaje "conectará" automáticamente el archivo de imagen a un dispositivo de bucle libre y luego montará el sistema de archivos)

Ahora puede trabajar con el contenido de la imagen como con un sistema de archivos regular, todos sus cambios se escribirán en la imagen. Cuando haya terminado, desmonte la imagen como un FS normal

sudo cantidad /mnt

dd - copia todo el disco duro

En este caso, usaremos dd nuevamente, solo que esta vez guardaremos todo. contenido del disco duro disk - con la tabla de particiones, las propias particiones y todos los datos. Ventaja este método ya que puede guardar todos los sistemas instalados en este disco duro en un solo paso sin tener que hacer una copia de seguridad de cada partición por separado. Además, con dicha copia de seguridad, se guardarán todos los datos relacionados con el gestor de arranque; por lo tanto, después de restaurar desde una copia de seguridad, no necesitará manipulaciones adicionales, puede iniciar inmediatamente desde este disco duro.

Creando una imagen

En general, el procedimiento es similar al descrito anteriormente para realizar copias de seguridad de particiones individuales. En este caso, también se aplica el consejo sobre la limpieza del espacio libre con "ceros": si tiene tiempo libre, hágalo con todas las secciones.

Antes de iniciar la operación, asegúrese de que ninguna de las particiones de este disco duro esté montada. Puede hacer esto ejecutando el comando de montaje sin opciones.

Seleccione la partición donde va a colocar el archivo obarz. Por supuesto, esto debe ser una partición de otro disco duro. También asegúrese de que haya suficiente espacio libre en esta partición (por ejemplo, usando la utilidad df); la cantidad de espacio libre debe corresponder al tamaño del disco duro copiado (cuando se comprime, la imagen será más pequeña, pero esto depende sobre el tipo de datos almacenados).

Montar la partición de copia de seguridad

sudo mount /dev/sdXY /mnt

Ahora puedes empezar

sudo dd if=/dev/sdX bs=1M conv=noerror,sync | lzma -cv > /mnt/hdd.dd.lzma

(¡aquí "sdX" es un disco, no una partición! para copiar sin comprimir, el comando es similar al anterior para una copia de seguridad de partición)

Según el tamaño del disco duro y el rendimiento de su computadora, el procedimiento puede demorar largo tiempo(hasta varias horas). Cuando haya terminado, desmonte la partición de copia de seguridad

sudo cantidad /mnt

Restaurar a partir de una imagen

¡Atención! Este método asume una reversión completa al estado en el momento de crear el archivo con el reemplazo de todos los datos.

Antes de comenzar a trabajar, asegúrese de que la fuente de alimentación sea confiable. Conectar adaptador de red si tiene una computadora portátil, y si es posible, use un UPS o un estabilizador. La alta intensidad de escritura aumenta el riesgo de daños en el disco en caso de un corte de energía

Asegúrese de que ninguna partición del disco que se está restaurando esté en uso. Montar la partición de copia de seguridad

sudo mount /dev/sdXY /mnt

Puedes iniciar el proceso

Bzip2 -dc /mnt/hdd.dd.bz | sudo dd of=/dev/sdX bs=1M conv=sync,noerror

O para una imagen sin comprimir

sudo dd if=/mnt/hdd.dd.bz of=/dev/sdX bs=1M conv=sync,noerror

Cuando haya terminado, desmonte la partición de copia de seguridad

sudo cantidad /mnt

Si desea extraer la imagen a otro disco duro, debe ser al menos tan grande como el original. Si nuevo disco más grande, puede ampliar las particiones o crear una nueva partición desde el espacio libre con parted/fdisk/gparted/etc

No uses ambos unidades de disco duro("duplicado" y "original") al mismo tiempo! Si ambas unidades están conectadas, el sistema tendrá dos particiones para cada UUID, lo que generará problemas en el funcionamiento o la imposibilidad de arrancar

Montaje de la imagen

Por analogía con una imagen de partición, puede trabajar con una imagen de disco duro como un disco duro normal. En este caso, el procedimiento es algo más complicado, ya que la imagen contiene varios apartados.

Si la imagen está comprimida, descomprímala. Ahora "enganche" la imagen al dispositivo de bucle

sudo losetup -fv /media/backup/sda.dd

(Con el interruptor -f, el programa encontrará automáticamente un dispositivo de bucle libre; de ​​lo contrario, debe especificarlo explícitamente)

losetup mostrará el nombre del dispositivo utilizado; a menos que esté trabajando con otros archivos de imagen (iso, contenedores cifrados, etc.), lo más probable es que sea /dev/loop0

Ahora tenemos un dispositivo que es un disco duro para el sistema, pero no tenemos acceso a sus particiones. El programa kpartx lo ayudará a llegar a las particiones (es posible que deba instalar el paquete del mismo nombre)

sudo kpartx -av /dev/loop0

(Cambie -a - agregue particiones para el dispositivo especificado; -v - salida informativa)

El programa mostrará los nombres de los dispositivos creados para las particiones del disco: loop0p1 para la primera partición, loop0p2 - para la segunda, por analogía con las particiones de un disco normal. Los archivos del dispositivo estarán en la carpeta /dev/mapper

Ahora puede trabajar con particiones y FS en ellas. Por ejemplo, monte el antiguo sda5 y escriba archivos en él.

sudo mount /dev/mapper/loop0p5 /mnt

Cuando haya terminado, desmonte la partición.

sudo cantidad /mnt

Eliminar dispositivos de partición con kpartx

sudo kpartx -dv /dev/loop0

y suelte el dispositivo de bucle

sudo losetup -v -d /dev/loop0

¡Todos! Los cambios se han escrito y su imagen se ha convertido nuevamente en un archivo normal.

c.p.

Aquí consideraremos una copia de seguridad usando la utilidad cp, es decir mediante copia simple. En realidad, esta no es la mejor manera, y es más adecuada para copiar el sistema a otro disco duro/partición/computadora, en lugar de crear una copia de seguridad.

Por otro lado, este método tiene varias ventajas:

    Versatilidad: cp se puede encontrar en cualquier sistema Linux

    Bajo requerimiento de recursos (debido a la falta de compresión y la simplicidad del mecanismo)

    Facilidad de trabajo posterior con la copia de seguridad (agregar/cambiar/eliminar archivos, extraer los datos necesarios, etc.)

haciendo una copia

Cree puntos de montaje para particiones raíz y de copia de seguridad

Sudo mkdir /mnt/(raíz, copia de seguridad)

Montar ambas particiones

sudo mount /dev/sdXY -o ro /mnt/root sudo mount /dev/sdXY /mnt/backup

Montar particiones para /usr, /boot, etc., si las hay

sudo mount /dev/sdXY -o ro /mnt/root/home

Cree una carpeta en la partición de copia de seguridad para su copia de seguridad

Sudo mkdir /mnt/copia de seguridad/ubuntu

Tu puedes empezar

sudo cp -av /mnt/root/* /mnt/backup/ubuntu

(el interruptor -a permite copiar enlaces "tal cual", guardando todos los atributos de archivo posibles y el modo recursivo. el interruptor -v - información de salida sobre lo que está sucediendo)

Al final del proceso, desmonte todas las particiones

En el futuro, puede archivar sus datos de cualquier manera conveniente.

Restaurar desde una copia

¡Atención! ¡Este método implica una reversión completa al estado en el momento de crear el archivo con el reemplazo de todos los datos!

Crear puntos de montaje para particiones

Sudo mkdir /mnt/(raíz, copia de seguridad)

Montar la partición de copia de seguridad

sudo mount /dev/sdXY -o ro /mnt/copia de seguridad

Formatee la partición raíz y las particiones /usr, /boot, etc., si corresponde. (Para formatear particiones con guardar UUID, consulte la sección sobre)

sudo mkfs.reiserfs -l "raíz" /dev/sdXY sudo mkfs.ext2 -L "arranque" /dev/sdXY sudo mkfs.ext4 -L "inicio" /dev/sdXY

Monte el FS recién creado

El proceso de copia es similar, solo que en la dirección opuesta.

sudo cp /mnt/backup/ubuntu/* -av /mnt/raíz

Una vez completada la copia, edite fstab para corregir el UUID de las particiones

Desmontar particiones

sudo umount /mnt/backup /mnt/root/(usr,inicio,)

calabazas

sudo mkfs.reiserfs -l "raíz" /dev/sdXY sudo mkfs.ext2 -L "arranque" /dev/sdXY sudo mkfs.ext4 -L "inicio" /dev/sdXY

Monte el FS recién creado

sudo mount /dev/sdXY /mnt/root sudo mount /dev/sdXY /mnt/root/usr sudo mount /dev/sdXY /mnt/root/var

¡Tu puedes empezar! La utilidad unsquashfs se utiliza para desempaquetar la imagen.

sudo unsquashfs -d /mnt/root -f /mnt/backup/ubuntu-root.sqfs

(La tecla -d especifica la ruta para descomprimir; con la tecla -f, el programa utilizará las carpetas existentes en lugar de intentar crear otras nuevas)

Al igual que con la creación de imágenes, verá una barra de progreso y mucha otra información útil.

Cuando termine, edite fstab para reemplazar los UUID de las particiones con los nuevos (si formateó particiones con los mismos UUID, omita este paso)

Sudo nano /mnt/root/etc/fstab

Guarde el archivo y desmonte todas las particiones

sudo umount /mnt/backup /mnt/root(/usr,/var,)

Montaje de la imagen

squashfs se monta como cualquier otra imagen, a través de un dispositivo de bucle. El soporte del kernel para squashfs está incluido en muchas distribuciones, incluida Ubuntu, por lo que será suficiente usar el comando de montaje con la opción de bucle.

sudo mount /media/backup/ubuntu-root.sqfs -o ro,loop /mnt

(No se requiere la opción ro, porque escribir allí todavía no funcionará)

Ahora puedes copiar cualquier archivos necesarios. Agregar algo de esta manera no funcionará, para esto necesitará usar mksquashfs nuevamente

Cuando termine, desmonte la imagen como un sistema de archivos normal

sudo cantidad /mnt

sincronizar

Al igual que cp, rsync opera en archivos, no en dispositivos de bloqueo. La peculiaridad de rsync es que no copia archivos que ya están en el destino. De manera predeterminada, verifica el tamaño y el tiempo de modificación de los archivos, pero también puede verificar el hash (generalmente esto se hace cuando se necesita mayor seguridad).

Fácil uso

La sintaxis de rsync es similar a cp:

Rsync -a /mnt/raíz /mnt/copia de seguridad

La opción -a suele ser suficiente, proporciona lo más necesario: copia recursiva de directorios, guardar información de propietario y grupo, etc. Para mostrar información detallada sobre la copia, se usa el interruptor -v, tenga cuidado con él, puede omitir el mensaje de error en el flujo de datos. El interruptor -x asegura que rsync no vaya más allá del sistema de archivos especificado.

La documentación de rsync describe muchas opciones. Por ejemplo, hay algunos que le permiten copiar a través de SSH o eliminar un archivo del destino si se eliminó en el directorio de origen.

La copia "inteligente" reduce el tiempo de inactividad del sistema. Ejecutamos rsync directamente en un sistema en ejecución, cuyos datos cambian constantemente, rsync copia los datos, digamos, durante varias horas. Luego ponemos el sistema en solo lectura, ejecutamos rsync nuevamente, ahora copia solo aquellos archivos que han cambiado en estas pocas horas. En unos minutos tenemos una copia completa del FS original. Al mismo tiempo, el tiempo de inactividad se redujo en un orden de magnitud en comparación con la copia sin conexión. Y en algunos casos, una copia en línea será suficiente sin transferir el sistema a solo lectura.

Mantener copias anteriores

Estrictamente hablando, rsync no es una herramienta de respaldo, es una herramienta de sincronización. Esto es importante al hacer copias regulares, porque si alguna archivo importante se eliminó en el directorio de trabajo de origen; rsync también lo eliminará en la copia de seguridad. Para aumentar la seguridad de los datos, es recomendable mantener copias de seguridad antiguas. Sin embargo, el simple hecho de guardar varias copias requerirá mucho espacio en el disco duro. Si las copias tienen muchos de los mismos archivos, esto conduce a una redundancia innecesaria. Este problema se puede resolver mediante el uso de enlaces duros.

La conclusión es que en los modernos sistemas de archivos(incluido Ext4) el direccionamiento de archivos se realiza en dos etapas: el nombre del archivo apunta a un número de archivo único (descriptor de índice o i-node), y los datos en sí se asocian con este número. Cualquier nombre de archivo es, de hecho, un enlace fijo a ese número. En consecuencia, un archivo (conjunto de datos) puede tener varios nombres y estar en diferentes directorios, y esto le permite eliminar la redundancia si necesita duplicar archivos (después de todo, un enlace duro ocupa poca memoria). Los datos en sí no se eliminan hasta que se solicita la eliminación del último enlace físico.

Una limitación significativa es que los enlaces duros solo son posibles dentro del mismo sistema de archivos.

Sincronización del contenido del directorio para la copia de seguridad actual con el directorio de origen:

rsync \ --archive \ --delete --delete-excluded \ # eliminar de la copia de seguridad inexistente en la fuente y archivos excluidos--Progreso \ # imprimir información sobre el progreso de la transferencia"/inicio/usuario/Archivos/" \ # directorio fuente"/copia de seguridad/más reciente/" \ # directorio para la copia de seguridad actual--exclude="/Público/" # excluir directorios innecesarios

En el directorio /backup/latest/, se creará una copia de todos los archivos y directorios necesarios de la fuente y se eliminará todo lo innecesario.

Crear otra copia de seguridad actual sin redundancia:

cp\ --archivo\ # salvar a todos Información Adicional sobre archivos--Enlace \ # use enlaces duros para archivos, eliminando la redundancia"/copia de seguridad/más reciente/" \ # fuente es la copia de seguridad actual obtenida arriba "/copia de seguridad/$(fecha +%Y-%m-%d_%H-%M-%S) /" #destino es un directorio con la fecha en el nombre por conveniencia (ver man date)

La próxima vez que cree una copia de seguridad, rsync eliminará los archivos del directorio /backup/latest/ que se hayan eliminado/excluido/modificado en el directorio de origen (los archivos modificados se eliminan primero y luego se escriben en una nueva version). Sin embargo, solo se eliminarán los nombres de los archivos (los mismos enlaces duros), los archivos mismos (datos) se guardarán, ya que se crearon enlaces duros en ellos en el directorio vecino con el comando "cp".

Otras herramientas

Hay muchas aplicaciones para crear copias de seguridad en Linux. Puede utilizar la búsqueda de la palabra "copia de seguridad" en el Centro Aplicaciones Ubuntu para encontrar software de copia de seguridad disponible en Ubuntu.

Para un entorno corporativo y solo para tareas de copia de seguridad críticas y de gran escala, podemos recomendar comprender uno de los sistemas de copia de seguridad más populares y potentes para Linux llamado Bacula.

Por cierto, también puedes encontrar manuales en ruso en la red.

Magia Partida

Parted Magic es otro gran, pero pagado un kit de distribución que contiene toda una colección de herramientas para realizar copias de seguridad y restaurar información, trabajar con discos y particiones, así como recuperar datos perdidos. Admite múltiples sistemas de archivos, LVM2 y RAID (tanto hardware como software) e incluye herramientas como fsarchiver, GParted, Clonezilla mencionadas anteriormente y todo lo que necesita para los métodos descritos en este artículo. Además, el kit de distribución incluye un navegador web y algún otro software adicional. El kit de distribución está traducido a varios idiomas, incluido el ruso, y tiene una interfaz gráfica completa.

LParted

LParted es un LiveCD con todas las funciones diseñado principalmente para trabajar con particiones de disco duro (HDD), eliminar o restaurar datos de forma permanente y probar equipos. LiveCD basado en Lubuntu Linux. LParted es un análogo funcional de Parted Magic.

Aquí agregaría sobre SystemRescueCD y otros

Más sobre cómo guardar datos

    Para datos importantes, puede crear una partición espejo en dos discos. Para hacer esto, no es necesario tener un controlador RAID y discos del mismo tamaño; puede, por ejemplo, ensamblar un espejo con un tornillo viejo de 80 GB y una partición de 80 GB en uno nuevo. La duplicación se puede implementar mediante LVM o software RAID. Sin embargo, este método es inútil en caso de que, por ejemplo, el voltaje de ~220 V golpee el bus de +5 V o un meteorito caiga sobre unidad del sistema computadora.

    Los geeks de TI que tienen su propio servidor en casa pueden ampliar la idea de duplicar y usar DRBD. El mismo RAID-1, pero unidades de disco duro están situados en diferentes computadoras, lo que mejora la fiabilidad.

    Una solución moderna y conveniente es hacer una copia de seguridad de los datos en las "nubes", por ejemplo, usando Ubuntu One, Dropbox, http://www.adrive.com/ y otros.

    Ni la duplicación ni la replicación en Ubuntu One lo salvarán de presión accidental Elimine, así que haga copias de seguridad "clásicas" de todos modos. Y un hermoso y terrible día, todos tus trabajos y esfuerzos serán recompensados.

El comando dd hace solo una cosa simple: copia datos de un archivo a otro archivo. Pero dado que en Linux muchas entidades se representan exactamente como archivos, dd tiene muchos usos. Consideremos los más útiles de ellos.

¿Qué significa dd?

dd es la abreviatura de duplicador de datos (copia de datos). Pero debido al hecho de que en las manos equivocadas, el comando dd puede conducir a la pérdida completa de todos los datos, el programa a menudo se llama en broma destructor de discos (disk destroyer). Intentemos descubrir cómo no solo no destruir nuestros datos, sino incluso beneficiarnos del uso de dd.

Caso de uso general para dd

La sintaxis del comando es la siguiente:

Dd if=$input_data of=$output_data

El comando copiará los datos del archivo $input_data al archivo $output_data, dadas las opciones. Parecería que todo es simple. Ahora considere qué oportunidades abre esta simple copia.

Ejemplos de uso de dd

1. Destrucción de todos los datos del disco sin posibilidad de recuperación:

Dd if=/dev/urandom of=/dev/sda bs=4k

2. Copia completa byte a byte de un disco a otro (clonación):

Dd si=/dev/sda de=/dev/sdb bs=4096

3. Copiar una sección a otra:

Dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror

4. Visualización de la lista de sistemas de archivos disponibles:

Dd si =/proc/sistemas de archivos | volcado hexadecimal -C | menos

5. Copia de datos en dispositivos con diferentes tamaños de bloque (1Kb para el origen y 2Kb para el destino):

Dd si=/dev/st0 ibs=1024 obs=2048 de=/dev/st1

6. Cree una unidad flash de arranque:

Dd if=/home/$usuario/bootimage.img of=/dev/sdc

7. Verifique el disco en busca de sectores defectuosos:

Dd si=/dev/sda de=/dev/null bs=1m

8. Cree una copia de seguridad del disco MBR y guárdela en un disquete

Dd si=/dev/sda de=/dev/fd0 bs=512 cuenta=1

9. Retiro imagen ISO del CD:

Dd if=/dev/sr0 of=/home/$user/mycdimage.iso bs=2048 conv=nosync

10. Comprobación del archivo en busca de virus (por supuesto, se requerirá ClamAV):

Dd if=/home/$usuario/sospechoso.doc | clamscan-

11. Guardar el contenido de la RAM en un archivo:

Dd if=/dev/mem of=/home/$usuario/mem.bin bs=1024

12. Convierta la imagen del formato Nero NRG a una imagen ISO estándar:

Dd bs=1k if=archivo de imagen.nrg of=archivo de imagen.iso skip=300k

13.Ver contenido MBR:

Dd si=/dev/sda cuenta=1 | volcado hexadecimal -C

¿Y dónde está el millón de aplicaciones prometido?

El lector observador probablemente notará que el artículo no enumera un millón aplicaciones útiles, pero algo menos. Pero el poder del programa dd radica en el hecho de que el usuario puede encontrar otros usos por su cuenta combinando diferentes archivos como si, de parámetros y seleccionando las opciones necesarias. Solo recuerda que trabajar con dd requiere atención adicional. Si no sabe exactamente qué acciones se realizarán, es mejor abstenerse de experimentar. Intente no otorgar derechos de superusuario a dd cuando pueda prescindir de estos derechos.

Sus propios ejemplos del uso de este maravilloso programa son bienvenidos en los comentarios.


cerca