Como crear una imagen del sistema raiz completo archivo.tar.gz con bsdtar
Como restaurar el sistema raiz con bsdtar.
Enumerar las particiónes del disco para ver la configuracion actual:
# gpart show ada0
El esquema de partición actual.
/dev/ada0p1 freebsd-boot - 512G
/dev/ada0p2 freebsd-ufs - 98G
/dev/ada0p3 freebsd-swap - 4G
/dev/ada0p4 freebsd-ufs - 364G
/dev/ada0p4 es la partición a modificar.
Lo primero es hacer copia de seguridad de todos los datos al servidor con rsync.
$ rsync -avz --stats /mnt/datos/* root@192.168.1.254:/volume1/NetBackup/datos-HD-500-dell/
...
Number of files: 33,909 (reg: 24,404, dir: 9,505)
Number of created files: 33,848 (reg: 24,360, dir: 9,488)
Number of regular files transferred: 24,360
Total file size: 94,221,107,499 bytes
Total transferred file size: 94,055,122,224 bytes
Literal data: 94,055,122,224 bytes
Matched data: 0 bytes
File list size: 1,260,226
File list generation time: 0.003 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 91,464,319,664
Total bytes received: 577,095
sent 91,464,319,664 bytes received 577,095 bytes 4,876,437.33 bytes/sec
total size is 94,221,107,499 speedup is 1.03
# gpart delete -i 4 ada0
Tengo 364G libres
Crear una partición de 100G:
# gpart add -s 100G -t freebsd-ufs ada0
ada0p4 added
La siguiente partición ocupa el resto de espacio libre:
# gpart add -t freebsd-ufs ada0
ada0p5 added
/dev/ada0p5 (264G) es la partición de datos.
/dev/ada0p4 (100G) la partición donde se guardarán las imagenes de copia de seguridad del sistema raiz (tar.gz).
Por ultimo crear los sistemas de ficheros:
# newfs -U /dev/ada0p4
# newfs -U /dev/ada0p5
Poner etiquetas (label):
$ glabel label systemtar /dev/ada0p4
$ glabel label datos /dev/ada0p5
# ls /dev/label/
datos systemtar
# mkdir /mnt/datos
Cambiar los permisos del directorio /mnt/datos a un usuario sin privilegios
# chown carles /mnt/datos
# mount -t -o rw /dev/ada0p5 /mnt/datos
# chown carles /mnt/datos
Copiar los datos con rsync desde el servidor al directorio local:
$ rsync -avz --stats root@192.168.1.254:/volume1/NetBackup/datos-HD-500-dell/ /mnt/datos/
Number of files: 33,910 (reg: 24,404, dir: 9,506)
Number of created files: 2,637 (reg: 2,560, dir: 77)
Number of regular files transferred: 2,560
Total file size: 94,221,107,499 bytes
Total transferred file size: 7,147,728,070 bytes
Literal data: 7,147,728,070 bytes
Matched data: 0 bytes
File list size: 365,294
File list generation time: 0.014 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 58,503
Total bytes received: 7,151,528,689
...
Copia de seguridad con bsdtar del sistema raiz:
Iniciar el sistema en modo single user:
Pulsar la barra espaciadora para detener la cuenta atrás y luego la tecla 2 (single user)
Presionar Intro para la shell por defecto y teclee la contraseña de root si la ha implementado en su servidor.
Copia de seguridad del sistema:
En el símbolo del sistema teclear:
# fsck -p
# mount -u /
# swapon -a
# adjkerntz -i
Crear el directorio donde se guarda el archivo tar.gz
# mkdir /mnt/sysbsdtar
Montar la particion (100G), a la que volcaremos la copia bsdtar del
sistema raiz freebsd, para recuperarlo en caso de querer volver a un estado
anterior:
# mount -t ufs -o rw /dev/ada0p4 /mnt/sysbsdtar
Cambiar al directorio raiz (particion a respaldar):
# cd /
Realizar la copia de respaldo:
# bsdtar cvfz /mnt/sysbsdtar/ada0p2-7-7-2015.tar.gz --exclude=home *
Despues de finalizar la copia desmontamos la particion:
# umount /mnt/sysbsdtar
# reboot
Restaurar la copia del sistema:
Iniciar en modo single user
Presionar Intro para la shell por defecto.
En el símbolo del sistema teclear:
# fsck -p
# mount -u /
# swapon -a
# adjkerntz -i
Formatear el sistema de ficheros a restaurar (Perdera todos los datos)
# newfs -U /dev/ada0p2
Crear el directorio
# mkdir /mnt/raiz
# mkdir /mnt/copia
Montar particiones
# mount -t ufs -o rw /dev/ada0p2 /mnt/raiz
# mount -t ufs -o ro /dev/ada0p4 /mnt/copia
# cd /mnt/raiz
Restaurar particion raiz
# bsdtar xvzf /mnt/copia/ada0p2-7-7-2015.tar.gz .
# cd /
Desmontar particion:
# umount /mnt/copia
# reboot
Unix es genial!.