wiki:SyncronizeSquashfs

Version 1 (modified by irina, 12 years ago) (diff)

--

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.