Como hacer una distribucion de ubuntu personalizada.



Hay varias formas de personalizar una distrobucion livecd de ubuntu, en este curso utilizaremos la version 8.10 de ubuntu desktop, es decir la ultima.

Hay varias aplicaciones que te permiten de manera casi automatica personalizar la distribucion como son el Reconstructor o UCK (Ubuntu customization kit).

Pasaremos de esas aplicaciones para hacerlo de modo mas chacal es decir tocando en el codigo de la livecd, cosa que los programas anteriores solo te permiten hacer un controlado numero de opciones.

Los pasos generales para crear una distro de Ubuntu Live CD personalizada son los siguientes:

* Obtener la imagen (.iso) del Live CD de Ubuntu, a continuacion dejo el enlace directo: http://www.ubuntu.com/getubuntu/download

* Descomprimir dicha imagen
* Crear una jaula chroot con lo necesario para personalizarla
* Personalizar la distro
* Comprimir la nueva distro personalizada
* Crear la imagen (.iso) de la nueva distro personalizada


Preparando el entorno de trabajo:

Lo primero que vamos a hacer es conseguir la imagen del Live Cd, la cual se puede descargar desde la página de Ubuntu.

Luego necesitaremos instalar el squashfs así con ese programa poder descomprimir y comprimir la distro.

Para ello ejecutaremos el siguiente comando en la consola de nuestro ubuntu instalado en el disco duro:

sudo apt-get install squashfs-tools genisoimage qemu kvm

Ahora cargamos el modulo de squashfs:

sudo modprobe squashfs

Ahora nos vamos a crear una carpeta con el nombre que queramos:

mkdir Ubuntuelblogdelpibe
cd Ubuntuelblogdelpibe

Esta carpeta que acabamos de crear debe contener la imagen del Ubuntu:

Una vez hecho esto debemos crear un directorio de trabajo y montar la imagen de Ubuntu

NOM_IMAGEN="ubuntu-8.10-desktop-i386.iso"
mkdir backupISO
cd backupISO
mkdir mnt
sudo mount -o loop ../$NOM_IMAGEN mnt

A continuacion crearemos una carpeta llamada extraer-cd y extraeremos en ella el contenido de la imagen utilizando el comando rsync:

mkdir extraer-cd
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extraer-cd

Montaremos ahora el sistema de archivos (filesystem) squashfs:

mkdir squashfs
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

Por último extraeremos el contenido de squashfs en una nueva carpeta llamada edit:

mkdir edit
sudo cp -a squashfs/* edit/


Preparado el entorno de trabajo, pasaremos ahora a preparar la jaula donde personalizaremos la distro:

Una de las tantas modificaciones que podemos hacerle a la distro es la de instalar y/o remover aplicaciones.

Para ello necesitaremos copiar archivos de configuración necesarios para tener conexión a internet:

sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/

Ahora copiaremos los archivos necesarios para levantar el GNOME:

sudo /etc/init.d/networking restart
sudo cp /etc/X11/xorg.conf edit/etc/X11/

Seguido montaremos los dispositivos necesarios para operar en la jaula y accederemos a ella:

sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys

Ahora setearemos variables de sistema:

export HOME=/etc/skel/
export LC_ALL=C

Seguidos estos pasos, nos encontraremos ahora dentro de la jaula, es decir, estamos en la distro que vamos a modificar.

Tenemos que tener en cuenta que es como estar en otro sistema operativo, ya que recordemos que la jaula cambia el directorio raíz, y esta la hemos creado con la carpeta edit como el directorio raiz, recordando nuevamente que edit tiene el contenido del squashfs, es decir la distro del Ubuntu Live CD como si estuviese instalada.

Crearemos ahora los dispositivos genéricos:

cd /dev/
MAKEDEV generic

En este punto solo nos restaría iniciar el gdm y empezar a personalizar la distro, pero previo a esto debemos crear un usuario para poder acceder al sistema, y más importante aún, permitirle a este ejecutar comandos como root, es decir, que pueda utilizar el comando sudo.

Por lo tanto creamos un usuario cualquiera:

adduser pibe

Y le agregamos la posibilidad de ejecutar comandos como root. Esto lo logramos agregando una línea al archivo /etc/sudoers, el cual contiene los usuarios que pueden utilizar el comando sudo. Es importante aclarar que para editar este archivo, se recomienda utilizar el editor visudo, ya que a grandes rasgos controla que no cometamos error sintacticos, etc.

Para editar el archivo /etc/sudoers, ejecutamos el siguiente comando

visudo -f /etc/sudoers

Una vez abierto el visudo, agregaremos la siguiente línea debajo del bloque # User privilege specification, sabiendo que utilizar el editor visudo es igual que utilizar el editor vi, es decir, utiliza los mismos comandos de acciones, como por ejemplo ESC -> :wq para salir guardando los cambios:

pibe ALL=(ALL) ALL

Debería quedar algo así:


# /etc/sudoers
# # This file MUST be edited with the 'visudo' command as root.
# # See the man page for details on how to write a sudoers file.
#

Defaults env_reset

# Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL) ALL
pibe ALL=(ALL) ALL

Una vez creado el usuario y asignado el permiso para ejecutar comandos como root, solo resta iniciar el gdm

/etc/init.d/gdm start

Luego de ejecutado el comando anterior, se nos iniciará el GNOME en otra terminal (generalmente la 9 o 10), seguido aparecerá la ventana de inicio de sesión, donde elegiremos el idioma que queramos (Desde el menú Config ubicado en la esquina inferior izquierda), e iniciaremos sesión con el usuario creado (heber en este caso).
Si cambiamos el idioma que venía por defecto (generalmente Inglés), nos preguntará si queremos que el nuevo idioma seleccionado (ejemplo: Español) sea el idioma por defecto, le diremos que si.

Personalizar la distro:

Iniciada la sesión del nuevo usuario nos encontraremos en un escenario muy familiar el escritorio por defecto de Ubuntu.

Aquí es donde empieza la ensalada, comenzamos a personalizar la distro.

Y que podemos personalizar?

* Aplicaciones: Las aplicaciones que tendrá la distro.

* GTK : La apariencia de las ventanas, cursores, iconos, fondo de escritorio, tipo de letra, apariencia del menú, etc.

* GDM : Se le llama GDM también a la ventana de Login, donde nos pide usuario y contraseña.

* Usplash : La pantalla que se muestra cuando se está cargando el sistema operativo y cuando este se está cerrando.

* Imagen del menú de instalación del Live CD

Se recomienda totalmente visitar el sitio gnome-look "http://www.gnome-look.org/" donde encontraremos una inmensidad de temas GTK, iconos, cursores, fondos de escritorio, temas GDM, Usplash, etc.

Es conveniente además, que todo archivo, ya sea un conjunto de iconos, cursores, fondo de escritorio, etc. que descargemos y utlizemos como tema, lo guardemos en una carpeta común a todos los usuarios, y desde allí los instalemos.

Por ejemplo, ejecutamos en consola el siguiente comando para inciar el nautilus como root:

gksudo nautilus

Ahora creamos una carpeta llamada archivos-de-heber en /usr/share/. Esta carpeta es donde descargaremos y guardaremos todo lo relacionado con la parte visual de nuestra distro.

Aplicaciones:

Existen varias formas de instalar y/o desinstalar aplicaciones.

Podemos hacerlo utilizando por ejemplo el Gestor de paquetes Synatpic ubicado en el menú Sistema -> Administración -> Gestor de paquetes Synatpic
O mediante la consola utilizando el comando apt-get:

Veamos como desinstalar el maravilloso editor gráfico GIMP:

apt-get remove --purge gimp

La opción --purge, como dice el manual del apt-get borra los archivos de configuración de todos los paquetes que sean desinstalados.

Ahora para instalar por ejemplo la aplicación nmap ejecutaríamos lo siguiente:

apt-get install nmap

GTK

Para personalizar todo lo que respecta a la visual del GNOME, abrimos la aplicación de apariencia ubicada en el menú Sistema -> Preferencias -> Apariencia
O mediante el comando:

gnome-appearance-properties %F

Aqui podremos personalizar la apariencia de las ventanas, los iconos y cursones utilizados, el fondo de pantalla, etc.

1- Oprimimos en Personalizar...
2- Personalizamos la apariencia a nuestro gusto
3- Por último guardamos el nuevo tema con el botón Guardar como...

Como instalar un paquete de iconos y/o cursores ?

Obtenemos el conjunto de iconos o cursores empaquetados (en un .tar.gz por ejemplo) y lo arrastramos hasta la pestaña tema de la ventana de Apariencia.

Puede llegar a ser muy interesante personalizar la barra del menú. Por ejemplo:

1- Botón derecho sobre la barra del menú y seleccionamos Panel nuevo.
2- Lo ubicamos donde queramos, por ejemplo contra la izquierda de la pantalla.
3- Botón derecho sobre la nueva barra de menú y seleccionamos Propiedades.
4- En el cuadro de Propiedades seleccionamos la pestaña Fondo, luego seleccionamos la opción Color sólido y disminuimos al mínimo la barra de Estilo.

Nuestro menú ahora es transparente. Seguido agregamos todo lo que queramos oprimiendo el botón derecho sobre nuestro nuevo menú transparente y seleccionamos la opción Añadir al panel...

GDM

Para la ventana de Login, nos descargamos una de gnome-look [5] (recordando almacenarla en /usr/share/archivos-de-pibe).

Luego abrimos la aplicación Ventana de entrada ubicada en el menú Sistema -> Administración -> Ventana de entrada
O mediante la consola:

gksu /usr/sbin/gdmsetup

1- Vamos a la pestaña Local
2- Agregamos el tema empaquetado que descargamos (puede ser en formato .tar.gz) con el botón añadir
3- Lo activamos

También podemos modificar el tema descargado, descomprimiendolo, modificando los archivos de su interior (por ejemplo, las imagenes), y volviendolo a comprimir.

USplash

Para instalar un Usplash debemos descargar la aplicación startupmanager desde getdeb.net.

Una vez descargado dicho instalador y previo a instalarlo, debemos ejecutar la aplicación Origenes del software ubicada en el menú Sistema -> Administración -> Origenes del software o mediante el comando:

gksu --desktop /usr/share/applications/software-properties.desktop /usr/bin/software-properties-gtk

Esta aplicación es la encargada de decidir que repositorios de software estarán disponibles, por lo tanto debemos activar los repositorios universe y multiverse, luego oprimimos en Cerrar y por último nos aparecerá otra ventana informandonos que es necesario recargar la información sobre el software disponible, aquí oprimimos en Regargar.

Efectuados dichas actualizaciones, instalamos el startupmanager, el cual una vez instalado podremos acceder a él mediante el menú Sistema -> Administración -> Administrador de arranque o mediante el comando:

su-to-root -X -c /usr/sbin/startupmanager

Una vez levantado el Administrador de arranque, efectuaremos los siguientes pasos:

1- Ir a la pestaña Aspecto
2- En el apartado Tema Usplash oprimiremos en Administrar temas Usplash
3- Añadiremos nuestro tema
4- Lo seleccionamos desde el combo Tema Usplash

Últimas modificaciones:

Debemos cambiarle el permiso a la carpeta archivos-de-heber para que cualquier nuevo usuario pueda tener acceso a ella, permitiendo que se muestre el fondo de pantalla seleccionado por ejemplo.

Para ello ejecutaremos el siguiente comando:

sudo chmod -R 775 /usr/share/archivos-de-pibe

Luego debemos copiar todo el contenido de nuestro Home al directorio /etc/skel. Este directorio contiene todos los archivos y directorios que se copiarán automáticamente al Home de un nuevo usuario. De esta manera haremos que todos los nuevos usuarios del sistema tengan la misma configuración que heber.

Para ello ejecutaremos el siguiente comando:

sudo cp -r ~/. /etc/skel/.

Ahora solo resta desloguearnos (no apagar el sistema !) de la manera usual.
Una vez nos abra la pantalla de Login, nos cambiamos a la terminal 7 (tty7) con la combinación de teclas ALT + F7.

Nuevamente ahora en la tty7, pero dentro todavía de la jaula (en la consola), debemos eliminar todos los archivos inecesarios, asi como eliminar también el usuario creado.

Para ello haremos lo siguiente:

sudo userdel -rf pibe

Ahora removeremos la entrada de pibe de la lista sudoers:

visudo -f /etc/sudoers

Paramos el gdm, ya que no lo necesitaremos más:

/etc/init.d/gdm stop

Y pasamos a eliminar archivos inecesarios, para asi liberar también espacio:

apt-get clean
rm -rf /tmp/*
rm -rf /etc/resolv.conf

Por último desmontamos y salimos de la jaula:

umount /proc
umount /sys
exit

Para terminar lo que respecta a la personalización de la distro, solo nos queda cambiar la imagen del menú de instalación del Live CD.

Para ello debemos seguir los siguientes pasos:

Obtener la nueva imagen (.png), renombrarla a splash.png y convertirla a .pnm

Utilizando el siguiente comando:

pngtopnm splash.png > splash.pnm

Luego convertir la .pnm a .rle de la siguiente manera:

ppmtolss16 "#000000=0" "#ffffff=7" < splash.pnm > splash.rle

Por último debemos copiar el archivo splash.rle a extraer-cd/isolinux

Reconstruyendo nuestra livecd:

La parte de personalización de la distro ya está completa, solo resta rearmar el CD.
Si instalamos o desinstalamos aplicaciones, debemos entonces regenerar el Manifiesto, que en síntesis indica las aplicaciones que contiene la distro.
Para ello haremos los siguiente:

echo regen manifs
chmod +w extraer-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extraer-cd/casper/filesystem.manifest
sudo cp extraer-cd/casper/filesystem.manifest extraer-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extraer-cd/casper/filesystem.manifest-desktop

Una vez regenerado el manifesto, debemos comprimir el filesystem de la siguiente manera:

sudo rm extraer-cd/casper/filesystem.squashfs
sudo mksquashfs edit extraer-cd/casper/filesystem.squashfs -nolzma

Comprimido el filesystem, solo resta crear la nueva imagen (.iso) de nuestra distro:

IMAGE_NAME="PIBECD"
cd extraer-cd
sudo mkisofs -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-pibe.iso .

OJO!, el ultimo comando tiene un . al final.

Listo ! ya hemos creado nuestra distribución Live CD personalizada de Ubuntu.
Si se quiere ahora, se puede grabar nuestra nueva distro en un CD, ya sea utilizando cualquier programa de grabación de CD o mediante el siguiente comando:

cdrecord dev=/dev/cdrom ubuntu-pibe.iso

Les recomiendo utilizar una maquina virtual como el VirtualBox para probar esta distro live cd.
Share on Google Plus
    Blogger Comment

0 comentarios: