Uniendo 2 herramientas fabulosas

Ok, primeramente debo agradecer al amigo Alfonso Pastor del Blog 2 Tazas de Linux por haber publicado la idea original
Ahora si, Manos a la Obra:
IMPORTANTE: Todo debemos hacerlo en una consola de “root”
Ingredientes las iso’s de clonezilla y systemrescue que las podemos bajar de AQUI y de AQUI
– Necesitamos tener instaladas las squashfs-tools
En caso que usemos debian o una de sus hijas sería:

aptitude install squashfs-tools

Una vez que tenemos todo creamos los puntos de montaje con el siguiente comando

mkdir -p /tmp/clonezilla /tmp/srcd /tmp/trabajoA /tmp/trabajoB

(Yo Trabajo en /tmp/ porque así no quedan residuos luego, el detalle está en que si trabajas en una PC y se te corta la luz luego hay que volver a empezar)
Montamos las isos

mount -o loop systemrescuecd*.iso /tmp/srcd/
mount -o loop clonezilla*.iso /tmp/clonezilla/

Cambiamos a la carpeta donde extraeremos las “cositas” del clonezilla:

cd /tmp/trabajoA/

Extraemos el sistema de fichero comprimido (que se encuentra en formato squashfs) de la siguiente manera:

unsquashfs /tmp/clonezilla/live/filesystem.squashfs

Repetimos la operación con el systemrescue:

cd /tmp/trabajoB/
unsquashfs /tmp/srcd/sysrcd.dat

Y nos quedamos en este directorio ya que todos los cambios se realizarán aca.
Como no podemos simplemente meter un sistema dentro del otro (al mezclar un ubuntu con un gentoo así sin más pueden tener la seguridad que algo explota)

cp -avfdpR /tmp/trabajoA/squashfs-root/usr/share/drbl squashfs-root/usr/share/
cp -avfdpR /tmp/trabajoA/squashfs-root/usr/sbin/clonezilla squashfs-root/usr/sbin/clonezilla
cp -avfdpR /tmp/trabajoA/squashfs-root/usr/sbin/drbl* squashfs-root/usr/share/sbin/
cp -avfdpR /tmp/trabajoA/squashfs-root/etc/drbl squashfs-root/etc/

(Acá viene una parte tomada textualmente de Blog 2 Tazas de Linux)

Durante la restauración de las imágenes Linux, se producen errores indicando que no existe partclone.ext3. Si husmeamos con find | grep en SystemRescueCD vemos que tiene un partclone.extfs, pero no partclone.ext3. Mirando en Clonezilla, en su directorio usr/sbin vemos:

partclone.ext2 −> partclone.extfs
partclone.ext3 −> partclone.extfs
partclone.ext4 −> partclone.extfs
partclone.ext4dev −> partclone.extfs
partclone.extfs

Vamos, que Clonezilla tiene partclones variados, pero todos acaban apuntando a partclone.extfs. Lo único que hay que hacer en SystemRescueCD es imitar esta estructura:

cd squasfhs-root/usr/sbin
ln -sf partclone.extfs partclone.ext2
ln -sf partclone.extfs partclone.ext3
ln -sf partclone.extfs partclone.ext4
ln -sf partclone.extfs partclone.ext4dev
cd ../../

Clonezilla necesita un directorio /home/partimag como punto de montaje para las imágenes. El SystemRescueCD no lo tiene, asi que hay que crearlo a mano:

mkdir -p squashfs-root/home/partimag

Por último, también nos da problemas la restauración de imágenes Linux al intentar utilizar el comando mkswap-uuid para restaurar la partición de swap. Si buscamos este comando en SystemRescueCD vemos que no existe. ¿Qué hacemos?. Pues copiarlo de Clonezilla a SystemRescueCD, así, tal cual.

cp -avfdpR /tmp/trabajoA/squashfs-root/sbin/mkswap-uuid squashfs-root/sbin/mkswap-uuid

(Fin de la Cita)

En mi experiencia particular me di cuenta un par de detalles:
Hay cosas que busca en /opt y otras que busca en /usr/share ¿que hacemos? ¿copiamos todo en ambos directorios? ¿Para qué? ¡Podemos crear enlaces!

mount -o bind /proc squashfs-root/proc/
mount -o bind /dev squashfs-root/dev/
mount -o bind /sys squashfs-root/sys/
chroot squashfs-root/ /bin/bash
ln -s /usr/share/drbl /opt
exit
umount -l squashfs-root/proc/
umount -l squashfs-root/dev/
umount -l squashfs-root/sys/
rm -Rfv squashfs-root/tmp/*

Si queremos que clonezilla esté accesible desde el menú (en caso que necesitemos arrancar systemrescue en modo gráfico) podemos hacer lo siguiente:

nano squashfs-root/usr/share/applications/clonezilla.desktop

y colocar allí dentro el siguiente texto:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[es_VE]=background
Name[es_VE]=Clonezilla
Name[en_US]=Clonezilla
Name=Clonezilla
Exec=clonezilla
Icon=background

Metida de pata de última hora: Al intentar correr unas opciones del clonezilla, me dió un par de errores por unos scripts propios del drbl que no conseguía, por lo tanto me tocó hacer un cp de los mismos:

cp -avfdpR /tmp/trabajoA/squashfs-root/usr/sbin/*-ocs-* squashfs-root/usr/sbin/
cp -avfdpR /tmp/trabajoA/squashfs-root/usr/sbin/ocs-* squashfs-root/usr/sbin/

Ahora volvemos a comprimir el sistema de ficheros:

mksquashfs squashfs-root sysrcd.dat

Generamos la suma md5:

md5sum sysrcd.dat > sysrcd.md5

Y ahora podemos usar este nuevo sistema de ficheros para re-crear una iso con isomaster. No explico el uso de isomaster porque es bastante gráfico e intuitivo

aptitude install isomaster

Sólo reemplazando los ficheros sysrcd.* y guardar la nueva iso para el uso que deseemos, grabarla a un cd o escribirla a un usb con unetbootin.

Para quien quiera ahorrarse el trabajo y desee descargar la iso creada mediante el procedimiento antes descrito lo puede hacer desde ACA.

Para finalizar comparto un video donde intento explicar graficamente lo escrito líneas atras:

PD: si queremos que clonezilla forme parte de nuestro menu de arranque en la iso o pendrive podemos modificar el mismo y añadir el siguiente texto:

(Lo podemos ubicar justo después del ENDTEXT de la etiqueta 7 para continuar el orden)

LABEL rescuecd_clonezilla
MENU LABEL 8) SystemRescueCd: directly start clonezilla
KERNEL ifcpu64.c32
APPEND rescue64 doclonezilla −− rescue32 doclonezilla
TEXT HELP
Boot standard kernel and start the clonezilla tool directly.
You can also get in this toll by typing “clonezilla” from
the console.
ENDTEXT

PPD: Si usamos unetbootin a lo mejor querramos tener el menú original de arranque, esto lo podemos lograr si borramos el menú creado por unetbootin (syslinux.cfg) y renombramos la carpeta “isolinux” por “syslinux” y dentro de esta carpeta renombramos el archivo “isolinux.cfg” por “syslinux.cfg”.

Gracias por la atención, la colaboración y se agradece cualquier sugerencia para mejorar; igualmente si notan algún error al intentar usar la herramienta por favor hacerlo saber en los comentarios.

2 pensamientos en “Uniendo 2 herramientas fabulosas

  1. Excelente compañero me puedes explicar que es una consola root ???

    • jmanuelcool dice:

      Una Consola (o terminal) es una aplicación o programa que hace posible interactuar directamente con el sistema operativo a través de órdenes y/o comandos, en este caso estamos actuando como un usuario con privilegios de administrador (root), que es quien puede instalar o desinstalar aplicaciones o, como en este caso, modificar archivos clave del sistema

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s