Administra tu Blog

¡Crea tu Blog Ya! Fácil y Gratis Te gustan viajar y sacar Fotos

Meth Blog

06/12/2006 GMT -5

Remasterizar el Live CD de Ubuntu

meth @ 19:04

Hacerte tu propia distro basada en Ubuntu

Hay muchos tutoriales por ahí que explican como modificar los paquetes, etc... e incluso aplicaciones como ubuntu customization kit, que facilitan mucho el trabajo "sucio" de descomprimir iso, descomprimir squashfs, instalar paquetes que queremos, regenerar manifest, y volver a empaquetar todo, pero buscando por Internet me di cuenta que para modificar el aspecto de la distribución para que en el LiveCD y al instalarla se vea como nosotros queremos no hay casi nada, o está todo muy separado, así que me decido a hacer este documento, en primer lugar pondré como modificar el fondo de pantalla de nuestra Ubuntu, proceso muy sencillo. Importante es tener en cuenta que todo este proceso se realiza con la imagen squashfs descomprimida y montada en alguna ubicación de nuestro disco duro.


Primero pasos

Antes de hacer nada debermos instalar mkisofs, squashfs-tools y qemu, aunque éste último es opcional, una vez instalados cargamos el modulo de squashfs:

sudo apt-get install squashfs-tools mkisofs qemu
sudo modprobe squashfs

Luego tendremos que montar la iso en el sistema, y luego descomprimir el .squashfs; para ello nos vamos a nuestra home y hacemos lo siguiente por pasos:

mkdir mnt
sudo mount -o loop ubuntu-6.10-desktop-i386.iso mnt
mkdir extract-cd
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd


Con esto hemos montado la iso en /home/miusuario/mnt, y extraemos todo el contenido en /home/miusuario/extract-cd, y ahora ejecutamos

mkdir squashfs
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
mkdir edit
sudo cp -a squashfs/* edit/


Y ya con esto tendremos el archivo .squashfs descomprimido en /home/miusuario/edit/ que será la carpeta donde hagamos todos los cambios


Modificar fondo de pantalla

Crearemos el fondo que queremos utilizar del tamaño que queramos, le pondremos el nombre que queramos, y lo ubicaremos en la carpeta /usr/share/backgrounds/ y luego editamos el archivo /var/lib/gconf/debian.defaults/%gconf-tree.xml y buscamos donde ponga /usr/share/backgrounds/warty-final-ubuntu.png y ponemos el nombre de nuestro escritorio de forma que esa línea quedaría /usr/share/backgrounds/mi_fondo_de_pantalla.png. Por supuesto las carpetas a las que hago referencia se encuentran bajo /home/miusuario/edit/, que aunque no hayamos hecho chroot por comodidad, pero debemos pensar como si esa fuera la raiz de nuestro sistema.


Modificar fondo de inicio o instalación de ubuntu

Solamente hay que modificar la imagen llamada splash.pcx que se encuentra en extract-cd/isolinux, para generar una imagen pcx puedes hacerlo con un programa de edición de imágenes y guardalo en formato pcx a paleta de 14 colores.

Modificar Splash

El splash es la imagen que aparece cuando está cargando nuestro escritorio Gnome, para ello primero nos creamos una imagen, la guardamos en formato png con el nombre ubuntu-splash.png, y la colocamos en /usr/share/pixmaps/splash/, así de sencillo es modificar esos dos aspectos.

O podemos llamar de otra forma esta imagen, pero en formato png, ejemplo miimagen-splash.png, y la colocamos en la carpeta /usr/share/pixmaps/splash, y en el archivo /var/lib/gconf/debian.defaults/%gconf-tree.xml modificamos la imagen de splash, en la línea <entry name="splash_image" type="string"><stringvalue>splash/ubuntu-splash.png</stringvalue></entry>, modificamos ubuntu-splash.png por miimagen-splash.png.



Modificar Usplash

Usplash es la pantalla que nos aparece al cargar el sistema, en Edgy es esa pantalla negra con el logo de Ubuntu y una barra naranja que se va llenando conforme carga el sistema, en Dapper e inferiores el Usplash se modifica diferente que en Edgy. En Edgy para modificar el Usplash deberemos instalar el paquete usplash-dev y build-essential; y descargarnos el paquete usplash-theme-ubuntu:

sudo apt-get install usplash-dev build-essential
cp -R /usr/share/doc/usplash-dev/examples /home/miusuario/miusplash/

Una vez tenemos estos dos componentes nos metemos en la carpeta examples/ y ahí tendremos todos los png que debemos modificar a nuestro gusto para tener nuestro propio Usplash. En este ejemplo hay 4 imágenes, una de 800x600, otra de 1024x768, otra de 1024x576 y otra de 1024x576 cropped, creamos las 4 imágenes, y las hacemos en modo indexado con un máximo de 256 colores, las podemos guardar con el nombre que queramos, pero respetando la terminación _800_600, etc... ejemplo miusplash_800_600.png, luego modificamos los archivos eft-theme.c, donde ponga eft le ponemos el nombre de nuestras imágenes, y lo guardamos con el nombre que le hayamos puesto a nuestras imágenes, ejemplo: miusplash-theme.c. Y luego el Makefile también modificamos donde ponga eft por miusplash o el nombre que le hayamos puesto a nuestro usplash.

Una vez los hemos modificado tendremos que compilar el usplash, para eso en la terminal haremos:

make

Y luego instalaremos nuestro usplash, pero para ello tendremos que copiarlo en nuestra carpeta /home/miusuario/edit/, y hacer chroot en ella:

sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
sudo cp usplash-theme-ubuntu.so /usr/lib/usplash/
sudo ln -sf /usr/lib/usplash/usplash-theme-ubuntu.so /usr/lib/usplash/usplash-artwork.so
sudo update-alternatives --install /usr/lib/usplash/usplash-artwork.so /usr/lib/usplash/miusplash-theme.so 55
sudo update-alternatives --set usplash-artwork.so /usr/lib/usplash/miusplash-theme.so
sudo update-initramfs -u
rm /etc/resolv.conf
umount /proc
umount /sys
exit

Con esto conseguimos que nuestro usplash esté instalado, pero el LiveCD va a seguir mostrando el usplash de Ubuntu.

Modificar GDM (Login en Gnome)

En /usr/share/gdm/themes/ están los temas para GDM, son sencillos de modificar, el tema por defecto para Ubuntu es Human, por lo que podemos modificar ese tema y listo, tenemos nuestro tema a nuestro gusto.


Últimos Pasos

Para ahorrar espacio en el disco, enextract-cd/ puedes borrar la carpeta programs, autorun.inf, start.exe, y la carpeta disc_tree.

Para volver a recuperar nuestra iso con los cambios realizados, y que ya podamos utilizar nuestro LiveCD con nuestro diseño tendremos que realizar los siguientes pasos, siempre suponiendo que no hemos chroot y no hemos modificado ningún paquete, por lo que no es necesario regenerar el .manifest:

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


Con esto generamos el archivo .squashfs de nuevo en la estructura del CD original con los cambios que nosotros hemos realizado.

sudo vim extract-cd/README.diskdefines


Y ponemos nombre a nuestro CD, el de nuestra distribución.

sudo -s
rm extract-cd/md5sum.txt
(cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
exit


Creamos el nuevo md5 para poder verificar errores.

cd extract-cd
sudo 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 .


Creamos la ISO de nuestra distribución

Y para probarla haremos

qemu -cdrom midistro.iso -boot d


Y para grabarla

cdrecord dev=/dev/cdrom midistro.iso


Trackback URI

Comentarios

Comentarios(20) »

  1. Esta muy bien, es una guia muy útil.
    Como posible mejora, podrias indicar en que carpeta estas en cada momento, ya que creo que es el único problema q te puede surgir si siguies tu guia.
    Saludos!

    ruben | 28-12-2006 - 05:49:58 GMT -5 #

  2. Creo que sí lo indica, pongo ahí en negritas "/home/miusuario/edit/" así que dentro de esa carpeta es donde se realizan los cambios, pero si tienes alguna otra duda escribe por aquí y te ayudo

    meth | 10-01-2007 - 11:43:48 GMT -5 #

  3. Hola .. disculpa soy nuevo en ubuntu edgy... y no entiendo esto
    sudo cp /etc/resolv.conf edit/etc/
    sudo cp /etc/hosts edit/etc/
    sudo chroot edit
    mount -t proc none /proc
    mount -t sysfs none /sys
    sudo cp usplash-theme-ubuntu.so /usr/lib/usplash/
    sudo ln -sf /usr/lib/usplash/usplash-theme-ubuntu.so /usr/lib/usplash/usplash-artwork.so
    sudo update-alternatives --install /usr/lib/usplash/usplash-artwork.so /usr/lib/usplash/miusplash-theme.so 55
    sudo update-alternatives --set usplash-artwork.so /usr/lib/usplash/miusplash-theme.so
    sudo update-initramfs -u
    rm /etc/resolv.conf
    umount /proc
    umount /sys
    exit

    Sebas | 16-02-2007 - 10:27:51 GMT -5 #

  4. Todo eso son comandos que debes ejecutar en la terminal, que está en Aplicaciones > Accesorios > Terminal

    meth | 20-02-2007 - 18:25:34 GMT -5 #

  5. Hola Meth. Me parece muy útil tu guía. Lo estoy intentando con edgy, pero me gustaria añadir un par de aplicaciones, que son un tostón cada vez que reinstalo (gcom y nozomi-source con su configuración para Vodafone). ¿Como harías el chroot para instalar los paquetes y la regeneracion del manifest? Estoy un poco perdido. Muchísimas gracias y perdona las molestias.

    guli | 08-03-2007 - 02:58:53 GMT -5 #

  6. Pues metería primero antes del chroot los paquetes dentro de la carpeta donde voy a trabajarlo luego, luego hago el chroot y listo a instalar, si los paquetes son .deb al generar el manifest aparecen solitos, y si los compilas da igual porque también van a instalarse ya que el sistema copia todos los archivos excepto los paquetes que no están en manifest.

    Meth | 08-03-2007 - 21:47:11 GMT -5 #

  7. hola, ¿cómo puedo pasar el contenido de una imágen iso o de un filesystem.squashfs al hard disk para bootear?
    Muy bueno el blog.
    gracias.

    Claudio | 16-08-2007 - 08:35:47 GMT -5 #

  8. Mmmm, no entendí del todo bien, pero bueno te explico lo que entendí:

    1.- Para descomprimir una imagen ISO tienes que escribir en la terminal:
    sudo mount -o loop imagen.iso /punto/de/montaje
    Por supuesto imagen.iso lo sustituyes por el nombre de tu imagen ISO, y /punto/de/montaje por la carpeta donde vayas a descomprimir tu imagen ISO

    2.- Respecto al filesystem.squashfs el proceso es igual pero el comando es:
    sudo mount -t squashfs -o loop filesystem.squashfs /punto/de/montaje
    Sustitueyndo filesystem.squashfs por el nombre de tu archivo squasfs y /punto/de/montaje por la carpeta donde quieras descomprimir el archivo squashfs

    Si lo has entendido bien, sino pues me escribes de nuevo algo más detallado, y te lo explico.

    Un saludo y gracias.

    meth | 16-08-2007 - 09:30:57 GMT -5 #

  9. Gracias por tu respuesta.
    No me explique del todo bien.
    Lo que quiero haces es:
    1. tengo un liveCD
    2. pero no quiero bootear desde la lectora de CD
    3. quiero pasar ese contenido al hard disk para que el PC pueda bootear y no necesitar el liveCD.
    Gracias.

    Claudio | 16-08-2007 - 13:08:30 GMT -5 #

  10. Pues entonces lo que necesitas es instalar ese LiveCD en tu PC, si tienes Ubuntu con darle al icono de instalar en tu escritorio ya lo instalas y así no tendrás que usar más el LiveCD y todo irá de maravillas en tu PC, porque GNU/Linux va mejor que otros sistemas operativos propietarios.

    Si sigues con dudas, no te preocupes, escribres todo lo que quieras saber en los comentarios que responderé con gusto.

    Un saludo.

    meth | 19-08-2007 - 22:42:04 GMT -5 #

  11. Hola de nuevo, este liveCD no es instalable, es una distro que encontré en internet. Lo que hace es convertir al PC en un PC kiosk, solo para utilizar el browser.
    Mi consulta es ¿si es posible poder migrar de alguna manera el contenido del liveCD al HD? Logré gracias a este tutorial abrir el filesystem.squashfs y editarlo. Pero me gustaría poder pasarlo al HD.
    Muchas gracias.

    Claudio | 20-08-2007 - 09:28:48 GMT -5 #

  12. Hola:

    Interesante ese LiveCD, te agradecería si me pasaras alguna página para poder verlo y descargarlo, porque hay proyectos en los que se necesita algo así.

    Respecto a instalarla es posible, necesitas un instalador simple que formatee el disco duro en ext3 y copie el contenido del filesystem.squashfs al disco duro.

    Había por ahí uno, creo que era el de nubuntu, que puedes aprovechar, pero de todas formas sería un script de bash, o puedes mirar instaladores como YAMI, o algo más profesional como Anaconda o Debian Installer y ponérselo, o sino también puedes hacer preseeds e instalarlo como explico en como modificar Ubuntu pero el CD alternate.

    meth | 22-08-2007 - 17:00:26 GMT -5 #

  13. - El que más me interezo es este,
    http://webconverger.com/
    Es free, pero para una personalización hay que pagar.
    - Después, en el mismo sitio, se hace mención a una de sus personalizaciones, http://custom.webconverger.com/hannux.iso, cuya imagen logre personalizar para mi necesidad gracias a tu aporte.
    - También está, este otro desarrollo
    http://www.livekiosk.com/kioskimages/ezwebpc-1.4.2-free-i386.iso
    pero opté por hannux de webconverger.

    Tanto en Webconverger como livekiosk lo único que permiten es utilizar el browser.
    Los requerimientos mínimos son PIII, con 128 MB. Bootea desde CD. Es por esto que me interesa poder pasarlos al HD.

    Saludos.

    Claudio | 24-08-2007 - 11:50:40 GMT -5 #

  14. No tengo mucha experiencia en linux, espero poder conseguir lo que necesito.

    Claudio | 24-08-2007 - 12:58:45 GMT -5 #

  15. Mmmm interesante proyecto, voy a ver que puedo conseguir, porque yo necesito algo así, pero con algunas funciones más además del navegador. De todas formas es bueno mantenernos en contacto para ver que progresamos cada uno.

    Por cierto supongo que si lo instalas en la computadora no requerirá tanta memoria ram para operar.

    meth | 24-08-2007 - 13:14:43 GMT -5 #

  16. acá te envío otro link

    http://www.weavefuture.com/coin_op_interent_kiosk_browser_linux_live_cd.htm

    Claudio | 24-08-2007 - 13:26:35 GMT -5 #

  17. aunque es con traga monedas

    Claudio | 24-08-2007 - 13:28:11 GMT -5 #

  18. Te vuelvo a pedir ayuda, no se como hacerlo, para pasar al HD.

    Claudio | 05-10-2007 - 09:52:23 GMT -5 #

  19. Hola:

    Me gustaría arrancar el live-cd resultante por pxe, ¿que tendría que poner en /tftpboot/pxelinux.cfg/default para conseguirlo?

    El contenido del live-cd está en /milivecd/

    Gracias y un saludo.

    cpcbegin | 25-06-2008 - 08:50:07 GMT -5 #

  20. Que yo sepa sí

    meth | 09-07-2008 - 01:21:23 GMT -5 #

Dejar un Comentario


<a href> <em> <blockquote> <strong> <cite> <code> <ul> <li> <dl> <dt> <dd>

Contactar con la autora o autor | Archivo | ¡Crea tu Blog Ya! Fácil y Gratis