julio 02, 2015

Builders

Last Update: Jul 17/2015
Hace algún tiempo publicamos dos post sobre la clonación de equipos, servidores, redes, etc. En Clonación Incremental, ofrecimos algunos métodos para hacer migraciones entre equipos físicos y en la segunda parte, Clonación Virtual, nos concentramos en los sistemas P2V (Physical to Virtual) V2V (Virtual to Virtual) y V2P (Virtual to Physical), para hacer migraciones de los sistemas físicos y virtuales, en especial los críticos (24/7) sin interrupciones en el servicio.
Sin embargo, es frecuente que muchos usuarios tengan sus propias preferencias y quieran crear una distribución de un sistema operativo a partir de una instalación previa personalizada, para distribuirla en otros entornos, con diferente hardware, pero con una configuración similar. En este punto, los métodos de clonación propuestos probablemente no aplicarían ya que los métodos actuales de clonación no permiten la personalización durante el proceso de creación de la imagen del equipo a clonar, ni tampoco en destino (solamente replica un sistema hacia otro)
Es ahí donde entran una serie de herramientas "constructoras" (builders) de "distros" o imagenes personalizadas, ya sea a partir de una .iso de su distribución favorita, o de un sistema previamente instalado y tuneado. Hoy analizaremos algunas de estas alternativas.
Aclaratoria del término "distro"
El término "distro" (distribución de un Sistema operativo) ha sido vandalizado en GNU/linux. Hoy existen infinidades de "distribuciones", la mayoría basadas en las grandes Debian, RedHat, etc. Incluso hay "distros" basadas en otras "distros" (una bifurcación de otra, también conocidas como "fork"), como la familia Ubuntu, que a su vez se basa en Debian. En cambio otras distros ya no son "distros" sino un simple "lavado de cara", por ejemplo, toman una versión de Ubuntu y le hacen unas modificaciones (le cambian el escritorio, le incluyen algunas herramientas adicionales, etc) y la publican bajo otro nombre. Esto ha sido tema de intensos debates, sin que hasta la fecha haya un consenso de cómo se le deben llamar a estos fork de fork.
Por lo anterior, y para efectos de este post, y para no enredarnos ni generar desorden o confusión, utilizaremos el término "distro" para referirnos a cualquier distribución GNU/Linux, incluyendo estos "hijos" fork, sus nietos "lavados de cara" y cualquier otra cosa que se les ocurra que parezca Linux. Así contribuiremos al caos... o al orden.
Distros a la carta
Remastersys ya no está disponible, sin embargo era considerada una de las mejores herramientas que se hayan diseñado para este propósito. Entre sus bondades nos ofrecía crear una imagen de nuestro DD, incluyendo /home y otra sin incluir /home, lo cual era una ventaja en términos de rapidez y efectividad, sin embargo dejo de publicarse hace algún tiempo, y a pesar de que muchos han intentado seguir utilizándola, valiéndose de muchas mañas, el punto es que a no ser que reciban una inyección de capital, sus desarrolladores no volverán a actualizarla.
Development of Remastersys has ended.
I thank all the good people I've met over the years and thank them very much for their support of remastersys and apologize for having to stop.
Otras alternativas similares han tratado de llenar este vacío, como Ubuntu Customization Kit (UCK) y Ubuntu Builder (crean un Live CD/DVD personalizado de Ubuntu y derivados), Reconstructor y Garfio (similares Remastersys pero no se actualizan hace varios años), Linux Live; otras más limitadas, como Live-Magic (Para Debian), SUSE Studio (para SUSE Linux Enterprise y openSUSE), MySlax Creator (para Slax), Revisor y Purgui (para Fedora), InstallLinux (asistente online te permite generar una imagen .iso de varias distros de Linux) etc, etc.
También podemos crear una distro desde 0, con algunos procedimientos, tutoriales LinuxFromScratch LFS (En español), construction kit (Cosmos), debootstrap, dfsbuild, bootcd, mklivecd, etc, etc, pero no son opciones aptas para el usuario promedio.
Sin embargo, cuando creíamos que nunca íbamos a poder crear nuestra propia distro o hacer un backup entero de nuestro sistema de una forma sencilla, una herramienta hizo esto posible, y adicionalmente incorpora una característica típica de los sistemas Windows, que ha sacado a más de uno de apuros; hablamos de Systemback y sus famosos "puntos de restauración".
No es necesario que expliquemos su funcionamiento, ya que existen sendos tutoriales muy bien elaborados, sin embargo hay un par de cosas que vale la pena mencionar.
Instalación en Debian/Ubuntu
sudo add-apt-repository ppa:nemh/systemback
sudo apt-get update
sudo apt-get -y install systemback
Puntos de restauración de Linux al estilo Windows
Si bien el roll-back no es nuevo y Guix o Clozillapueden generar puntos de restauración en Linux, Systemback lo hace desde el escritorio GUI, lo cual es una ventaja para el usuario medio y una opción ideal para casos de desastres.
También podemos contar con copia de seguridad de sistema, reparación de sistema, actualización del sistema (upgrade), creación y gestión de los puntos de restauración (distintas posibilidades de restauración al estilo windows), copia de sistema a otros discos o particiones, instalación del sistema a otros discos o particiones, sincronización del directorio /home con tan solo un click y crea un LiveCD en formato .sbl (sblive), con nuestra distro personal (sistema instalado) para volcarla a un dispositivo usb o crear una imagen .iso.
Puntos débiles
Systemback, a la fecha, solo es compatible con Ubuntu y derivados (y algunas versiones de Debian); no tiene soporte de red; las imágenes generadas no pueden ser superiores a 4 GB; presenta fallas cuando utilizamos sistemas virtuales; es escasa la documentación; su sistema de particionado de discos es bastante confuso; es bastante limitado su uso en entornos no gráficos (no cuenta con entorno web y solo se puede modificar el directorio de almacenamiento, crear nuevos puntos de restauración, eliminar puntos de restauración, recuperar y actualizar el sistema).
systemback-cli -h
Usage: systemback-cli [option]
Options:
  -n, --newbackup          create a new restore point
  -s, --storagedir         get or set the restore points storage directory path
  -u, --upgrade            upgrade the current system remove the unnecessary files and packages
  -v, --version            output the Systemback version number
  -h, --help               show this help
Y el path por defecto para almacenar los puntos de restauración solo se puede cambiar por consola (a veces)
sudo systemback-cli -s /new/path
# Y verificamos con
systemback-cli -h
Sin embargo, lo que más nos llamó la atención, es que no realiza la instalación de la distro LiveCD creada, desde el boot, a pesar de tener esta opción.
Por ejemplo, supongamos que queremos crear un liveCD (con opción de instalación), de nuestro servidor o máquina virtual, que contenga una copia exacta (snapshot) de nuestras configuraciones, app, etc, con la idea de exportarlo hacia un nuevo terminal o VM, similar a lo que haríamos en la clonación virtual. Si bien esta herramienta es capaz de hacerlo, sólo puede realizarlo desde el escritorio. O sea, hay que iniciar en modo LiveCD, luego particionar el disco con gparted o con su gestor, y asignar los parámetros de usuario para finalmente instalar nuestro sistema.
Pero la cosa se complica cuando intentamos hacer el procedimiento P2V (máquina física a una virtual), V2P (Virtual to Physical), o si el equipo tiene drivers privativos, es altamente probable que no inicie en modo gráfico y salga el mensaje "The system is running in low-graphics mode” o simplemente la pantalla aparezca en negro.
Sin embargo (como todo lo que se diseña para Linux), hay que echar mano de algunos "trucos extras" (no garantizados) para que las cosas funcionen mas o menos, sobre todo en conversiones P2V.
Por ejemplo, si vamos a migrar un sistema físico en virtual P2V, una vez creemos el LiveCD de nuestro sistema y la VM, antes de correrlo en Virtualbox debemos desactivar el hardware de red, sonido, y todo lo que puedan desactivar. Le asignamos una cantidad de memoria RAM y disco duro similar a la que tenía el sistema físico anterior y activamos 3D (para los casos de sistemas con drivers privativos, especialmente con tarjetas gráficas ATI, Intel y AMD). Al terminar de instalar nuestro sistema en el disco duro virtual, iniciamos normalmente, luego apagamos la VM y activamos la red y todo lo que habíamos deshabilitado e iniciamos nuevamente.
Adicionalmente podemos instalar el paquete:
sudo apt-get install virtualbox-guest-dkms
En este punto, su sistema virtual (o físico) migrado, ya debería estar funcionando, sin embargo, si se presentan problemas de pantalla negra o sale el mensaje "The system is running in low-graphics mode” deberá realizar nuevamente la copia de su sistema, pero esta vez desactivando el driver del adaptador gráfico antes de crear el LiveCD.
Verificamos nuestra tarjeta gráfica de nuestro sistema físico
lspci | grep VGA
Y en caso de que tenga driver propietario o sea una ATI, AMD o Intel (que son las más jodidos), antes de crear el LiveCD cambiamos a modo VGA por defecto (VESA Driver).
Creamos el archivo /etc/X11/xorg.conf con el siguiente contenido y reiniciamos nuestro PC.
Section "Device"
Identifier "Configured Video Device"
Driver "vesa"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection 
Al reiniciar, entrará en modo VGA, con los drivers gráficos mínimos, y ya podemos crear nuestra distro LiveCD.
Si su sistema a migrar es de una laptop y utiliza la herramienta "laptop-mode", se recomienda activarla (vea tutorial). Para esto ingresamos a esta utilidad:
sudo nano /etc/laptop-mode/laptop-mode.conf
Y cambiamos:
ENABLE_LAPTOP_MODE_ON_AC=0
por
ENABLE_LAPTOP_MODE_ON_AC=1
Verificamos que la batería este en 1 (hdparm), aunque podemos cambiar el nivel, 1 (min) 256 (max). Se recomienda un valor intermedio.
ENABLE_LAPTOP_MODE_ON_BATTERY=1
Finalmente reiniciamos
sudo /etc/init.d/laptop-mode restart
Y verificamos que esté activo
sudo laptop_mode start
Laptop mode 
enabled, active [unchanged]
Contactamos a Krisztián Kende, desarrollador de SystemBack, para conocer su opinión acerca de este manojo de problemas, y nos respondió:
Systemback is a system backup and restore application. The Live image is not just an installer (and not a distribution), but primarily a restore point. And Systemback is not just a basic installer (without any international options), but you can copy and repair the system on the Live.
En resumen, Systemback no está orientada a la creación de distros personalizadas de un sistema previamente instalado (a pesar de tener esta utilidad), sino solamente al backup y restauración de archivos o sistemas completos, y a la creación de "puntos de restauración", y en este último aspecto Systemback no tiene rival; y los fans de crear distros personalizadas, Systemback no es la mejor opción.
Pero ninguna de las alternativas mencionadas construyen de una forma intuitiva, una distro de un sistema operativo previamente instalado y personalizado o de una .iso y la incluye en el menú de arranque para realizar una instalación en limpio (con opciones de instalación internacional) y cuando lleguemos al escritorio tengamos la misma configuración (o similar) que teníamos en el anterior equipo, con la información nueva agregada (cuenta de usuario y otros parámetros); y los pocos que brindan esta alternativa, como garfio o remastersys, el proceso es un poco traumático, y tampoco evitan el conflicto de drivers por cambio de hardware durante la migración de un sistema a otro entorno.
En este orden de ideas, pueden utilizarlas para realizar backup y acciones similares, pero no para una clonación virtual o incremental. Para esto, en el caso de GNU/linux, lo ideal es seguir utilizando el comando dd (o su versión gui gdiskdump)
Sin embargo, tal vez, podría cambiar. Su desarrollador, nos ha dejado la puerta abierta para solucionar algunos de estos inconvenientes en próximas versiones, al agregar:
Systemback: Next release
"... But I will think about the possibilities in the future"
Si mejora en los aspectos mencionados, tal vez podría convertirse en un soporte de respaldo y recuperación, tanto de sistemas vitales como del hogar y/o negocios, y en una herramienta esencial para los amantes de la clonación virtual en Linux.
De hecho, actualmente existen algunas distros que se distribuyen usando un LiveCD generado con esta herramienta.
¿Lo logrará o terminará sus días como remastersys o garfio?... Solo el tiempo lo dirá. Lo único que podemos afirmar, a la fecha, es que a Systemback es una excelente herramienta, pero aún le falta mucho camino por recorrer.

Imagen cortesía de SourceForge/Systemback
Maravento, Actualizado en: 10:58
Escrito por: Maravento Studio
 
© 2017 Maravento. All Rights Reserved | Powered by Maravento
Design by Novatoz and Maravento | Bloggerized By LawnyDesignz
# https://github.com/google/code-prettify