Skip to content

Instantly share code, notes, and snippets.

@drkpkg
Created May 28, 2020 05:11
Show Gist options
  • Save drkpkg/aef7c299156e38f06cbb2bc117347887 to your computer and use it in GitHub Desktop.
Save drkpkg/aef7c299156e38f06cbb2bc117347887 to your computer and use it in GitHub Desktop.
Remasterizacion de distros ubuntu

Remasterizar una ISO de

Ubuntu

Esta es la documentación de como remasterizar una Iso Con Ubuntu en modo live Cd. Se vera los siguientes

puntos:

Contenido
1 Introducción
2 Razones
3 ¿Ubuntu es entonces Debian?
4 Debian
4.1 Datos Curiosos sobre Debian:
5 Ubuntu
5.1 Datos curiosos sobre Ubuntu:
6 Pero ¿Entonces cual es mejor?
7 ¿Como trabajar con un sistema para remasterizarlo?
7.1 Sistemas Enjaulados y remasterizacion del
sistema
7.1.1 A Darle Atomos. ¿Cómo
hacemos un sistema enjaulado?
7.2 Creación de un nuevo Initrd
7.3 Optimización del Sistema
7.4 Personalización del sistema y escritorio.
7.4.1 PLYMOUTH
7.5 Finalizar y empaquetar
7.6 Ahora a Empaquetar
7.7 Probando el live-cd

Introducción

Antes que nada debes entender que hacer una distribución nueva desde cero (From Scratch), es bastante

tedioso y dificil, pues como no se usan paquetes binarios precompilados, tienes que compilar sus codigos fuente

y para hacer una distribución destinada al usuario final necesita ser lo mas desatendida e intuitivamente posible.

Muchas distribuciones como Gentoo, slackware o alguna distribución generica que no use binarios, es necesario

tener conocimientos previos del manejo del prompt (Terminal), sistemas de archivos, compilación del kernel y

demas cosas. Todos los usuarios de linux decimos a la gente "Deberias usarlo", pero el problema es que varias

distribuciones son "elitistas"con sus usuarios y no permiten la integración de usuarios como maestros,

oficinistas, secretarias, o algun estudiante que no tenga conocimientos de computación avanzados que se

dedican solo a sus trabjos. Si queremos llegar a mas usuarios debemos dejar de pensar como desarrolladores y

empezar a pensar como quisiera el usuario final su sistema. Un ejemplo de una Distro From Scratch para

usuario es Sabayon Linux, basada en Gentoo para el usuario final, otra es Ututo, una distro argentina que es

creada desde cero. No se quiere degradar a otras Distribuciones genericas con lo dicho anteriormente, pues con

una distribución como Gentoo, Slackware, o una que hiciste, tienen muchas ventaja y la mas importante es la de

ser optimizadas para tu computador.

Hacer una distribución desde cero no es imposible asi que si te animas a hacer un sistema Linux personalizado

desde cero, deberias leer los siquientes libros:

● Linux From Scratch ​http://www.linuxfromscratch.org
● BLFS (Beyond form Linux From Scratch) ​http://www.linuxfromscratch.org

Otra forma de remasterización es usando programas que hacen más automático el proceso:

● UCK [​[1]​]
● u-customizer [​[2]​]
● remastersys [​[3]​]

Estos son más conocidos para remasterizar Ubuntu. Estamos usando u-customizer por que tiene opciones

interesantes para dejar la una distro a punto.

Si no deseas usar ninguno de estos programas, te interesará leer más abajo.

Razones

Te preguntarás, ¿Por que siempre eligen Ubuntu como un sistema para remasterizarlo?. Aqui nuestras razones:

● Ubuntu con el pasar del tiempo se ha consolidado como un sistema para el usuario final.
● Tiene base en Debian, una Distribución bastante solida y considerada una de las mas estables.
● Tiene como base un sistema de administración de paquetes que es uno de los mejores: APT.

¿Ubuntu es entonces Debian?

La respuesta es un rotundo no. Tanto Debian como Ubuntu tiene su rama de desarrollo muy aparte, usan Apt y

son orientadas a cualquier usuario, pero cada una tiene diferencias.

Debian

Debian es la base de muchas Distros hoy en día, Estable, Rapida y con un buen soporte de Hardware y 11

Tipos de arquitectura. Su desarrollo para cada versión es de 2 años, su ultima versión es la 5.0.4.

Datos Curiosos sobre Debian:

● Cada codename de Debian es el nombre de un personaje de Toy Story, pues el creador de Debian
Ian Murdock trabajo en la animación de la pelicula. Aqui las versiónes de Debian:
Versió
n
Personaj
e
Fecha de lanzamiento
1.1 Buzz 17 de Junio de 1996
1.2 Rex 12 de Diciembre de
1996
1.3 Bo 02 de Junio de 1997
2.0 Hamm 24 de Julio de 1998
2.1 Slink 09 de marzo de 1999
2.2 Potato 15 de Agosto de 2000
3.0 Woddy 19 de Julio de 2002
3.1 Sarge 06 de Junio de 2005
4.0 Etch 08 de Abril de 2007
5.0 Lenny Abril de 2009
6.0 Squezze
● Cada versión Inestable de Debian se llama Sid, El vecino que torturaba a los juguetes.
● El Nombre Debian Viene a ser la combinación del nombre de Ian Murdock y su esposa llamada
Debora, de ahi Deb-Ian

Ubuntu

Ubuntu es una distribución Sudafricana con base fuerte en Apt, al pasar el tiempo fue mejorando y ganando

usuarios en todo el mundo. Su lema es "Linux para seres Humanos" o "Linux for Human Beings", Su Creador es

Mark Shuttleworth y Canonical es la empresa que esta debajo de Esta Distribución. Su desarrollo para cada

versión es de 6 meses, con buen soporte de hardware.

Datos curiosos sobre Ubuntu:

● Cada Versión de Ubuntu tiene nombre de un animal y una descripción. La primera fue la 4.10 Warty
Warthoh o jabalí Verrugoso Pues su presentación de esta Distro fue "Con Verrugas Y todo",
despues de esa versión se siguio un estandar de nombres, la ultima versión es Precise Pangolin
(12.04), la proxima es Quantal Quetzal (12.10).

Pero ¿Entonces cual es mejor?

Aquí te damos los pros y contra de casa una:

● Debian es Estable, rápida, cada 2 años sale una nueva versión, sus paquetes se congelan en una
versión y no se renuevan hasta la nueva versión de esta, pues compromete la estabilidad del
sistema, tiene mas de 20000 paquetes en sus repositorios y tiene soporte para 11 arquitecturas
diferentes de computadores.
● Ubuntu es Estable, rápida, cada 6 meses sale una nueva versión y los paquetes se renuevan, pero
esto compromete al sistema con algunas aplicaciones que pueden se inestables, tiene soporte solo
para 3 arquitecturas.

Como ves cada una tiene sus pros y contras, solo te queda decidir cual remasterizaras.

¿Como trabajar con un sistema para remasterizarlo?

Deje-monos de chacharas y empecemos a remasterizar.

El remasterizar una distribución es tedioso, eso si quieres que tu Distro sea buena. De lo contrario te saldra mas

fácil que pedir cambio de un botón.

● Lo primero que tienes que hacer es conseguir el disco de la versión de Ubuntu que modificaras.
● Crea una imagen de disco del cd de ubuntu en tu disco, te recomendamos brasero o k3b.
● Crea una carpeta con el nombre de tu proyecto, te recomendamos que pongas las carpetas asi :

mkdir ​ ​-p​ ~​ / ​nombre_tu_distro​ / ​nombre_y_versión_de_la_distro​ /

● Luego entra a la carpeta:

cd ​ ~​ / ​nombre_tu_distro​ / ​nombre_y_versión_de_la_distro​ /

● Crea carpetas para empezar a modificar. Recuerda que puedes trabajar esto de distintas formas,
solo te recomendamos esta por que es ordenada y facil de encontrar las cosas:

mkdir ​ mount-cd squashfs edit-distro extract-cd new-initrd misc

squashfs ----> es para montar la imagen del sistema comprimido. mount-cd ----> aqui montaras la imagen de

disco del sistema. edit-distro ----> aqui editaras el sistema completo para luego reempaquetarlo. extract-cd ---->

aqui editaras el sistema de booteo del livecd new-initrd ----> el initrd del disco lo editas aqui misc ----> puedes

poner paquetes hechos por ti, artwork, etc. Recuerda Documentar todo para cuando surga algun problema

puedas tener la solucion a la vuelta de la esquina.

Sistemas Enjaulados y remasterizacion del sistema

Daremos una breve introducción a lo que son sistemas enjaulados. Un sistema enjaulado es como dice su

nombre es un sistema creado bajo otro con la posibilidad de modificarlo sin dañar tu propio sistema.

Este sistema enjaulado será la próxima versión de tu distro en términos simples.

A Darle Atomos. ¿Cómo hacemos un sistema enjaulado?

● Empezaremos montando la imagen de disco que hiciste de ubuntu:

mount ​ ​-o​ ~​ / ​loop nombre_de_tu_distro.iso mount-cd​ /

● Luego copiaremos el contenido del disco montado a extract-cd

rsync ​--exclude​=​ / ​casper​ / ​filesystem.squashfs ​-a​ mount-cd​ / ​ extract-cd ​ #Esto excluye la parte el sistema live empaquetado que es filesystem.squashfs

● Montamos el filesystem.squashfs en squashfs

mount ​ ​-t​ squashfs ​-o​ loop casper​ / ​filesystem.squashfs squashfs​ /

● Copiamos todo el squashfs a edit-distro

cp ​ ​-a​ squashfs​ /* ​ edit-distro

● Hacemos la configuarcion restante antes de empezar

sudo ​ ​ cp ​ ​ / ​etc​ / ​resolv.conf edit-distro​ / ​etc​ / ​ ​ #si necesitas conexion a internet tendras que copiar un archivo de configuración de tu sistema a edit-distro

● Dependiendo de tu configuarion necesitaras copiar el archivo hosts.

sudo ​ ​ cp ​ ​ / ​etc​ / ​hosts edit-distro​ / ​etc​ /

● Luego no queda mucho para hacer

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

mount ​ ​-t​ devpts none ​ / ​dev​ / ​pts

Y listo ya tienes tu sistema enjaulado puedes empezar a configurar tu distro como la desees.

Creación de un nuevo Initrd

El initrd es un sistema básico que esta entre el cargador de arranque (Grub, Lilo, Burg) y el kernel Linux. En el

sistema live el initrd se encarga del arranque del sistema. Monta el squashfs, inicia Casper, y hace las demas

configuraciones para proceder a la instalación o prueba del sistema.

El método de personalización del nuevo initrd es sencillo, con esto podrás cambiar ciertos parámetros de

entrada, como ser el tema de plymouth, usuario Ubuntu, incluso añadir algunos scripts si deseas hacer algo mas

extremo.

procedamos a la personalización del initrd.

● Copiar de tu sistema edit-distro el archivo initrd.img-versión a new-initrd/

cp ​ edit-distro​ / ​boot​ / ​initrd.img-version new-initrd​ / ​initrd.gz

● Luego

cd ​ new-initrd

● Descomprime el initrd.gz

gunzip ​ ​-dc​ initrd.gz ​ | ​ ​ cpio ​ ​-imvd​ ​--no-absolute-filenames

● Descomprimido notaras que el sistema es un sistema basico, procederemos a cambiar el usuario
Ubuntu por el usuario "generic"

cd ​ initrd

nano ​ etc​ / ​casper.conf

● En este archivo estan los parametros del usuario live cambialos por el nombre que se te plazca.En
la carpeta scripts/ estan las configuraciones de casper pero ten cuidado en configurar, no te
recomendamos hacer cambios a menos que sepas como esta todo enlazado.
● Para Comprimir el nuevo initrd el siguiente comando lo hará

cp ​ initrd.lz inird.lz.orig # Recuerda trabajar con backups siempre

● Dentro de la carpeta initrd poner el siguiente comando

find ​. ​ | ​ ​ cpio ​ ​--quiet​ ​--dereference​ ​-o​ ​-H​ newc ​ | ​ lzma ​-7​ ​ > ​ ..​ / ​initrd.lz

Optimización del Sistema

La optimización del sistema es algo que cada desarrollador debe decidir, como que demonios iniciaran al primer

arranque, como se configurará el sistema, scripts de automatización, si compilaran su propio kernel o usaran el

de los repositorios. Todo depende de como quieres tu Distro.

Personalización del sistema y escritorio.

La personalización es el ultimo punto a poner en claro. Puedes hacer varias cosas como cambiar de escritorio,

iconos y demas opciones que se encuentran en ciertos archivos de configuración dependiendo del escritorio.

● Para Gnome la configuracion general se encuentra en

/ ​usr​ / ​share​ / ​gnome-background-properties​ / ​ubuntu-wallpapers.xml ​ / ​usr​ / ​share​ / ​gconf​ / ​defaults​ / ​16_ubuntu-wallpapers ​ / ​var​ / ​lib​ / ​gconf​ / ​debian.defaults​ /% ​gconf-tree.xml

/ ​etc​ / ​gconf​ / ​gconf.xml.defaults​ /% ​gconf-tree.xml

● Para Xfce4 Es mas difícil pues varias configuraciones se crean al momento de iniciar la primera
sesión. pero no es imposible, ver siguiente subtitulo.

PLYMOUTH

● Para Plymouth los temas se encuentran en

/ ​lib​ / ​plymouth​ / ​themes

● Copia tu tema en themes y luego lo instala
● Para instalar un tema plymouth solo tienes que ejecutar

sudo ​ update-alternatives ​--install​ ​ / ​lib​ / ​plymouth​ / ​themes​ / ​default.plymouth default.plymouth ​ / ​lib​ / ​plymouth​ / ​themes​ / ​carpeta-del-tema​ / ​nombre-del-tema.plymouth 100

● Esto instala el tema y lo pone en el registro de alternativas ademas de poner una prioridad de 100
● Para poner tu tema por defecto solo tienes que ejecutar

sudo ​ update-alternatives ​--config​ default.plymouth

● Eliges el tema que esta ennumerado y por ultimo tienes que actualizar al initrd para que en el live
Cd este puesto tu tema.

update-initrd ​-u

Finalizar y empaquetar

Listo!!!! Estas a punto de terminar tu primera remasterizacion de tu distro, ahora solo te queda empaquetar la iso

de nuevo y probar.

● Borra los archivos temporales

rm ​ ​-rf​ ​ / ​tmp​ /* ​ ~​ / ​.bash_history

rm ​ ​ / ​etc​ / ​resolv.conf

● Desmonta todo lo que este montado (lo que montaste con chroot)

umount ​ ​ / ​proc ​ / ​sys ​ / ​dev​ / ​pts ​ exitumount ​ edit​ / ​dev

umount ​ mount-cd squasfs

● Copia el nuevo initrd.lz a extract-cd

cp ​ new-initrd​ / ​initrd.lz extract-cd​ / ​casper

● Empaqueta como squashfs la carpeta edit. Esto tarda asi que por que no vas a tomar un Cafe o
caminas un poco.

mksquashfs edit extract-cd​ / ​casper​ / ​filesystem.squashfs

● Si quieres puedes modificar los parametros de identificacion de la iso y la imagen splash

nano ​ extract-cd​ / ​.disk​ / ​info ​ # Cambialo por el nombre de tu Distro

● El directorio isolinux contiene el menu del boot asi que puedes jugar con ciertos archivos (text.cfg
es.tr es.hlp), quitar lenguajes y cambiar la imagen de inicio. Esta imagen esta en pcx asi que en
gimp haz una imagen y luego eliges que la imagen sea de una paleta de 14 colores. Recuerda tiene
que ser menor a 16 Colores y pesar menos de 70 kb ademas de ser pcx.

Ahora a Empaquetar

● Entra a extract-cd

cd ​ extract-cd

● crea la iso

genisoimage ​-D​ ​-r​ ​-V​ ​"Nombre_de_tu_Distro_Version"​ ​-cache-inodes​ ​-J​ ​-l​ ​-b isolinux​ / ​isolinux.bin ​-c​ isolinux​ / ​boot.cat ​-no-emul-boot​ ​-boot-load-size​ 4 -boot-info-table​ ​-o​ ..​ / ​Mi_Distro.iso.

Probando el live-cd

qemu ​-cdrom​ Mi_Distro.iso ​-boot​ d ​-m​ 512

O si tienes virtualizacion por hardware:

kvm ​-cdrom​ Mi_Distro.iso ​-boot​ d ​-m​ 512

Por Fin tu propia Distro personalizada. ¿Facil No?

Ahora solo queda de tu parte hacer lo restante, esto es basico y si quieres mantener tu distro arma una

comunidad dispuesta a trabajar, porque mientras mas "Sabores" haya mejor, asi hay mas de donde elegir.

Suerte y gracias por tomarte tu tiempo de leer este tutorial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment