| 1 | [[TOC(heading=Índice)]] |
| 2 | = Sincronización de imágenes con SquashFS = |
| 3 | == Introducción == |
| 4 | 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. |
| 5 | |
| 6 | Con la sincronización de imágenes pretendemos: |
| 7 | * comparar la imagen con el contenido de la partición y sólo copiar o borrar los archivos que difieran. |
| 8 | * 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. |
| 9 | |
| 10 | '''Procedimiento''' |
| 11 | |
| 12 | Creamos imágenes con mksquashfs |
| 13 | |
| 14 | 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. |
| 15 | |
| 16 | Para windows restauraremos las ACL con ntfs-3g.secaudit |
| 17 | |
| 18 | '''Problemas''' |
| 19 | |
| 20 | 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. |
| 21 | |
| 22 | 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. |
| 23 | |
| 24 | == Crear una imagen tipo sqfs == |
| 25 | 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. |
| 26 | |
| 27 | === Creación imagen Linux === |
| 28 | |
| 29 | Montamos la partición que queremos clonar y realizamos: |
| 30 | {{{ |
| 31 | # Creamos la lista del contenido y lo situamos en la particion a copiar.. |
| 32 | rsync -aHvn --delete /mnt/sdaX/ montar > /tmp/oglista |
| 33 | mv /tmp/oglista /mnt/sdaX |
| 34 | |
| 35 | # Nos situamos en la cache (o en repo) y creamos la imagen. |
| 36 | cd $OGCAC$OGIMG |
| 37 | mksquashfs /mnt/sdaX NombreIMG.sqfs |
| 38 | }}} |
| 39 | |
| 40 | === Creación imagen window7 === |
| 41 | |
| 42 | La única diferencia es que guardamos las acl. |
| 43 | |
| 44 | Montamos la partición que queremos clonar y realizamos: |
| 45 | |
| 46 | {{{ |
| 47 | # Creamos la lista del contenido y lo situamos en la particion a copiar. |
| 48 | rsync -aHvn --delete /mnt/sda1/ montar > /tmp/oglista |
| 49 | mv /tmp/oglista /mnt/sda1 |
| 50 | # Guardamos el contenido de las acl |
| 51 | ogUnmount 1 X | tee -a $FILELOG |
| 52 | ntfs-3g.secaudit -b /dev/sdaX / > ogimage.acl |
| 53 | ogMount 1 X |
| 54 | cp /tmp/ogimage.acl |
| 55 | mksquashfs /mnt/sdaX nombreIMG.sqfs |
| 56 | }}} |
| 57 | |
| 58 | == !Restauración/Sincronización de la imagen tipo sqfs == |
| 59 | |
| 60 | La imagen puede estar en la cache o en repo. |
| 61 | |
| 62 | === Restauración imagen Linux === |
| 63 | Para restaurar montaremos la imagen y la partición y copiaremos con rsync |
| 64 | {{{ |
| 65 | ogMount 1 2 |
| 66 | mount -t squashfs -o loop /opt/opengnsys/image/ubuntuMontar.sqfs $OGCAC$OGIMG/montar |
| 67 | rsync -a –delete –quiet /opt/opengnsys/cache/opt/opengnsys/images/montar/ /mnt/sda2 |
| 68 | }}} |
| 69 | |
| 70 | === Restaurando imagen Imagen de windows === |
| 71 | {{{ |
| 72 | ogMount 1 1 |
| 73 | mount -t squashfs -o loop /opt/opengnsys/image/Windows.sqfs /opt/opengnsys/cache/opt/opengnsys/images/montar |
| 74 | rsync -aq -XHgo --delete $OGCAC$OGIMG/montar/ $PART 2>&1 | tee -a $FILELOG |
| 75 | # Restableciendo acl |
| 76 | cp $PART/ogimage.acl /tmp |
| 77 | ogUnmount 1 1 |
| 78 | ntfs-3g.secaudit -se /dev/sda1 /tmp/ogimage.acl |
| 79 | }}} |
| 80 | === Opciones rsync === |
| 81 | / 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) |
| 82 | |
| 83 | -a, --archive modo archivo: igual que -rlptgoD (no -H,-A,-X) conserva los enlaces simbólicos, dispositivos, permisos y propietario. |
| 84 | |
| 85 | -q –quiet: no muestra mensajes que no sean errores. Si no se pone a veces se cuelga el equipo. |
| 86 | |
| 87 | --delete Borra los ficheros que no existían en el original |
| 88 | |
| 89 | -H preserva enlaces “duros” |
| 90 | |
| 91 | -g preserva grupo |
| 92 | |
| 93 | -o preserva propietario |
| 94 | |
| 95 | No utilizamos: |
| 96 | |
| 97 | -z, --compress Comprime el fichero en la transferencia → no: tanto en cache como repo va más lento |
| 98 | |
| 99 | -v, --verbose : Muestra todos los archivos que se van copiando) → cuelga el equipo. |
| 100 | |
| 101 | --progress: muestra los archivos y el progreso → cuelga el equipo. |