Un backup, o copia de seguridad, permité en caso de fallo o pérdida de datos restaurar los datos al estado de la fecha del backup. Existen muchas herramientas que realizan este tipo de tareas, pero sin duda alguna rsync es la más utilizada. En este tutorial en lugar de hacer un backup de datos, se realizará un backup del sistema raíz (/), y a configurar su sistema para poder arrancar desde este backup en caso de que su sistema raíz principal presente problemas para arrancar.
¿Qué es rsync?
rsync es una herramienta de código abierto que ofrece transmisión eficiente de datos incrementales; se encuentra disponible bajo la licencia GNU General Public License y es mantenido por Wayne Davison.
El uso de rsync es sencillo: rsync [opciones] fuente destino, sin embargo existen multitud de opciones. Si desea conocer todas las opciones disponibles de rsync, puede consultar el man rsync. A continuación se destacan algunas de las opciones más interesantes:
- -r, --recursive Activa el modo recursivo en directorios.
- -l, --links Conserva los enlaces simbólicos.
- -H, --hard-links Conserva los enlaces relativos.
- -E, --executability Preserva el permiso de ejecución, si existe.
- -p, --perms Preserva todos los permisos.
- -o, --owner Preserva el propietario (rsync debe ser ejecutado como root).
- -g, --group Preserva el grupo.
- -A, --acls Preserva los permisos ACLs (implica -p)
- -h, --human-readable Genera una salida amigable.
- -x, --one-file-system Evita el salto entre distintos sistemas de archivos de forma recursiva.
- -u, --update Si en el destino existe el archivo, y el tamaño y fecha de modificación es la misma que la del origen, omite el archivo.
- --stats Al finalizar muestra un resumen. [+/-] Ver ejemplo
- --progress Muestra el proceso durante la transferencia. [+/-] Ver ejemplo
Preparar la partición donde llevar a cabo el respaldo
Deberá localizar una partición donde poder alojar la copia de seguridad de la raíz de su sistema de archivos. En nuestro caso usaremos una partición en /dev/sda, concretamente la partición /dev/sda3 que como podrá ver no se encuentra en uso por el sistema.
agd-desktop # fdisk -l /dev/sda Disk /dev/sda: 60.0 GB, 60022480896 bytes 255 heads, 63 sectors/track, 7297 cylinders, 117231408 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x1e910f12 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 2048 206847 102400 83 Linux /dev/sda2 206848 55206847 27500000 83 Linux /dev/sda3 55206848 110206847 27500000 83 Linux agd-desktop # blkid | grep sda /dev/sda2: UUID="31945820-1a0a-490e-87c0-346df947a0b2" TYPE="ext4" /dev/sda1: UUID="5250bac4-0378-419a-84f7-e51f51926e5d" TYPE="ext2"
A continuación deberá asegurarse que la partición tiene el formato adecuado. En nuestro caso, la partición no está formateada, y por ello será formateada en ext4
agd-desktop # mkfs.ext4 -L system-root-backup /dev/sda3 mke2fs 1.41.12 (17-May-2010) Etiqueta del sistema de ficheros=system-root-back Tipo de SO: Linux Tamaño del bloque=4096 (bitácora=2) Tamaño del fragmento=4096 (bitácora=2) Stride=0 blocks, Stripe width=0 blocks 1720320 nodos-i, 6875000 bloques 343750 bloques (5.00%) reservados para el superusuario Primer bloque de datos=0 Número máximo de bloques del sistema de ficheros=4294967296 210 bloque de grupos 32768 bloques por grupo, 32768 fragmentos por grupo 8192 nodos-i por grupo Respaldo del superbloque guardado en los bloques: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Escribiendo las tablas de nodos-i: hecho Creating journal (32768 blocks): hecho Escribiendo superbloques y la información contable del sistema de ficheros: hecho Este sistema de ficheros se revisará automáticamente cada 21 montajes o 180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.
Por último debemos montar la partición para poder usarla. Para ello crearemos el directorio /mnt/sda3 donde montaremos /dev/sda3. Y por supuesto antes de seguir recuerde verificar que la partición ha sido correctamente montada en el lugar deseado, de lo contrario cuando ejecute rsync comenzará ha hacer una copia recursiva de si mismo hasta agotar todo el espacio disponible en la partición raíz.
agd-desktop / # mkdir /mnt/sda3 agd-desktop # mount /dev/sda3 /mnt/sda3/ agd-desktop # mount | grep sda3 /dev/sda3 on /mnt/sda3 type ext4 (rw)
El proceso de backup
Las opciones a utilizar son --recursive --links --hard-links --one-file-system --perms --owner --group --executability --human-readable --stats
agd-desktop # rsync -rlHxpogEh --stats / /mnt/sda3 Number of files: 121337 Number of files transferred: 98674 Total file size: 3.57G bytes Total transferred file size: 3.44G bytes Literal data: 3.44G bytes Matched data: 0 bytes File list size: 3.07M File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 3.45G Total bytes received: 2.01M sent 3.45G bytes received 2.01M bytes 47.59M bytes/sec total size is 3.57G speedup is 1.04
Configurando el backup de /
En este punto tendrá una copia exacta de su sistema raíz. Por ello, si desea poder arrancar su sistema desde el backup deberá llevar a cabo algunas modificaciones:
Advertencia
Cuidado con editar /etc/fstab en lugar de /mnt/sda3/etc/fstab
Editar fstab
Deberá editar el fstab del backup para especificar la partición donde reside /, ya sea usando los punteros de dispositivo o la UUID del disco. En mi caso, al usar UUID, tuve que sustituir la UUID. A continuación podrá observar las modificaciones a realizar, en mi caso:
agd-desktop # diff -wB /etc/fstab /mnt/sda3/etc/fstab 33,34c33,34 < # SSD - / - 2º Particion < UUID=31945820-1a0a-490e-87c0-346df947a0b2 / ext4 --- > # SSD - rootmirror - 3º Particion > UUID=e1244bdc-9d2a-45ae-8d5c-6a7c91b1727c / ext4 39,40c39,40 < # SSD - rootmirror - 3º Particion < #UUID=e1244bdc-9d2a-45ae-8d5c-6a7c91b1727c / ext4 --- > # SSD - / - 2º Particion > #UUID=31945820-1a0a-490e-87c0-346df947a0b2 / ext4
Añadir una entrada al grub
Deberá añadir una nueva entrada al grub, la cual apunte a la partición de recuperación que ha creado. En mi caso,
nano /boot/grub/grub.conf title Gentoo Linux 2.6.37-r4-V.0.2 root (hd0,0) kernel /boot/kernel-2.6.37-r4-V.0.2 root=/dev/sda2 title Gentoo Linux 2.6.37-r4-V.0.2 ··--==MIRROR ROOT ==--·· root (hd0,0) kernel /boot/kernel-2.6.37-r4-V.0.2 root=/dev/sda3
Si ha realizado todos estos pasos, su sistema le debe permitir arrancar desde la partición principal y desde la partición backup. Si por algún motivo, un fallo o una actualización incorrecta, su sistema deja de funcionar, podrá arrancar desde la partición backup y tener un sistema completamente funcional pero congelado en la fecha en la que realizó el backup. Lo que le permitirá reparar la partición principal, o incluso en caso de desastre total, restaurarla a partir del backup llevando a cabo el proceso inverso aquí comentado.
4 comentarios:
#-
emilio astier peña
dijo...
-
-
miércoles, 13 de julio de 2011, 18:22:00 CEST
#
-
Unknown
dijo...
-
-
miércoles, 13 de julio de 2011, 21:32:00 CEST
#
-
carnulo
dijo...
-
-
martes, 9 de agosto de 2011, 16:54:00 CEST
#
-
Unknown
dijo...
-
-
martes, 9 de agosto de 2011, 18:31:00 CEST
genial, estaba buscando algo asi hace tiempo
Seguí este mismo sistema para hacer un respaldo de mi partición root por lo que en principio no deberías tener problemas. Pero si surge alguno, no dudes en preguntar.
Muchisimas gracias, es mucho mas sencillo que lo que suelo realizar yo (uso partimage), me has ahorrado horas de trabajo.
@carnulo ;)
Publicar un comentario