martes, 11 de mayo de 2010

Remastersys, masterización de un sistema k/ubuntu

ACTUALIZACIÓN 13 Mayo 2010: He añadido un par de notas al final del artículo.
ACTUALIZACIÓN 16 Mayo 2010: He añadido otro par de notas al final del artículo.
ACTUALIZACIÓN 29 Junio 2010: Ante algunos fallos de no poder instalar desde la iso que crea remastersys en los comentarios he decidido repetir el procedimiento. He usado un Ubuntu 10.04 LTS (gnome) en VirtualBOX 3.2.6 con remastersys (la misma versión) He instalado las vboxaddons, ubuntu restricted extras y he actualizado todo el sistema a día de hoy. He seguido el procedimiento al pie de la letra y confirmo que es correcto. Se instala perfectamente Ubuntu 10.04 LTS actualizado y con los añadidos desde el iso que crea remastersys. Saludos.


Vamos a usar la herramienta Remastersys que sirve para crear una imagen de un sistema que ya tengamos instalado para poder distribuirlo o para poder hacer un backup con todo configurado.

Yo usaré Kubuntu 10.04 LTS 32bits y probaré la imagen en VirtualBox 1.3.8.

Instalación

Debemos descargar la herramienta desde sourceforge.

$ wget http://sourceforge.net/projects/remastersys/files/remastersys-ubuntu-karmic-lucid/remastersys_2.0.17-1_all.deb/download

Una vez descargada instalamos las dependencias que necesita

$ sudo aptitude install ubiquity squashfs-tools casper discover libdebian-installer4 libdebian-installer-extra4 user-setup dialog xresprobe

  • ubiquity: Es el instalador de Ubuntu.
  • squashfs-tools: Sirve para crear y añadir a un sistema de archivos squashfs de solo lectura y comprimido.
  • casper: Ejecuta un sistema preinstalado desde un sistema de ficheros de solo lectura.
  • discover: Identifica gran cantidad de hardware que esté instalado en la máquina en el momento del arranque.
  • libdebian-installer4, libdebian-installer-extra4: Bibliotecas de funciones de debian-installer.
  • user-setup: para la configuración inicial de usuario y contraseña.
  • dialog: se encarga de mostrar ventanas de dialogo en modo texto para que resulte amigable la instalación.
  • xresprobe: se encarga de detectar la mejor resolución de pantalla para nuestro sistema.
Otro prerrequisito es que debemos tener el sistema instalado y con las aplicaciones que usemos instaladas y la configuración hecha. Vamos el sistema que usemos a diario.

Por último, instalamos remastersys

$ sudo dpkg -i remastersys_2.0.17-1_all.deb

Uso de remastersys

Remastersys nos permite crear diferentes tipos de sistemas live autoarrancables con soporte de instalación. Esto quiere decir que podremos usar la imagen que creemos como un live CD personalizado o instalarlo en un disco duro con nuestro sistema personalizado.

Podemos crear una imagen live de CD o una imagen dvd (iso).

Hay dos formas de crear la imagen con dos opciones diferentes

Dist

Esta opción nos permite crear una imagen que podemos distribuir, por ejemplo, pasarla a un amigo para que tenga una distribución con todo instalado pero sin nuestro ficheros personales (/home) ni configuración propia.

Para realizarla, se "debería" comenzar con una instalación limpia de Ubuntu o derivado y usar un único usuario para realizar los cambios.

Se recomienda no haber instalado los drivers propietarios de las tarjetas de video ya que, si la distribuimos a una maquina con otra tarjeta, esos drivers no son validos.

Se recomienda eliminar el historial y las caches, además, es mejor basarse en el directorio /etc/skel que es el que usan por defecto los usuarios del sistema (.profile, ,bashrc, .bash_logout)

Por último,no se debe tener abierta ninguna ventana mientras se realiza la imagen cd/dvd y hay que desmontar los sistemas de ficheros en red que tengamos (nfs, samba...)

Backup

Sirve para realizar la imagen con configuraciones incluidas de /home. Básicamente copia /home. Hay que tener cuidado porque /home suele ser muy extenso y la imagen squashfs no puede superar la capacidad de 4gb (ver notas). Es decir, es una copia de seguridad completa del sistema.

Se puede realizar con cualquier usuario del sistema, aunque conviene que sea un usuario incluido en sudoers con capacidad de uso de sudo como root. En Ubuntu suele ser el primero creado.

Si se usan drivers de video propietarios (ati, nvidia...) tendrás que reinstalarlos.

Archivos de configuración

Remastersys se configura en /etc/remastersys/ donde tiene una serie de directorios que nos permiten configurar la herramienta. Podemos pasar variables al instalador en /etc/remastersys/preseed/custom.preseed

El fichero de configuración global lo tenemos en /etc/remastersys.conf. Podemos excluir ficheros, poner el usuario, etc. Supongamos el usuario casa.

#Remastersys Global Configuration File

# Directorio temporal donde se crea la imagen y ficheros temporales, no se incluye en el cd/dvd
WORKDIR="/home/remastersys"

# Se pueden poner directorios o ficheros que se excluirán de la imagen creada.
# Se separan con espacios.
EXCLUDES="/home/casa/Documentos /home/casa/Descargas /home/casa/Música /home/casa/Imágenes /home/casa/Videos /home/casa/.wine"

# Usuario del live CD/DVD
# "custom" por defecto
LIVEUSER="casa"

# Etiqueta de la imagen de CD
LIVECDLABEL="MiKubuntu"

# Nombre de la imagen iso, por defecto custom.iso
CUSTOMISO="misistema.iso"

# URL de información para usb-creator
LIVECDURL="http://www.geekconnection.org/remastersys"

Este fichero lo usaremos para la imagen backup ya que excluimos directorios completos con miles de megas.

Creación de una imagen dist

Una vez que hayamos instalado todas las aplicaciones que queremos que incluya (firefox, kubuntu-restricted-extas, blender, gimp...) y configurado el sistema (repositorios, archivos en /etc/), crearemos la imagen iso.

$ sudo aptitude update
$ sudo aptitude full-upgrade
$ sudo aptitude clean

$ sudo remastersys dist misistema.iso
Distribution Mode Selected
Leyendo lista de paquetes...
Creando árbol de dependencias...
Leyendo la información de estado...
Los siguientes paquetes se ELIMINARÁN:
  popularity-contest ubuntu-standard
...
Se instalarán los siguientes paquetes NUEVOS:
  ubiquity-frontend-kde
0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados.
...
Checking if the /home/remastersys/remastersys folder has been created
...
 Calculating the installed filesystem size for the installer
Making disk compatible with Ubuntu Startup Disk Creator.
Creating md5sum.txt for the livecd/dvd
Creating misistema.iso in /home/remastersys/remastersys
Creating misistema.iso.md5 in /home/remastersys/remastersys
/home/remastersys/remastersys/misistema.iso is ready to be burned or tested in a virtual machine.
 
Check the size and if it is larger than 700MB you will need to burn it to a dvd
 
1,7G /home/remastersys/remastersys/misistema.iso
 
It is recommended to run 'sudo remastersys clean' once you have burned and tested the misistema.iso

He puesto la salida resumida. Como vemos ha creado la imagen iso misistema.iso (no es necesario ponerlo si configuramos /etc/remastersys.conf en un directorio que crea para remastersys en /home. La imagen ocupa 1.7G por tanto deberá ser grabada en un DVD, o usarla para maquinas virtuales. En mi caso la he usado con virtualbox y funciona correctamente. Antes hemos actualizado los repositorios y el sistema para que se cree la imagen totalmente actualizada y eliminamos los paquetes de la cache para que sea más ligera. 1,7G con todo instalado no está nada mal, teniendo en cuenta que mi partición / donde está todo menos swap y /home (300G) ocupa 4,6G.

Recordamos que toda la configuración propia de un usuario se perderá (/home) como las del escritorio KDE, por ejemplo, los favoritos del explorador Firefox, etc. Tampoco tendremos los scripts (guiones) de amarok, etc. Todo lo que se guarde en /home fuera.

La imagen se habrá creado con el kernel que estuviéramos usando en ese momento. Por tanto, si usamos la imagen en un sistema que no tenga características que usa el kernel puede fallar. En mi caso, usaba el kernel pae. Hasta que no active pae en la máquina virtual no pude arrancar correctamente la imagen

Esta imagen creada arrancará y nos saldrá la siguiente pantalla


Como vemos es un grub personalizado. Podemos elegir varias opciones. Live para ver si todo esta correcto sin instalar nada o install para instalarlo en el disco duro, entre otras.

Al elegir install, nos saldrá el instalador normal de Kubuntu (en mi caso). Habrá que seleccionar el idioma, particionar discos, crear el usuario y contraseña que usábamos, etc. Como si fuera una instalación nueva. También poner el nombre de host que usábamos. Se supone que es para nosotros.

Un "truco" para mantener la configuración usando una imagen dist. Si usábamos otra partición para /home (lo recomendado) en el sistema instalado, cuando hagamos el particionado de discos al instalar la imagen, elegimos la partición manual y dejamos la partición donde estaba /home intacta, es decir, seleccionamos la partición, le decimos que la use con el sistema de ficheros que teníamos (ext4 en mi caso), que no la formatee (importante :-)) y que el punto de montaje sea /home. Las demás particiones podemos modificarlas como queramos para ajustar / o swap... Obviamente no crearemos una tabla de particiones nueva porque destruiremos todas. Con esto, al instalar usará el antiguo /home y toda configuración del usuario que teníamos seguirá ahí.

Si hemos distribuido la imagen a otro usuario y máquina se pueden cambiar las opciones de instalación.

Los drivers gráficos privativos hay que reinstalarlos. En mi caso los de nvidia.

Creación de una imagen completa

Para crear una imagen completa o de backup, básicamente hacemos lo mismo que en el anterior apartado, excepto que antes, debemos hacer copia de seguridad de todos los ficheros de /home que excedan el espacio de 4G. Es decir, videos, documentos, imágenes, etc. Después podemos volver a restaurarlas en /home. Todas las particiones + /home < 4G. También se recomienda no guardar /home/usuario/.wine porque da problemas, dicen, aunque es cuestión de probar. Sobretodo hay que valorar sacar juegos que tengamos instalados bajo .wine o programas que ocupen mucho.

También podemos hacer la imagen usando la directiva EXCLUDES="directorios ficheros" en el archivo /etc/remastarsys.conf. Al hacer eso saltara esos directorios o ficheros y no será necesario quitarlos previamente.

Una vez hecho esto creamos la imagen.

$ sudo aptitude update
$ sudo aptitude full-upgrade
$ sudo aptitude clean
$ sudo remastersys backup misistema_bck.iso

Para instalarla, cuando arranquemos con la imagen, cuando salga boot:, ecribimos install y pulsamos enter.

Limpieza del directorio temporal

Una vez creadas las imágenes, podemos limpiar los directorios temporales que se usan para crear dichas imágenes. Esto elimina también las imágenes iso si no las hemos copiado a otro lugar o quemado en un dvd/cd.

Simplemente ejecutamos el siguiente comando

$ sudo remastersys clean
Removing the build directory now...
Done...Exiting

Interfaz gráfica

Por último, podemos usar la interfaz gráfica que tiene la aplicación. En kubuntu está en el menuk-->aplicaciones-->sistema-->remastersys. Obviamente las preparaciones previas hay que seguirlas antes de crear la imagen.


NOTA: La limitación de 4G viene dada por el sistema de ficheros iso9660. Cuando realizamos la imagen del sistema, esta se graba en /home/remastersys/remastersys/ISOTMP/casper/filesystem.squash. El sistema iso9660 no permite que un único fichero supere los 4G, por tanto, este filesystem.squash no puede superar los 4G.

http://en.wikipedia.org/wiki/ISO_9660

NOTA2: De momento no he logrado excluir directorios con espacios en la directiva EXCLUDE de /etc/remastersys.conf. He probado a escapar los espacios de esta forma /home/user/Mis\ Proyectos pero siguen incorporándose a la imagen. Si alguien sabe como resolverlo que no dude en comentarlo.

NOTA3: Si usamos VMs y tenemos ficheros de discos, por ejemplo, virtualbox de, pongamos 10G en modo sparse, es decir, que ocupa realmente 1G actualmente y se va llenando dinámicamente, hay que tener en cuenta que al crear la imagen squash serán tomados como 10G porque los verá como un fichero comprimido de 10G.

NOTA4: Podemos montar filesystem.squash para ver o modificar el contenido de la siguiente forma

$ sudo mount -o loop /home/remastersys/remastersys/ISOTMP/casper/filesystem.squash /mnt

Vamos a /mnt y tendremos el sistema montado. Vemos o modificamos lo que sea y para no tener que rehacer todo, solo la imagen iso, desmontamos y ejecutamos

$ sudo remastersys backup iso backup misistema_bck.iso

Si en vez de iso, ponemos cdfs, solo se recrearan los ficheros y no la iso. Esto también podemos hacerlo con la opción dist en vez de backup claro.
Related Posts with Thumbnails