crea tu propio kubuntu

May 31, 2007 at 10:57 pm (Uncategorized)

extraido de zona tech “http://suburbia.sindominio.net”

Creación de una distribución basada en Ubuntu

Quique

Miércoles 27 septiembre 2006

 

En este artículo se explica como remasterizar (personalizar) la distribución (K)Ubuntu Dapper GNU/Linux. Es poco más que una traducción de los artículos

Remastering Ubuntu Dapper Drake
How To Customize the Ubuntu Dapper Desktop CD

 

Requisitos

Antes de nada, debemos asegurarnos de que tenemos todo lo necesario:
- unos 3-5 GB de espacio libre en disco
- un CD o imagen ISO de (K)Ubuntu Dapper (http://releases.ubuntu.com/dapper/)
- squashfs-utils y mkisofs instalados
- un núcleo que admita squashfs (como el que viene de serie en Kubuntu Dapper
- qemu instalado, para probar las imágenes que creemos

Extracción del CD

Cargamos el módulo squashfs:


$ sudo modprobe squashfs

Montamos la imagen ISO o el CD-ROM


$ sudo mount -o loop kubuntu-6.06-desktop-i386.iso /mnt
$ mount /cdrom

Extraemos el contenido de la imagen en un directorio llamado «extract-cd». En mi caso lo hago en una partición aparte (hdb1), que debe estar montada de modo que permita la ejecución de binarios.


$ mkdir /media/hdb1/extract-cd
$ rsync -exclude=/casper/filesystem.squashfs -ax /mnt/ /media/hdb1/extract-cd

El CD contiene varios subdirectorios, incluyendo uno con una selección de programas libres para Windows. Si lo deseamos podemos borrarlo, ahorrando unos 95 MB. $ sudo rm -rf /media/hdb1/extract-cd/programs Igualmente podemos borrar el directorio disctree.

Extracción del sistema

Montamos el sistema de ficheros comprimido con squashfs


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

Extraemos el contenido del squashfs en un directorio llamado edit


$ mkdir /media/hdb1/edit
$ sudo cp -a /mnt2/* /media/hdb1/edit/

Ya podemos desmontar el CD y el sistema comprimido:


sudo umount /mnt2
sudo umount /mnt
sudo rmdir /mnt2

Personalización

Copiamos nuestro fichero /etc/resolv.conf para tener unos DNS que consultar al acceder a Internet


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

Finalmente entramos en nuestro nuevo sistema:


$ sudo chroot edit
# mount -t proc proc proc
# mount -t sysfs sys sys

Ahora podemos hacer todos los cambios que queramos. Podemos empezar editando el fichero /etc/apt/sources.list para modificar los repositorios, actualizar, y añadir/quitar paquetes.

Por ejemplo podemos eliminar los paquetes de idioma que no nos interesen (esto elimina también el paquete kubuntu-live, pero no lo necesitamos para nada)


# aptitude purge language-pack-ar language-pack-ar-base language-pack-bn language-pack-bn-base language-pack-de language-pack-de-base language-pack-fr language-pack-fr-base language-pack-hi language-pack-hi-base language-pack-nl language-pack-nl-base language-pack-kde-ar language-pack-kde-ar-base language-pack-kde-bn language-pack-kde-bn-base language-pack-kde-de language-pack-kde-de-base language-pack-kde-fr language-pack-kde-fr-base language-pack-kde-hi language-pack-kde-hi-base language-pack-kde-nl language-pack-kde-nl-base language-pack-kde-zh language-pack-kde-zh-base

e instalar otros idiomas que sí nos interesen:


# aptitude install language-pack-an language-pack-an-base

Limpieza

Borramos los ficheros que se hayan ido creando


$ sudo rm ~/.bash_history ~/.viminfo [etc]
$ sudo rm -rf /tmp/*

Los paquetes deb que hayamos descargados y estén en la cache:


$ sudo apt-get clean

Y finalmente desmontamos los sistemas de ficheros especiales y salimos del chroot


$ sudo umount proc
$ sudo umount sys
$ exit

Preparación del CD

Podemos editar el fichero extract-cd/isolinux/isolinux.cfg y añadir preseed/locale=es_ES kbd-chooser/method=es a las entradas append para que el CD arranque directamente en castellano.

Le damos un nombre a la imagen en extract-cd/README.diskdefines

$ sudo vim extract-cd/README.diskdefines

Regeneramos el manifest (lista de los paquetes del sistema):

chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W -showformat='${Package} ${Version}n' > extract-cd/casper/filesystem.manifest

Cuando se ejecuta el instalador del CD de escritorio, lo copia todo al sistema objetivo, pero después hace limpieza y elimina los paquetes que no estén en un segundo fichero llamado filesystem.manifest-desktop. Así se evita que en la instalación se incluya el propio instalador, por ejemplo.

Podemos filtrar el manifest con un script de sed. Creamos un fichero /tmp/filtro con este contenido:

/casper/d /libdebian-installer4/d /os-prober/d /ubiquity/d /ubuntu-live/d /user-setup/d

y ejecutamos


cd /media/hdb1/extract-cd/casper
sed -f /tmp/filtro < filesystem.manifest > filesystem.manifest-desktop
rm /tmp/filtro

Comprimimos el sistema de ficheros (esto puede tomar 15-20 minutos, así que podemos salir a echar un café)


$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

Calculamos las sumas MD5


$ (cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)

Y creamos la imagen ISO


$ cd extract-cd
$ mkisofs -r -V "MI_DISTRO" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../midistro.iso .

Por último, podemos probar la imagen de CD creada con el emulador QEMU


$ qemu -cdrom cdname.iso -boot d


Licencia Quique en SinDominio.net

Algunos derechos reservados. Se concede permiso para copiar, distribuir y/o modificar este documento bajo las condiciones de la licencia Reconocimiento-CompartirIgual 2.5 o, a su elección, cualquier versión posterior publicada por Creative Commons.

Puede consultar una copia de dicha licencia en: http://creativecommons.org/licenses/by-sa/2.5/es/legalcode.es.

Artículo original en el blog del autor: Historias de Cronopios (http://cronopios.net/blog/)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: