[[TOC(heading=Índice)]] = Sincronización de imágenes con SquashFS = == Introducción == Opengnsys permite crear un archivo imagen de una partición completa que luego puede clonarse en otra. Son imágenes hay que tratarlas como un todo y no permiten ver su contenido. Con la sincronización de imágenes pretendemos: * comparar la imagen con el contenido de la partición y sólo copiar o borrar los archivos que difieran. * comparar la imagen con el contenido de la partición y crear una imagen diferencial con los archivos que difieran y la información de los archivos que sobran, de forma que al restaurar primero la imagen completa y luego la diferencial la partición destino quede como la del equipo modelo. '''Procedimiento''' Creamos imágenes con mksquashfs Para restaurar montaremos la imagen (en cache o repo) y utilizaremos rsync para sincronizar la partición. El procedimiento funciona bien para la partición completa o para una partición donde se ha restaurado la imagen y luego se han realizado cambios. Para windows restauraremos las ACL con ntfs-3g.secaudit '''Problemas''' La transferencia de la imagen con formato sqfs a través de la red sólo ha ido bien con rsync. Cuando se ha intentado mandar por multicast o unicast ha fallado. Al restaurar la cache no se pueden mostrar log, si ponemos esta opción a rsync se cuelga el equipo. Se podría lanzar algún comando en paralelo que muestre lo que va aumentando la partición. == Crear una imagen tipo sqfs == La imagen será un archivo con formato squashfs del sistema de fichero de la partición. Para guardar la información de la imagen (como tenemos en partclone: tipo de sistema operativo, tamaño, archivos de que contiene, ...) necesitaremos incluir uno o varios archivos en el sistema de fichero original antes de realizar la creación. === Creación imagen Linux === Montamos la partición que queremos clonar y realizamos: {{{ # Creamos la lista del contenido y lo situamos en la particion a copiar.. rsync -aHvn --delete /mnt/sdaX/ montar > /tmp/oglista mv /tmp/oglista /mnt/sdaX # Nos situamos en la cache (o en repo) y creamos la imagen. cd $OGCAC$OGIMG mksquashfs /mnt/sdaX NombreIMG.sqfs }}} === Creación imagen window7 === La única diferencia es que guardamos las acl. Montamos la partición que queremos clonar y realizamos: {{{ # Creamos la lista del contenido y lo situamos en la particion a copiar. rsync -aHvn --delete /mnt/sda1/ montar > /tmp/oglista mv /tmp/oglista /mnt/sda1 # Guardamos el contenido de las acl ogUnmount 1 X | tee -a $FILELOG ntfs-3g.secaudit -b /dev/sdaX / > ogimage.acl ogMount 1 X cp /tmp/ogimage.acl mksquashfs /mnt/sdaX nombreIMG.sqfs }}} == !Restauración/Sincronización de la imagen tipo sqfs == La imagen puede estar en la cache o en repo. === Restauración imagen Linux === Para restaurar montaremos la imagen y la partición y copiaremos con rsync {{{ ogMount 1 2 mount -t squashfs -o loop /opt/opengnsys/image/ubuntuMontar.sqfs $OGCAC$OGIMG/montar rsync -a –delete –quiet /opt/opengnsys/cache/opt/opengnsys/images/montar/ /mnt/sda2 }}} === Restaurando imagen Imagen de windows === {{{ ogMount 1 1 mount -t squashfs -o loop /opt/opengnsys/image/Windows.sqfs /opt/opengnsys/cache/opt/opengnsys/images/montar rsync -aq -XHgo --delete $OGCAC$OGIMG/montar/ $PART 2>&1 | tee -a $FILELOG # Restableciendo acl cp $PART/ogimage.acl /tmp ogUnmount 1 1 ntfs-3g.secaudit -se /dev/sda1 /tmp/ogimage.acl }}} === Opciones rsync === / la barra en el directorio de origen hace que transfiera el contenido del directorio al directorio destino (si no la ponemos copia también el directorio) -a, --archive modo archivo: igual que -rlptgoD (no -H,-A,-X) conserva los enlaces simbólicos, dispositivos, permisos y propietario. -q –quiet: no muestra mensajes que no sean errores. Si no se pone a veces se cuelga el equipo. --delete Borra los ficheros que no existían en el original -H preserva enlaces “duros” -g preserva grupo -o preserva propietario No utilizamos: -z, --compress Comprime el fichero en la transferencia → no: tanto en cache como repo va más lento -v, --verbose : Muestra todos los archivos que se van copiando) → cuelga el equipo. --progress: muestra los archivos y el progreso → cuelga el equipo.