Esta pagina se ve mejor con JavaScript habilitado

Backup disco mediante Clonezilla

 ·  🎃 kr0m

Clonezilla es un software de clonado de sistemas en base a imágenes de disco, este puede ser arrancado desde un CDROM/USB/HD permitiendo realizar las operaciones de backup desde un sistema ajeno al contenido del PC.

Clonezilla puede ser instalado en la unidad de arranque de dos formas distintas:

  • ISO: Sistema solo compatible con CDROMs, obviamente al tratarse de un CDROM no podremos hacer backups en esta misma unidad.
  • ZIP: Se puede volcar a un USB o HD, es el método mas flexible ya que nos permite realizar backups en el mismo disco donde está instalado. Este método tiene dos subvariantes dependiendo del sistema de boot del PC: BIOS/EFI.

Independientemente del método de instalación todos los pasos son exactamente iguales, la única diferencia es la manera de instalarlo.


Dejo a continuación un índice para una lectura mas ágil del artículo:


Conceptos básicos:

Cifrado:
Clonezilla permite cifrar los datos backupeados de tal manera que sin esta no es posible leer ni restaurar los datos, esto puede resultar un arma de doble filo en caso de no recordar el password de un backup antiguo, yo no recomiendo cifrar, si no guardar en un lugar seguro el disco.

No confundir este cifrado con el que pueda haber hecho previamente alguna herramienta como LUKS por ejemplo. Otro aspecto importante a tener en cuenta es que si backupeamos un disco cifrado por alguna herramienta como LUKS y proveemos el password, el backup se almacenará en plano.

Repositorio:
Un repositorio es el lugar donde leer/escribir los datos según estemos realizando un backup/restore. Si estamos ejecutando un backup se escribirán los datos en este, si estamos restaurando se leerán.

Herramientas disponibles:
Clonezilla utiliza varias herramientas de backup según el sistema de ficheros, además en todas ellas solo se copiarán los datos realmente ocupados, no la partición entera(a excepción de dd):

  • partimage: Ext2, Ext3, FAT16, FAT32, NTFS (solo lectura), ReiserFS, HFS(solo lectura), XFS (solo lectura experimental), UFS/FFS.
  • partclone: Ext2, Ext3, Ext4, FAT12, FAT16, FAT32, NTFS, HFS+, ReiserFS, XFS, JFS, Btrfs, F2FS, UFS/FFS.
  • dd: Soporte universal.
  • partclone.dd: Soporte universal, igual que dd pero con soporte para compresión.
  • ntfsclone: Utilizada en sistemas Windows soporta exclusivamente NTFS.

Dejo unos ejemplos indicando en las capturas la herramienta utilizada:

Partclone.dd Partclone

Si automatizamos el proceso de backup/restore podemos cambiar las prioridades de uso indicando los siguientes parámetros:

-q:  Prioridad ntfsclone, partimage, dd
-q1: Solo dd
-q2: Prioridad partclone, partimage, dd

La opción por defecto es: partimage, dd.


Modos de operación:

Clonezilla permite operar de varias maneras:

  • device-image: Genera imágenes a partir de discos enteros o particiones.
  • device-device: Clona el disco entero a otro disco.

También proporciona funcionalidades en red, estas dos opciones son para casos puntuales en los que se requiere enviar o recibir el disco por red entre dos equipos:

  • remote-source: Envía su disco a otra máquina que esté en modo remote-dest.
  • remote-dest: Recibe el disco de otra máquina que esté en modo remote-source.

Por otro lado tenemos la opción de tener un servidor central que cumplirá dos funciones, servir imágenes a los clientes o recibir imágenes de los clientes:

  • lite-server: Servidor central que ofrece/recibe imágenes a muchos clientes en red.
  • lite-client: Se conecta a un servidor central (lite-server) para descargar o enviar el disco.

Tipos de repositorios:

Clonezilla soporta el uso de repositorios tanto en dispositivos locales como en sistemas de archivos en red:

  • local_dev: Dispositivos locales.
  • ssh_server: Servidor SSH.
  • samba_server: Servidor SAMBA.
  • nfs_server: Servidor NFS.
  • av_server: Servidor WebDAV.
  • s3_server: Servidor S3.
  • enter_shell: Acceso a una shell para realizar las operaciones que consideremos necesarias para configurar un repositorio .
  • ram_disk: Usa la memoria RAM para guardar la imagen temporalmente, podría resultar útil en casos de clonado de discos dentro del mismo equipo.
  • skip: Se utiliza el directorio /home/partimag que ahora mismo está en RAM.

Instalación ISO:

Descargamos de la web de Clonezilla el fichero ISO:

Instalamos cdrecord:

apt install cdrecord

Quemamos la ISO en el CDROM:

cdrecord dev=/dev/cdrom blank=disc
cdrecord dev=/dev/cdrom -dao /home/kr0m/Descargas/clonezilla-live-3.2.2-15-amd64.iso

Podemos ver el arranque mediante ISO en el siguiente video:


Instalación ZIP-EFI:

Descargamos de la web de Clonezilla el fichero ZIP:

Creamos dos particiones en el disco duro, una para Clonezilla y otra donde almacenaremos nuestros backups( repositorio ):

fdisk /dev/sdX

Creamos una tabla de particiones GPT nueva:

Command (m for help): g
Created a new GPT disklabel (GUID: B3128585-1D62-4141-B54E-D065C1662A8B).

Creamos una partición de 500M donde instalar Clonezilla:

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-1894920014, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1894920014, default 1894918143): +500M

Ahora la partición donde guardaremos los backups:

Command (m for help): n
Partition number (2-128, default 2):
First sector (1026048-1894920014, default 1026048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-1894920014, default 1894918143):

Comprobamos el estado actual del disco:

Command (m for help): p
Disk /dev/sde: 903.57 GiB, 970199064576 bytes, 1894920048 sectors
Disk model: EXT
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: BE811FD9-BDAE-8644-9D21-37DCAFCA0861

Device       Start        End    Sectors   Size Type
/dev/sde1     2048    1026047    1024000   500M Linux filesystem
/dev/sde2  1026048 1894918143 1893892096 903.1G Linux filesystem

Guardamos los cambios:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Formateamos la primera partición en VFAT:

mkfs.vfat -F 32 /dev/sdX1

Y la segunda en Ext4:

mkfs.ext4 -L "Backups" /dev/sdX2

Extraemos clonezilla-live-3.2.2-15-amd64.zip a /dev/sdX1:

mount /dev/sdX1 /mnt/aux
unzip /home/kr0m/clonezilla-live-3.2.2-15-amd64.zip -d /mnt/aux

Desmontamos el disco:

cd
umount /mnt/aux

Podemos ver el arranque mediante EFI en el siguiente video:


Instalación ZIP-BIOS:

Descargamos de la web de Clonezilla el fichero ZIP:

Creamos dos particiones en el disco duro, una para Clonezilla y otra donde almacenaremos nuestros backups( repositorio ):

fdisk /dev/sdX

Creamos una tabla de particiones nueva MBR:

Command (m for help): o
Created a new DOS (MBR) disklabel with disk identifier 0x397f9ef2.

Creamos una partición de 500M donde instalar Clonezilla:

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (1-4, default 1):
First sector (2048-1894920047, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1894920047, default 1894920047): +500M

Ahora la partición donde guardaremos los backups:

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (2-4, default 2):
First sector (1026048-1894920047, default 1026048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-1894920047, default 1894920047):

Comprobamos el estado actual del disco:

Command (m for help): p
Disk /dev/sde: 903.57 GiB, 970199064576 bytes, 1894920048 sectors
Disk model: EXT
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x397f9ef2

Device     Boot   Start        End    Sectors   Size Id Type
/dev/sde1          2048    1026047    1024000   500M 83 Linux
/dev/sde2       1026048 1894920047 1893894000 903.1G 83 Linux

Guardamos los cambios:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Formateamos la primera partición en VFAT:

mkfs.vfat -F 32 /dev/sdX1

Y la segunda en Ext4:

mkfs.ext4 -L "Backups" /dev/sdX2

Extraemos clonezilla-live-3.2.2-15-amd64.zip a /dev/sdX1:

mount /dev/sdX1 /mnt/aux
unzip /home/kr0m/clonezilla-live-3.2.2-15-amd64.zip -d /mnt/aux

Hacemos arrancable el disco, respondemos y a todo:

cd /mnt/aux/utils/linux
bash makeboot.sh /dev/sdX1
This command will install MBR and syslinux/extlinux bootloader on /dev/sde
Clonezilla files are assumed to be on /dev/sde1
--------------------------------------------
Machine: System Product Name:
Model: sobetter EXT (scsi)
Disk /dev/sde: 970GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  525MB  524MB  primary  fat32
 2      525MB   970GB  970GB  primary  ext4

--------------------------------------------
Are you sure you want to continue?
[y/n] y
OK! Let's do it!
--------------------------------------------
File system of /dev/sde1: vfat
--------------------------------------------
sde1 is not marked as bootable! The partition table of /dev/sde:
--------------------------------------------
System Product Name:
Model: sobetter EXT (scsi)
Disk /dev/sde: 970GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  525MB  524MB  primary  fat32
 2      525MB   970GB  970GB  primary  ext4

--------------------------------------------
Do you want to mark it as bootable ?
[y/n] y
OK! Let's do it!
Running: parted -s /dev/sde set 1 boot on
--------------------------------------------
Do you want to install MBR on /dev/sde on this machine "System Product Name" ?
[y/n] y
OK! Let's do it!
Running: cat "/mnt/aux/utils/mbr/mbr.bin" > /dev/sde
--------------------------------------------
Do you want to install the syslinux boot files on /dev/sde1 on this machine "System Product Name" ?
[y/n] y
OK! Let's do it!
A filesystem supporting Unix file mode for syslinux is required. Copying syslinux to /tmp/linux_tmp.3IsDu2
'/mnt/aux/utils/linux/x64/syslinux' -> '/tmp/linux_tmp.3IsDu2/syslinux'
Running: "/tmp/linux_tmp.3IsDu2/syslinux" -d syslinux -f -i "/dev/sde1"
Hidden (2048) does not match sectors (63)
Hidden (2048) does not match sectors (63)
Hidden (2048) does not match sectors (63)
Hidden (2048) does not match sectors (63)
Hidden (2048) does not match sectors (63)
Hidden (2048) does not match sectors (63)
//NOTE// If your USB flash drive fails to boot (maybe buggy BIOS), try to use "syslinux -d syslinux -fs /dev/sde1", i.e. running with "-fs".
syslinux ran successfully in installation mode.
Done!

Desmontamos el disco:

cd
umount /mnt/aux

Podemos ver el arranque mediante BIOS en el siguiente video:


Instalación ZIP-EFI/BIOS:

La gran mayoría de sistemas EFI soportan boot legacy mediante BIOS, así que si generamos un disco de arranque para BIOS seguramente nos valga para toda clase de sistemas.


Backup: Linux+cifrado(abriendo)

En este modo debemos tener en cuenta que los datos almacenados en el backup estarán en claro, siendo vulnerables a miradas indiscretas con acceso al disco de backups.

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

En este punto se nos presentará un menú u otro dependiendo de si hemos hecho algún backup previo en el disco, a nosotros nos interesa generar la imagen del disco entero savedisk:

Sin backup previo Con backup previo

Indicamos el nombre de la imagen:

Indicamos el origen de los datos:

Si el disco está cifrado como es mi caso(LUKS), nos preguntará si queremos abrir el dispositivo. Si lo abrimos podremos backupear/restaurar solo los datos útiles (no el espacio vacío), lo que acelerará el proceso.

El método de compresión de la imágen:

Nos está preguntando si deseamos realizar un fsck del sistema de ficheros origen.

Comprobar una vez generada la imagen si esta es restaurable:

En mi caso no voy a cifrar la imagen(no confundir el cifrado de Clonezilla con el LUKS del SO):

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

Nos pregunta una confirmación para proceder:

Nos pide el password para descifrar el disco LUKS:

El disco consta de 3 particiones, a continuación una captura de pantalla del backup de cada una de ellas:

NOTA: En mi caso ha llevado unos 8m dumpear un disco SSD de 120G(17.2G en uso) a un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Comprueba las imágenes de cada partición:

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:

Un dato importante es que según la compresión elegida , el backup ocupará mas o menos:

  • z1p: 120G -> 8.3G
  • z9p: 120G -> 7,6G

Restore: Linux+cifrado(abriendo)

El proceso de restore es muy similar al de backup.

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

Indicamos que queremos realizar un restore de una imagen a disco restoredisk:

Indicamos el nombre de la imagen:

Indicamos el destino de la restauración:

Que tabla de particiones queremos utilizar:

  • Conservar la original.
  • Crear una nueva: Útil para restores en discos de tamaño distinto al del que se backupeó.

Indicamos si queremos comprobar la imagen antes de restaurarla:

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

El disco consta de 3 particiones, comprueba que cada una de ellas sea restaurable:

Nos pregunta una confirmación para proceder:

Pide el password del disco LUKS, no porqué los datos del backup estén cifrados, si no porque está intentando restaurar los datos del backup a un disco que si que está cifrado:

El disco consta de 3 particiones, a continuación una captura de pantalla del restore de cada una de ellas:

NOTA: En mi caso ha llevado unos 8m restaurar un disco SSD de 120G(17.3G en uso) desde un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:


Backup: Linux+cifrado(sin abrir)

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

En este punto se nos presentará un menú u otro dependiendo de si hemos hecho algún backup previo en el disco, a nosotros nos interesa generar la imagen del disco entero savedisk:

Sin backup previo Con backup previo

Indicamos el nombre de la imagen:

Indicamos el origen de los datos:

Si el disco está cifrado como es mi caso(LUKS), nos preguntará si queremos abrir el dispositivo. Si lo abrimos podremos backupear/restaurar solo los datos útiles (no el espacio vacío), lo que acelerará el proceso. Pero en esta ocasión queremos hacer la prueba sin abrirlo.

El método de compresión de la imágen:

Nos está preguntando si deseamos realizar un fsck del sistema de ficheros origen.

Comprobar una vez generada la imagen si esta es restaurable:

En mi caso no voy a cifrar la imagen(no confundir el cifrado de Clonezilla con el LUKS del SO):

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

Nos pregunta una confirmación para proceder:

El disco consta de 3 particiones, a continuación una captura de pantalla del backup de cada una de ellas:

NOTA: Podemos ver que la partición cifrada la está clonando mediante partclone.dd y está copiándola entera. En mi caso ha llevado unos 11m dumpear un disco SSD de 120G a un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Comprueba las imágenes de cada partición menos de la que se realizó mediante dd(por estar cifrada):

Image was saved by dd or partclone.dd. No need or no way to check the file system integrity.

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:

Un dato importante es que según la compresión elegida , el backup ocupará mas o menos:

  • z1p: 120G -> 20G
  • z9p: 120G -> 20G

Comparando abriendo el dispositivo LUKS y sin abrirlo, obtenemos los siguientes resultados:

Abriendo Sin abrir( partclone.dd )
z1p: 120G -> 8.3G z1p: 120G -> 20G
z9p: 120G -> 7.6G z9p: 120G -> 20G

Restore: Linux+cifrado(sin abrir)

El proceso de restore es muy similar al de backup.

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

Indicamos que queremos realizar un restore de una imagen a disco restoredisk:

Indicamos el nombre de la imagen:

Indicamos el destino de la restauración:

Que tabla de particiones queremos utilizar:

  • Conservar la original.
  • Crear una nueva: Útil para restores en discos de tamaño distinto al del que se backupeó.

Indicamos si queremos comprobar la imagen antes de restaurarla:

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

El disco consta de 3 particiones, comprueba que cada una de ellas sea restaurable a excepción de la que está cifrada:

Image was saved by dd or partclone.dd. No need or no way to check the file system integrity.

Nos pregunta una confirmación para proceder:

El disco consta de 3 particiones, a continuación una captura de pantalla del restore de cada una de ellas:

NOTA: En mi caso ha llevado unos 11m restaurar un disco SSD de 120G desde un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:


Backup: FreeBSD-BIOS

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

En este punto se nos presentará un menú u otro dependiendo de si hemos hecho algún backup previo en el disco, a nosotros nos interesa generar la imagen del disco entero savedisk:

Sin backup previo Con backup previo

Indicamos el nombre de la imagen:

Indicamos el origen de los datos:

El método de compresión de la imágen:

Nos está preguntando si deseamos realizar un fsck del sistema de ficheros origen, en este caso se trata de un sistema de ficheros ZFS , así que elegimos -sfsck:

Comprobar una vez generada la imagen si esta es restaurable:

En mi caso no voy a cifrar la imagen:

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

Nos pregunta una confirmación para proceder:

El disco consta de 3 particiones, a continuación una captura de pantalla del backup de cada una de ellas:

NOTA: En mi caso ha llevado unas 5h30m dumpear un disco SSD de 1T a un disco mecánico de 2.5 conectado por USB mediante una caja externa.

No vemos como comprueba las particiones porque se ha realizado mediante dd y no lo soporta, el mensaje en cuestión es:

Image was saved by dd or partclone.dd. No need or no way to check the file system integrity.

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:

Un dato importante es que según la compresión elegida , el backup ocupará mas o menos:

  • z1p: 1Tb -> 696G
  • z9p: 1Tb -> 599G

Restore: FreeBSD-BIOS

El proceso de restore es muy similar al de backup.

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

Indicamos que queremos realizar un restore de una imagen a disco restoredisk:

Indicamos el nombre de la imagen:

Indicamos si queremos comprobar la imagen antes de restaurarla:

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

Nos pregunta una confirmación para proceder:

No comprueba las particiones porque se ha realizado mediante dd y no lo soporta, el mensaje en cuestión es:

Image was saved by dd or partclone.dd. No need or no way to check the file system integrity.

El disco consta de 3 particiones, a continuación una captura de pantalla del restore de cada una de ellas:

NOTA: En mi caso ha llevado unas 5h30m restarurar un disco SSD de 1T desde un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:


Backup: Windows

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

En este punto se nos presentará un menú u otro dependiendo de si hemos hecho algún backup previo en el disco, a nosotros nos interesa generar la imagen del disco entero savedisk:

Sin backup previo Con backup previo

Indicamos el nombre de la imagen:

Indicamos el origen de los datos:

El método de compresión de la imágen:

Nos está preguntando si deseamos realizar un fsck del sistema de ficheros origen, en este caso se trata de un sistema de ficheros NTFS, así que elegimos -sfsck:

Comprobar una vez generada la imagen si esta es restaurable:

En mi caso no voy a cifrar la imagen:

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

Nos pregunta una confirmación para proceder:

El disco consta de 4 particiones, a continuación una captura de pantalla del backup de cada una de ellas:

NOTA: En mi caso ha llevado unas 3h dumpear un disco SSD de 500G con 205.7G ocupados a un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Comprueba cada una de las imágenes generadas:

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:

Un dato importante es que según la compresión elegida , el backup ocupará mas o menos:

  • z1p: 500G -> 180G
  • z9p: 500G -> 179G

Restore: Windows

El proceso de restore es muy similar al de backup.

Configuramos el lenguaje:

Configuramos el layout del teclado:

Nos dá a elegir entre arrancar Clonezilla o abrir una shell de Linux, arrancamos Clonezilla:

Clonezilla permite operar de varias maneras , en nuestro caso queremos almacenar el disco entero en formato imagen, así que elegimos device-image:

Clonezilla soporta el uso de repositorios de distintas índoles , nosotros nos decantamos por local_dev ya que el repositorio es local:

Nos informa de que si queremos utilizar un disco que no hayamos conectado, ahora es el momento:

Nos muestra en tiempo real los discos del sistema:

Seleccionamos la partición donde tenemos el repositorio :

Nos pregunta si queremos hacer un fsck del sistema de ficheros del repositorio, en mi caso es Ext4 y una comprobación extra nunca viene mal:

En caso de tener el repositorio en un subdirectorio, debemos indicarlo aquí:

Path on the resource: /dev/sdb2[/] --> Muestra el Dispositivo+[Directorio]: El dispositivo no puede cambiar ya que se seleccionó en un paso anterior, solo cambiará el Directorio según el path que seleccionemos.
Current selected dir name: "/" --> Path del directorio.

Mi repositorio se encuentra directamente en Raíz así que el path es /, le damos a Done:

Nos informa de que ha montado el /tmp/ocsroot_bind_root en /home/partimag mediante --bind(final de la foto):

Nos pregunta el modo en el que queremos operar, Beginner es una buena opción si no se requiere de ningún ajuste fino como es el caso:

Indicamos que queremos realizar un restore de una imagen a disco restoredisk:

Indicamos el nombre de la imagen:

Indicamos el disco destino:

Que tabla de particiones queremos utilizar:

  • Conservar la original.
  • Crear una nueva: Útil para restores en discos de tamaño distinto al del que se backupeó.

Indicamos si queremos comprobar la imagen antes de restaurarla:

En este paso pregunta si debe guardar logs de las operaciones realizadas:

Nos pregunta que debe hacer una vez realizadas todas las operaciones:

Nos informa del comando que va a ejecutar:

El disco consta de 4 particiones, a continuación una captura de pantalla del chequeo previo a la restauración de cada una de ellas:

NOTA: En mi caso ha llevado una 1h comprobar un disco SSD de 500Gb con 205.7Gb ocupados desde un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Pide confirmación para restaurar:

El disco consta de 4 particiones, a continuación una captura de pantalla del restore de cada una de ellas:

NOTA: En mi caso ha llevado unas 3h restaurar un disco SSD de 500Gb con 205.7Gb ocupados desde un disco mecánico de 2.5 conectado por USB mediante una caja externa.

Resumen sobre la tareas realizadas:

Cuando termine nos preguntará que hacer:


Algoritmos de compresión:

Según el modo en el que estemos operando podremos acceder a unos algoritmos de compresión u otros:

Begginer:

-z1p
-z9p

Expert:

Option Algorithm Size (1=worst, 10=best) Speed (1=slowest, 10=fastest)
-z0 No compression 1 10
-z1 gzip 5 6
-z1p pigz (parallel gzip) 5 8
-z2 bzip2 7 3
-z2p pbzip2 (parallel bzip2) 7 5
-z3 LZO 3 9
-z4 LZMA 9 2
-z5 xz 10 1
-z5p pxz (parallel xz) 10 3
-z6 lzip 9 2
-z6p plzip (parallel lzip) 9 4
-z7 lrzip 8-10* 3-6*
-z8 lz4 4 9
-z8p lz4mt 4 10
-z9 zstd 8 7
-z9p zstdmt 8 8

Dejo el resultado de algunas pruebas en un sistema Windows como referencia:

z1p: 500G(205.7G ocupados) -> 180G
z9p: 500G(205.7G ocupados) -> 179G
z5p: 500G(205.7G ocupados) -> 179G

Automatización

Cuando ejecutamos Clonezilla de forma manual, podemos ver los comandos que va ejecutando, esto resulta muy útil ya que para automatizar el proceso tan solo debemos reproducir los mismos comandos.

Montamos la partición donde se instaló Clonezilla para editar la configuración:

mkdir /mnt/aux 2>/dev/null
mount /dev/sdX1 /mnt/aux

Es posible hacer un preseed de los parámetros de Clonezilla para automatizar los backups/restores, en la documentación podemos consultar cada uno de ellos.

Los parámetros de ocs-sr podemos verlos aquí . Normalmente utilizaremos los mostrados por Clonezilla cuando realizamos el backup/restore manualmente, pero con ligeros cambios.

Configuración regional:

locales=en_US.UTF-8

Layout del teclado:

keyboard-layouts=us

Partición donde esté el repositorio de Clonezilla, la configuraremos por UUID para evitar problemas en caso de tener mas unidades USB conectadas cuando realizamos el backup:

lsblk -o NAME,UUID,LABEL,FSTYPE
sde
├─sde1      C635-A671                                    vfat
└─sde2      7f4ae4a7-df39-4cab-a723-9fe57ec70fcf Backups ext4
ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt"

Directorio donde esté el repositorio, en este caso “/”:

ocs_prerun1="mount --bind /mnt /home/partimag/"

Comando a ejecutar, para backupear/restaurar:

Backup:  ocs_live_run="ocs-sr --batch -luks yes -q2 -j2 -z9p -i 0 -fsck-y -senc -p poweroff savedisk backupImageLinuxLuksOpened sda"
Restore: ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageLinuxLuksOpened sda"
Backup:  ocs_live_run="ocs-sr --batch -luks no -q2 -j2 -z9p -i 0 -fsck-y -senc -p poweroff savedisk backupImageLinuxLuksClosed sda"
Restore: ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageLinuxLuksClosed sda"
Backup:  ocs_live_run="ocs-sr --batch -q2 -j2 -z9p -i 0 -sfsck -senc -p poweroff savedisk backupImageFreeBSD sda"
Restore: ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageFreeBSD sda"
Backup:  ocs_live_run="ocs-sr --batch -q2 -j2 -z9p -i 0 -sfsck -senc -p poweroff savedisk backupImageWindoz sda"
Restore: ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageWindoz sda"

Si el sistema tiene el disco cifrado solo podremos automatizar completamente el proceso si no abrimos el dispositivo LUKS ya que de este modo no requerirá contraseña ni ningún input por parte del usuario.

En caso contrario se tendrá que introducir el password tanto para el backup como para el restore:

Backup Restore

Si necesitamos afinar el comando proporcionado por Clonezilla podemos ver todas las opciones en la documentación oficial.

A continuación el significado de cada parámetro según el sistema.

Backup:

ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-luks, --enable-luks MODE Open LUKS device or not. MODE can be either yes or no.
-q2, --use-partclone Use partclone to save partition(s) (i.e. partclone > partimage > dd).
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
-z9p, --zstdmt-compress Compress using zstdmt when saving.
-i, --image-size SIZE Set the split image file volume size SIZE (MB). When ocs-sr is run with -x, the default SIZE is set as 0, if without -x, we will not split it.
-fsck-y, --skip-fsck-src-part Skip running fsck on the source file system before saving it.
-senc, --skip-enc-ocs-img Skip encrypting the image with passphrase.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-luks, --enable-luks MODE Open LUKS device or not. MODE can be either yes or no.
-q2, --use-partclone Use partclone to save partition(s) (i.e. partclone > partimage > dd).
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
-z9p, --zstdmt-compress Compress using zstdmt when saving.
-i, --image-size SIZE Set the split image file volume size SIZE (MB). When ocs-sr is run with -x, the default SIZE is set as 0, if without -x, we will not split it.
-fsck-y, --skip-fsck-src-part Skip running fsck on the source file system before saving it.
-senc, --skip-enc-ocs-img Skip encrypting the image with passphrase.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-q2, --use-partclone Use partclone to save partition(s) (i.e. partclone > partimage > dd).
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
-z9p, --zstdmt-compress Compress using zstdmt when saving.
-i, --image-size SIZE Set the split image file volume size SIZE (MB). When ocs-sr is run with -x, the default SIZE is set as 0, if without -x, we will not split it.
-sfsck, --skip-fsck-src-part Skip running fsck on the source file system before saving it.
-senc, --skip-enc-ocs-img Skip encrypting the image with passphrase.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-q2, --use-partclone Use partclone to save partition(s) (i.e. partclone > partimage > dd).
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
-z9p, --zstdmt-compress Compress using zstdmt when saving.
-i, --image-size SIZE Set the split image file volume size SIZE (MB). When ocs-sr is run with -x, the default SIZE is set as 0, if without -x, we will not split it.
-fsck-y, --skip-fsck-src-part Skip running fsck on the source file system before saving it.
-senc, --skip-enc-ocs-img Skip encrypting the image with passphrase.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD

Restore:

ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-g, --grub-install GRUB_PARTITION Install grub in the MBR of the disk containing partition GRUB_PARTITION with root grub directory in the same GRUB_PARTITION when restoration finishes, GRUB_PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the grub root partition automatically). If "auto" is assigned, it will work if grub partition and root partition are not in the same partition.
-e1, --change-geometry NTFS-BOOT-PARTITION Force to change the CHS (cylinders, heads, sectors) value of NTFS boot partition after image is restored. NTFS-BOOT-PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the NTFS boot partition automatically)
-e2, --load-geometry-from-edd Force to use the CHS (cylinders, heads, sectors) from EDD (Enhanced Disk Device) when creating partition table by sfdisk
-r, --resize-partition Resize the partition when restoration finishes, this will resize the file system size to fit the partition size. It is normally used when when a small partition image is restored to a larger partition.
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool. When this option is used, it only works for restoredisk mode, not the restoreparts one
-k0, Create partition table based on the partition table from the image. this is the same as as default. Just an option to let us explain the action easier.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-g, --grub-install GRUB_PARTITION Install grub in the MBR of the disk containing partition GRUB_PARTITION with root grub directory in the same GRUB_PARTITION when restoration finishes, GRUB_PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the grub root partition automatically). If "auto" is assigned, it will work if grub partition and root partition are not in the same partition.
-e1, --change-geometry NTFS-BOOT-PARTITION Force to change the CHS (cylinders, heads, sectors) value of NTFS boot partition after image is restored. NTFS-BOOT-PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the NTFS boot partition automatically)
-e2, --load-geometry-from-edd Force to use the CHS (cylinders, heads, sectors) from EDD (Enhanced Disk Device) when creating partition table by sfdisk
-r, --resize-partition Resize the partition when restoration finishes, this will resize the file system size to fit the partition size. It is normally used when when a small partition image is restored to a larger partition.
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool. When this option is used, it only works for restoredisk mode, not the restoreparts one
-k0, Create partition table based on the partition table from the image. this is the same as as default. Just an option to let us explain the action easier.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-g, --grub-install GRUB_PARTITION Install grub in the MBR of the disk containing partition GRUB_PARTITION with root grub directory in the same GRUB_PARTITION when restoration finishes, GRUB_PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the grub root partition automatically). If "auto" is assigned, it will work if grub partition and root partition are not in the same partition.
-e1, --change-geometry NTFS-BOOT-PARTITION Force to change the CHS (cylinders, heads, sectors) value of NTFS boot partition after image is restored. NTFS-BOOT-PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the NTFS boot partition automatically)
-e2, --load-geometry-from-edd Force to use the CHS (cylinders, heads, sectors) from EDD (Enhanced Disk Device) when creating partition table by sfdisk
-r, --resize-partition Resize the partition when restoration finishes, this will resize the file system size to fit the partition size. It is normally used when when a small partition image is restored to a larger partition.
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool. When this option is used, it only works for restoredisk mode, not the restoreparts one
-k0, Create partition table based on the partition table from the image. this is the same as as default. Just an option to let us explain the action easier.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE DEVICE
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-g, --grub-install GRUB_PARTITION Install grub in the MBR of the disk containing partition GRUB_PARTITION with root grub directory in the same GRUB_PARTITION when restoration finishes, GRUB_PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the grub root partition automatically). If "auto" is assigned, it will work if grub partition and root partition are not in the same partition.
-e1, --change-geometry NTFS-BOOT-PARTITION Force to change the CHS (cylinders, heads, sectors) value of NTFS boot partition after image is restored. NTFS-BOOT-PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the NTFS boot partition automatically)
-e2, --load-geometry-from-edd Force to use the CHS (cylinders, heads, sectors) from EDD (Enhanced Disk Device) when creating partition table by sfdisk
-r, --resize-partition Resize the partition when restoration finishes, this will resize the file system size to fit the partition size. It is normally used when when a small partition image is restored to a larger partition.
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool. When this option is used, it only works for restoredisk mode, not the restoreparts one
-k0, Create partition table based on the partition table from the image. this is the same as as default. Just an option to let us explain the action easier.
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD

Según el sistema de arranque que utilice el sistema, debemos configurar un fichero u otro, hacemos backups de los dos ficheros de configuración:

cp /mnt/aux/syslinux/syslinux.cfg /mnt/aux/syslinux/syslinux.cfg.ori
cp /mnt/aux/boot/grub/grub.cfg /mnt/aux/boot/grub/grub.cfg.ori
vi /mnt/aux/boot/grub/grub.cfg

menuentry "BackupLinuxLUKSOpened" --id BackupLinuxLUKSOpened {
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=3 ocs_1_cpu_udev noswap edd=on nomodeset enforcing=0 noeject locales=en_US.UTF-8 keyboard-layouts=us ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -luks yes -q2 -j2 -z9p -i 0 -fsck-y -senc -p poweroff savedisk backupImageLinuxLuksOpened sda" ocs_live_extra_param="" vga=788 net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 scsi_mod.use_blk_mq=0 nvme.poll_queues=1
  $initrd_cmd /live/initrd.img
}

menuentry "RestoreLinuxLUKSOpened" --id RestoreLinuxLUKSOpened {
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=3 ocs_1_cpu_udev noswap edd=on nomodeset enforcing=0 noeject locales=en_US.UTF-8 keyboard-layouts=us ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageLinuxLuksOpened sda" ocs_live_extra_param="" vga=788 net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 scsi_mod.use_blk_mq=0 nvme.poll_queues=1
  $initrd_cmd /live/initrd.img
}
vi /mnt/aux/boot/grub/grub.cfg

menuentry "BackupLinuxLUKSClosed" --id BackupLinuxLUKSClosed {
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=3 ocs_1_cpu_udev noswap edd=on nomodeset enforcing=0 noeject locales=en_US.UTF-8 keyboard-layouts=us ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -luks no -q2 -j2 -z9p -i 0 -fsck-y -senc -p poweroff savedisk backupImageLinuxLuksClosed sda" ocs_live_extra_param="" vga=788 net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 scsi_mod.use_blk_mq=0 nvme.poll_queues=1
  $initrd_cmd /live/initrd.img
}

menuentry "RestoreLinuxLUKSClosed" --id RestoreLinuxLUKSClosed {
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=3 ocs_1_cpu_udev noswap edd=on nomodeset enforcing=0 noeject locales=en_US.UTF-8 keyboard-layouts=us ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageLinuxLuksClosed sda" ocs_live_extra_param="" vga=788 net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 scsi_mod.use_blk_mq=0 nvme.poll_queues=1
  $initrd_cmd /live/initrd.img
}
vi /mnt/aux/syslinux/syslinux.cfg

label BackupFreeBSD
MENU DEFAULT
# MENU HIDE
MENU LABEL BackupFreeBSD
# MENU PASSWD
kernel /live/vmlinuz
append initrd=/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset enforcing=0 ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -q2 -j2 -z9p -i 0 -sfsck -senc -p poweroff savedisk backupImageFreeBSD sda" ocs_live_extra_param="" keyboard-layouts=NONE locales=en_US.UTF-8 vga=788 ip= nosplash net.ifnames=0 splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
TEXT HELP
* Backup FreeBSD system
ENDTEXT

label RestoreFreeBSD
# MENU DEFAULT
# MENU HIDE
MENU LABEL RestoreFreeBSD
# MENU PASSWD
kernel /live/vmlinuz
append initrd=/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset enforcing=0 ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageFreeBSD sda" ocs_live_extra_param="" keyboard-layouts=NONE locales=en_US.UTF-8 vga=788 ip= nosplash net.ifnames=0 splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
TEXT HELP
* Restore FreeBSD system
ENDTEXT
vi /mnt/aux/boot/grub/grub.cfg

menuentry "BackupWindoz" --id BackupWindoz {
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=3 ocs_1_cpu_udev noswap edd=on nomodeset enforcing=0 noeject locales=en_US.UTF-8 keyboard-layouts=us ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -q2 -j2 -z9p -i 0 -sfsck -senc -p poweroff savedisk backupImageWindoz sda" ocs_live_extra_param="" vga=788 net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 scsi_mod.use_blk_mq=0 nvme.poll_queues=1
  $initrd_cmd /live/initrd.img
}

menuentry "RestoreWindoz" --id RestoreWindoz {
  search --set -f /live/vmlinuz
  $linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet loglevel=3 ocs_1_cpu_udev noswap edd=on nomodeset enforcing=0 noeject locales=en_US.UTF-8 keyboard-layouts=us ocs_prerun="mount UUID=7f4ae4a7-df39-4cab-a723-9fe57ec70fcf /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_batch="yes" ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k0 -p poweroff restoredisk backupImageWindoz sda" ocs_live_extra_param="" vga=788 net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 scsi_mod.use_blk_mq=0 nvme.poll_queues=1
  $initrd_cmd /live/initrd.img
}

NOTA: En GRUB-EFI la entrada por defecto es la primera de la lista, en SysLinux-BIOS debemos indicarlo mediante el parámetro MENU DEFAULT, debemos quitarlo de la entrada por defecto de Clonezilla y asignarlo a la entrada que deseemos.

Desmontamos la partición:

umount /mnt/aux

Ahora al arrancar deberíamos de poder ver las opciones nuevas de cada SO:

EFI BIOS

Dejo un video acelerado de la ejecución automática del backup de cada sistema:

Linux-EFI-LUKS-Opened Linux-EFI-LUKS-Closed FreeBSD-BIOS Windoz-EFI

También de la ejecución automática del restore:

Linux-EFI-LUKS-Opened Linux-EFI-LUKS-Closed FreeBSD-BIOS Windoz-EFI

Personalización:

Imagen bootloader:
Montamos la partición donde se instaló Clonezilla para editar la configuración GRUB/SysLinux:

mkdir /mnt/aux 2>/dev/null
mount /dev/sdX1 /mnt/aux

Generamos una imagen por cada sistema de arranque, para ello nos basaremos en las existentes para que sea lo mas parecida posible a estas:

convert /home/kr0m/clonezillaMenu.png -resize $(identify -format "%wx%h" /mnt/aux/boot/grub/ocswp-grub2.png) -quality $(identify -format "%Q" /mnt/aux/boot/grub/ocswp-grub2.png) /mnt/aux/boot/grub/CUSTOM_IMAGE.png
convert /home/kr0m/clonezillaMenu.png -resize $(identify -format "%wx%h" /mnt/aux/syslinux/ocswp.png) -quality $(identify -format "%Q" /mnt/aux/syslinux/ocswp.png) /mnt/aux/syslinux/CUSTOM_IMAGE.png

Debemos configurar GRUB para sistemas EFI o SysLinux para sistemas BIOS, cambiamos la imagen y el esquema de colores para que quede mas “cool”:

vi /mnt/aux/boot/grub/grub.cfg

if background_image $pref/CUSTOM_IMAGE.png; then
set color_normal=cyan/black
set color_highlight=magenta/black
else
set color_normal=cyan/blue
set color_highlight=white/blue
fi
vi /mnt/aux/syslinux/syslinux.cfg

MENU BACKGROUND CUSTOM_IMAGE.png
# Set the color for unselected menu item and timout message
MENU COLOR UNSEL 7;32;41 #f904e9ff #00000000
MENU COLOR TIMEOUT_MSG 7;32;41 #c0000090 #00000000
MENU COLOR TIMEOUT 7;32;41 #c0000090 #00000000
MENU COLOR HELP 7;32;41 #c0000090 #00000000

Desmontamos la partición:

umount /mnt/aux

El resultado final es el siguiente:

EFI BIOS

Bloqueo edición entradas bootloader:
Montamos la partición donde se instaló Clonezilla para editar la configuración GRUB/SysLinux:

mkdir /mnt/aux 2>/dev/null
mount /dev/sdX1 /mnt/aux

Debemos configurar GRUB para sistemas EFI o SysLinux para sistemas BIOS:

Generamos el hash del password con el que queramos proteger la edición:
grub-mkpasswd-pbkdf2 -> PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.6369BC323B8D47700F030B95E6925711767A2FFBA42A15ECDA70F526FD168D26DCB10F678659C16BD35DF0755B0BBDD85C5BE6431B3FA096EF458483EAADBF8D.C6A72EB74DE77029677F2DDF159DCA09729B47B58D3A2089189AA4F7D77585AC304A1EB0C7DA5B91BF569C5F4D6915F65EEFF315A461D8FCE5BBE8D86E75251B

vi /mnt/aux/boot/grub/grub.cfg
# Añade al principio del archivo, después de los primeros set:
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.6369BC323B8D47700F030B95E6925711767A2FFBA42A15ECDA70F526FD168D26DCB10F678659C16BD35DF0755B0BBDD85C5BE6431B3FA096EF458483EAADBF8D.C6A72EB74DE77029677F2DDF159DCA09729B47B58D3A2089189AA4F7D77585AC304A1EB0C7DA5B91BF569C5F4D6915F65EEFF315A461D8FCE5BBE8D86E75251B

Con esto pedirá password tanto para editar como para bootear entradas, si queremos que pueda bootear sin password pero siga pidiéndolo para la edición, debemos añadir `--unrestricted` a dichas entradas:
menuentry "ENTRY_NAME" --unrestricted --id ENTRY_ID {
Generamos el hash del password con el que queramos proteger la edición:
openssl passwd -1 "PASSWORD" -> $1$4FDprPSy$HjmXr.TBbS8MVbGp.oFT/1

vi /mnt/aux/syslinux/syslinux.cfg
# Añade al principio del archivo, antes de las entradas del menú:
MENU MASTER PASSWD $1$4FDprPSy$HjmXr.TBbS8MVbGp.oFT/1

Con esto pedirá password solo para editar entradas, si queremos que pida password también al bootearlas debemos añadir `MENU PASSWD` a dichas entradas:
MENU PASSWD

Desmontamos la partición:

umount /mnt/aux

Cuando intentemos editar las entradas nos pedirá el password:

EFI(user/pass) BIOS(pass)

HD vs SSD:

A continuación una tabla comparativa de los tiempos de backup/restore en sistemas Linux/FreeBSD en un disco mecánico HD y en un SSD.
NOTA: No he podido probarlo con Windows ya que el equipo de pruebas era prestado y ya no disponía de este.

Operation HD SSD
Backup: Linux-EFI+cifrado(abriendo) 8m 7m
Restore: Linux-EFI+cifrado(abriendo) 8m 8m
Backup: Linux-EFI+cifrado(sin abrir) 11m 10m
Restore: Linux-EFI+cifrado(sin abrir) 11m 11m
Backup: FreeBSD-BIOS 5h30m 5h
Restore: FreeBSD-BIOS 5h30m 5h

Como podemos ver no hay una gran diferencia, seguramente porque el puerto USB nos estará haciendo de cuello de botella.


Troubleshooting:

MBR y GPT detectados simultáneamente:
Si manipulamos las paticiones se puede dar el caso en el que el backup de Windows detecte tanto una partición MBR como GPT:

Nos indica dos opciones que podremos ejecutar desde la shell de Clonezilla:

  • Si el sistema es BIOS, destruir la partición GPT:
sgdisk -z /dev/sdX
  • Si el sistema es EFI, destruir la partición MBR:
dd if=/dev/zero of=/dev/sdX bs=512 count=1

NOTA: Mucho cuidado con lo que hacemos que se puede inutilizar el sistema fácilmente.

Guardado de logs:
Guardar siempre los logs puede resultar problemático ya que estos se acumulan en la partición donde está instalado Clonezilla:

drwxr-xr-x   2 kr0m kr0m  4096 May 29 18:27 ocslog-20250529-1827
drwxr-xr-x   2 kr0m kr0m  4096 May 29 18:18 ocslog-20250529-1939
drwxr-xr-x   2 kr0m kr0m  4096 May 29 18:20 ocslog-20250529-2005
drwxr-xr-x   2 kr0m kr0m  4096 May 29 20:09 ocslog-20250529-2010
drwxr-xr-x   2 kr0m kr0m  4096 May 29 22:58 ocslog-20250529-2258