"Después del juego es antes del juego"
Sepp Herberger

jueves, 21 de enero de 2021

Preparando un dispositivo USB con arranque clonezilla e imágenes para restauración.

Siempre se me olvidan los pasos y tengo que andar mirando notas cuando me hace falta, así que voy a dejar aquí apuntados los métodos que tengo de crear un disco duro externo o pendrive autoarrancable con clonezilla y varias imágenes de disco.

Usaré clonezilla-live-2.5.5-38-amd64, que es el estándar que usamos en los centros educativos. Bajamos la versión amd64 en fichero zip mediante este enlace.

Asumirémos que el dispositivo USB está en la ruta /dev/sdd (con el comando "fdisk -l" podemos averiguar cual es el /dev/sdX que usa una vez pinchado en el puerto USB). A la hora de organizarlo tenemos dos opciones.
  1. Una única partición: se crea con gparted del tipo FAT32 y luego se formatea con:
    # mkfs.vfat -F 32 /dev/sdd1
  2. Usar dos particiones: con gparted creamos una (sdd1) con FAT32 de 256Mb o un poco mayor. El resto de disco con una partición (sdd2) de tipo NTFS o ext3/4 a la que pondremos la etiqueta "IMAGENES" para poder identificarla y montarla luego fácilmente. Una vez creadas las formateamos con:
    # mkfs.vfat -F 32 /dev/sdd1 
    # mkfs.ext3 /dev/sdd2
    # tune2fs –L IMAGENES /dev/sdd2
    
    o bien
    # mkfs.vfat -F 32 /dev/sdd1 
    # mkfs.ntfs /dev/sdd2
    # ntfslabel /dev/sdd2 IMAGENES
¿Qué diferencia hay entre poner una o dos particiones? Bueno, si ponemos una partición esta debe ser FAT32 por narices, con los límites de este formato (ficheros como mucho de 4GB y tamaño máximo de partición de 2TB). Además esa partición se monta de forma automática como "solo lectura", por tanto podemos restaurar imágenes pero no guardarlas en el dispositivo.

Con dos particiones, al ser la segunda extX o NTFS no tiene dichas limitaciones y además como la montamos en modo rw se puede tanto restaurar como guardar imágenes. Que cada cual elija su método favorito.

Una vez tenemos el disco con una o dos particiones preparado, lo conectamos y descomprimimos en la primera partición el fichero zip antes descargado, quedando la siguiente estructura de directorios dentro del mismo:
.
├── boot
│   └── grub
│       ├── efiboot.img
│       └── grub.cfg
├── Clonezilla-Live-Version
├── EFI
│   └── boot
│       ├── bootia32.efi
│       ├── bootx64.efi
│       ├── grub.cfg
│       ├── ocswp-grub2.png
│       └── unicode.pf2
├── GPL
├── home
│   └── partimag
├── live
│   ├── Clonezilla-Live-Version
│   ├── filesystem.packages
│   ├── filesystem.packages-remove
│   ├── filesystem.size
│   ├── filesystem.squashfs
│   ├── freedos.img
│   ├── initrd.img
│   ├── ipxe.efi
│   ├── ipxe.lkn
│   ├── memtest
│   └── vmlinuz
├── syslinux
│   ├── chain.c32
│   ├── drblwp.png
│   ├── isolinux.bin
│   ├── isolinux.cfg
│   ├── iso_sort.txt
│   ├── ldlinux.c32
│   ├── libcom32.c32
│   ├── libutil.c32
│   ├── memdisk
│   ├── menu.c32
│   ├── ocswp.png
│   ├── syslinux.cfg
│   └── vesamenu.c32
└── utils
    ├── linux
    │   ├── extlinux
    │   ├── makeboot.sh
    │   ├── syslinux
    │   └── VERSION.txt
    ├── mbr
    │   └── mbr.bin
    ├── README.txt
    ├── win32
    │   ├── makeboot.bat
    │   ├── syslinux.exe
    │   └── VERSION.txt
    └── win64
        ├── makeboot64.bat
        ├── syslinux64.exe
        └── VERSION.txt

13 directories, 45 files
Ahora hay que configurarlo como autoarrancable, eso lo hacemos con los comandos:
# cd /ruta/pendrive/utils/linux
# bash makeboot.sh /dev/sdd1
Con esto, ya tenemos el disco arrancable. Ahora hay que meter la imágenes clonezilla (recordemos que cada imagen de disco va un un subdirectorio separado) que queremos usar:
  1. Si usamos una partición, metemos las imágenes en el directorio /home/partimag de sdd1.
  2. Si usamos dos particiones, metemos las imágenes en el directorio raíz de sdd2
Por defecto, al arrancar clonezilla la primera partición del pendrive se monta en modo solo-lectura sobre /lib/live/mount/medium. Cuando se carga el programa principal (ocs-live-general) se enlaza /home/partimag sobre /lib/live/mount/medium/home/partimag. De esta manera, si al llegar al menú de selección de /home/partimag le decimos que use el ya existente (opción Skip) tendremos acceso directo a las imágenes allí contenidas.


El problema es cuando nuestras imágenes están en una partición distinta a sdd1. Podemos usar la opción "local_dev" de la captura anterior para montar dicha partición a mano o bien indicar en el arranque que se monte automáticamente. Para esto último debemos editar el fichero grub.cfg. Este fichero se guarda en la ruta EFI/boot/grub.cfg de la primera partición. Allí tendremos una serie de entradas como:
menuentry "Clonezilla live (Default settings, VGA 800x600)"{
  search --set -f /live/vmlinuz
  linux /live/vmlinuz boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
  initrd /live/initrd.img
}
En esa entrada habría que añadir el comando:
ocs_prerun="mount -L IMAGENES /home/partimag"
El cual, efectivamente, monta la partición etiquetada como IMAGENES en la ruta /home/partimag antes de entrar en el programa general de clonezilla que, como podemos ver, se llama "ocs_live_general".

El resultado final es:
menuentry "Clonezilla live (Default settings, VGA 800x600)"{
  search --set -f /live/vmlinuz
  linux /live/vmlinuz boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales= keyboard-layouts= ocs_prerun="mount -L IMAGENES /home/partimag" ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
  initrd /live/initrd.img
}
De esta manera, al arrancar ya tendremos en /home/partimag las imágenes contenidas en la segunda partición del disco. Tan solo hay que escoger "Skip/Saltar: use existing /home/partimag" al llegar al llegar al menú de selección de /home/partimag.

Con esto tenemos resuelta la cuestión de tener un dispositivo que contenga tanto el clonezilla como las imágenes. Otra cosa que muchas veces se necesita es una opción que cargue una imagen de forma automática, sin intervención humana. En ese caso añadimos a EFI/boot/grub.cfg una opción como:
menuentry "Clonezilla restauracion automática imagen backup-dep"{
  search --set -f /live/vmlinuz
  linux /live/vmlinuz boot=live config components union=overlay noswap edd=on nomodeset noprompt ocs_prerun="mount -L IMAGENES /home/partimag" ocs_postrun="sudo shutdown -r now" ocs_live_run="ocs-live-restore" ocs_live_extra_param=" -e1 auto -e2 -r -j2 -scr -p true restoredisk backup-dep sda" keyboard-layouts="es" ocs_live_batch="yes" locales="es_ES.UTF-8" vga=791 ip=frommedia nosplash
  initrd /live/initrd.img
}
Que coge la imagen "backup-dep" desde la partición IMAGENES del dispositivo y la restaura en la unidad de disco duro /dev/sda, apagando el ordenador al finalizar. El truco está en:
ocs_live_run="ocs-live-restore" 
ocs_live_extra_param=" -e1 auto -e2 -r -j2 -scr -p true restoredisk backup-dep sda"}
Para cambiar el nombre de la imagen o el disco destino solo hay que modificar el fragmento "backup-dep sda". La explicación del resto de parámetros podemos encontrarla en este post del blog de mi compañero Esteban.


Seguimos para bingo con SpaceX, ya tenemos un Falcon 9 que ha sido utilizado 8 veces sin problemas. Esta vez ha aterrizado en la barcaza "Just Read The Instructions", con malas condiciones de viento y mar. Ha colocado en órbita otros 60 satélites Starlink, por lo que ya tenemos 1015 subidos para proporcionar Internet desde la órbita baja.
Según he leído en algún sitio, ya se han lanzado mas Falcon 9 que cualquier otro tipo de cohete en la historia. Y luego hay conspiranoicos que dicen que todo es CGI...

No hay comentarios:

Publicar un comentario