Crear distribuciones linux basadas en Knoppix
>
> Hola a todos. ¿Has probado decenas de distribuciones linux y ninguna tiene
> todo lo que quieres por defecto?. ¿Te gustaría tener una distribución que se
> ajuste a tus preferencias y que a la vez sea live?. ¿Deseas crear tu propia
> distribución para que tenga todas las características que necesitas, para
> una comunidad en concreto o por el mero afán de crear una buena distribución
> para todo el mundo?. Si alguna de las anteriores respuestas fue afirmativa,
> éste es tu tutorial.
>
> En este tutorial aprenderás a crear una distribución linux basada en Knoppix
> o en alguno de sus derivados como puede ser Damn Small Linux (en el cual nos
> centraremos bastante) de una manera relativamente sencilla
>
> (NOTA IMPORTANTE: este tutorial no es para novatos. Uno de los requisitos
> para llevarlo a cabo es manejarse con soltura en la consola porque la gran
> mayoría del proceso de
> modificación se produce en ella).
>
> Un poco de teoría
>
> Antes de ponernos manos a la obra necesitaremos saber un poco como funciona
> una distribución de este tipo y sus archivos importantes.
>
> En pocas palabras, una distribución Knoppix es casi como una distro normal
> pero que se empaqueta y comprime en un fichero cloop (archivo que por regla
> general lleva como nombre KNOPPIX) todos sus archivos excepto el kernel, que
> se halla en un archivo aparte, y se han introducido una serie de archivos de
> configuración de arranque. Este archivo comprimido se monta durante el
> arranque de Knoppix. La organización de archivos en un cd de Knoppix sería
> de la siguiente manera (en concreto esta lista corresponde a Damn Small
> Linux):
>
> /boot
> isolinux/
> boot.cat
> boot.msg (mensaje de arranque de la distro)
> f2
> f3 (ambos mensajes que aparecen al mostrar la tecla correspondiente)
> german.kbd (configuración del telcdo para el boot)
> isolinux.bin (Programa que se encarga del arranque del cd)
> isolinux.cfg (configuración del mismo)
> linux24 (kernel)
> logo.16 (splash de arranque)
> minirt24.gz (mini sistema de arranque, lo explicaré mas tarde)
> /KNOPPIX
> KNOPPIX (imagen comprimida del sistema de archivos)
>
> En las versiones modernas de Knoppix (en concreto a partir de la 3.4) todos
> estos archivos se hallan en un archivo llamado boot.img el cual se encuentra
> dentro de la carpeta /KNOPPIX. También en todas las Knoppix el archivo
> linux24 se llama vmlinuz y el archivo minirt24.gz se llama minirt.gz.
>
> Ahora voy a explicar cómo se produce el arranque. Primero se monta el
> archivo boot.img y ejecuta el programa isolinux.bin el cual muestra el
> splash de inicio y queda el tipico boot: ahí se introducen los comandos de
> arranque en caso que fuese necesario y si no arranca con las opciones por
> defecto, carga el kernel y el minirt.gz que se encarga de testear la RAM
> disponible y de buscar el archivo KNOPPIX. Si lo encuentra, lo monta y
> arranca desde ahí; si no, deja una shell muy limitada con busybox. Esto es a
> grandes rasgos el pre-arranque de una distro Knoppix. Posteriormente, cuando
> se monta el archivo KNOPPIX se produce el verdadero arranque de la
> distribución ya que detecta el hardware y arranca los programas necesarios
> además de crear un ramdisk para guardar los datos del usuario que,
> inicialmente, no se encuentran en el directorio /home, como normalmente
> ocurre, sino que se encuentra en /etc/skel. Por eso es necesario crear el
> ramdisk para poder mover los archivos de usuario de /etc/skel a
> /home/<nombre_usuario> y así poder escribir en ellos.
>
>
> Manos a la obra
>
>
> Después de un poco de teoría vamos a comenzar el proceso de modificación de
> la distribución.
> Primero, como es obvio, hay que descargar la distribución que vamos a
> modificar ya sea Knoppix o uno de sus derivados. Posteriormente lo grabamos
> en un cd.Para modificar la distro tendremos que cumplir una serie de
> requisitos, primero 1 GB de RAM (no es necesario que tengamos 1 gb. real,
> sólo necesitamos que sea la suma de la real más swap. Si no tenéis tanta
> swap para que alcance, más adelante crearemos un archivo swap en el disco
> duro) si se trata de Knoppix y si es DSL es suficiente con 300 MB. Los
> requisitos de disco duro es una partición con al menos 4 GB libres en una
> unidad ext2 o ext3 nunca vfat (2 GB para los archivos modificados y otros
> dos para la imagen comprimida y las ISO) (NOTA: si se trata de DSL
> únicamente necesitaremos alrededor de 1.5 GB).
> Una vez cumplidos estos requisitos vamos a comenzar.
>
> 1,- Arrancamos el ordenador con el cd de Knoppix o DSL (según cual nos
> basemos).
>
> 2,- Nos metemos en una consola de root.
>
> 3,- Montamos la unidad de destino (suponiendo que sea hda2):
> mount -rw /dev/hda2 /mnt/hda2
>
> 4,- Creamos los directorios de trabajo:
> mkdir /mnt/hda2/source (aquí copiaremos los archivos para
> modificarlos)
> mkdir /mnt/hda2/master (imagen comprimida y archivos de arranque del
> cd)
> mkdir /mnt/hda2/iso (aquí irán las imágenes ISO)
>
> 5,- Creamos otros directorios necesarios:
> mkdir -p /mnt/hda2/source/KNOPPIX
> mkdir -p /mnt/hda2/master/KNOPPIX
>
> 6,- Copiamos los archivos de Knoppix al disco duro para modificarlos:
> cp -rp /KNOPPIX /mnt/hda2/source/KNOPPIX (NOTA: Tarda bastante)
>
> 7,- Copiamos los archivo del cd de Knoppix
> Para DSL y Knoppix anteriores a 3.4:
> cp -rp /cdrom/boot /mnt/hda2/master
> Para Knoppix a partir 3.4:
> Todos los archivos de /cdrom/KNOPPIX menos KNOPPIX los copiamos a
> /mnt/hda2/master/KNOPPIX
> Para todas las versiones:
> cp -p /cdrom/index.html /mnt/hda2/master
> 8,- Configuramos la conexión a internet si no lo está ya y copiamos el
> archivo de
> configuración:
> cp /etc/dhcpc/resolv.conf /mnt/hda2/source/KNOPPIX/etc/dhcpc
>
> 9,- Montamos el dv y el proc para que podamos acceder a nuestras unidades y
> dispositivos:
> mount --bind /dev /mnt/hda2/source/KNOPPIX/dev
> mount --bind /proc /mnt/hda2/source/KNOPPIX/proc
>
> 10,- Chrooteamos (es decir convertimos un directorio como si fuera la raíz
> de la
> unidad y utilizamos las utilidades que hay dentro de él):
> chroot /mnt/hda2/source/KNOPPIX
>
> 11,- Ya estamos dentro ahora podemos agregar y quitar programas mediante
> apt-get
>
> Para ver una lista de los paquetes instalados ejecutamos:
>
> dpkg -l
>
> Si queremos ver la lista de los paquetes instalados ordenados por el tamaño
> que ocupan ejecutamos:
>
> dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n
>
> Para eliminar los archivos huérfanos que tan molestos son tecleamos:
>
> apt-get remove --purge $(deborphan) -y
>
> NOTA MUY IMPORTANTE: nunca ejecutar apt-get upgrade ya que corrompería el
> sistema de Knoppix y luego la imagen comprimida no funcionaría.
>
> NOTA: en DSL no está instalado apt-get y hay que bajarlo de la web e
> instalarlo con el programa /etc/init.d/mydsl-install
>
> NOTA: dentro no se pueden ejecutar programas gráficos a no ser que
> exportemos la salida gráfica de la siguiente manera: export
> DISPLAY=localhost:0.0 (en ocasiones esto no funciona y es mejor hacer como
> explico en el próximo apartado).
>
> Una vez llegado aquí, cada uno instalará y desinstalará los archivos que
> necesite pero un gran problema surge cuando se desea cambiar de gestor de
> ventanas. Un consejo es que si queremos una distribución que tenga fluxbox
> no nos vamos a poner a quitar el KDE a Knoppix y luego instalar fluxbox,
> sino que utilizaremos DSL aunque la mayoría de programas que queramos
> incluir los lleve por defecto Knoppix, nos sale mucho más rentable ir
> añadiendo programas a DSL e incluso cambiarle el kernel que el simple hecho
> de cambiar el KDE en Knoppix ya que este proceso produce muchos problemas.
>
> Cambiar el entorno de escritorio o modificar el actual
>
> Aún después de todo deseas cambiar el entorno de escritorio o deseas cambiar
> la configuración del actual, incluir archivo en la carpeta de usuario
> (aunque esto ultimo es tan sencillo como meterlos en /etc/skel) o modificar
> la configuración de los programas. Te lo explico paso a paso a continuación.
>
> Para cambiar en entorno de escritorio primero eliminamos el actual mediante
> apt-get. Lo recomendable es quitar primero kde-base y konqueror y luego
> pasar varias veces el comando para eliminar huérfanos que he puesto más
> arriba hasta que ponga que quedan cero archivo huérfanos. Luego iremos
> quitando las aplicaciones de kde que quedaron y quitamos las libqt.
> Posteriormente cuando todo esté limpio y sin huérfanos procederemos a
> instalar el nuevo entorno de escritorio.
>
> Ahora para configurar el entorno de escritorio, ya sea el nuevo que hemos
> cambiado o el actual, salimos de chroot (ya sea con un simple exit o un
> Ctrl+D) y seguimos los siguientes pasos:
>
> 1. Iniciamos Knoppix en runlevel 2 (es decir modo texto) tecleando init 2.
>
> 2. Montamos el dev y el proc como he explicado más arriba (en el caso de que
> los hayamos desmontadoo hayamos reiniciado el ordenador)
>
> 3. Copiamos la configuración de las X:
> En Knoppix a partir de la versión 3.4:
> cp /etc/X11/xorg.conf /mnt/hda2/source/KNOPPIX/etc/X11
> En DSL y Knoppix anteriores a la 3.4:
> cp /etc/X11/XF86Config-4 /mnt/hda2/source/KNOPPIX/etc/X11
>
> 4. Chrooteamos:
> chroot /mnt/hda2/source/KNOPPIX
>
> 5. Copiamos los archivos del usuario a su carpeta en home:
> cp -rp /etc/skel /home/knoppix
> NOTA: en DSL en vez de knoppix es dsl
>
> 6. Cambiamos los permisos:
> chown knoppix:knoppix -R /home/knoppix
> NOTA: en DSL es dsl:dsl
>
> 7. Cambiamos al usuario knoppix:
> su knoppix
> NOTA: en DSL es su dsl
>
> 8. Iniciamos el entorno de escritorio:
> startx
>
> 9. Ahora podemos modificar la configuración y el aspecto del entorno de
> escritorio, incluir los programas que hemos instalado en los menús,
> modificar la configuración de los programas, etc. Cuando terminemos salimos
> del entorno gráfico.
>
> 10. Volvemos a root con exit.
>
> 11. Es recomendable hacer un backup de skel por si necesitamos restaurar
> algún archivo
> mv /etc/skel /etc/skel-old
>
> 12,- Movemos los archivos modificados a skel:
> mv /home/knoppix /etc/skel
>
> 13,- Cambimos los permisos de nuevo a root:
> chown root:root -R /etc/skel
>
> 14,- Eliminamos el archivo xorg.conf o XF86Config-4
> rm /etc/X11/xorg.conf
>
> Cambiar el fondo de escritorio de KDE
>
> Aunque hayamos cambiado el fondo de escritorio desde KDE cada vez que inicia
> lo cambia por uno que se encuentra en el cd, así que para cambiar el fondo
> es tan sencillo como sobreescribir el que se encuentra en
> /mnt/hda2/master/KNOPPIX/background.jpg por el nuestro.
>
> Archivos de configuración importantes
>
> Hay una serie de archivos de configuración que nos será útil conocer ya sea
> para traducir su contenido al español o para que haga una determinada tarea
> durante el arranque. El primero de ellos es /etc/init.d/knoppix-autoconfig
> (siempre dentro de chroot) el cual se encarga de configurar el hardware e
> iniciar los servicios de inicio. Es un script de bash así que su sintaxis es
> clara y no nos costará demasiado traducir los mensajes que se muestran o
> modificar algo. El segundo es /etc/skel/.xinitrc que es el que se encarga de
> iniciar los programas durante el inicio gráfico y nos servirá para poner
> algún programa como puede ser un navegador para que muestre una página
> determinada. Éste también es un
> script de bash como todos los que estoy explicando aquí.
> Dependiendo del entorno de escritorio que usemos el contenido de este
> archivo puede ser omitido. Y por último tenemos un conjunto de dos archivos
> que son /etc/init.d/knoppix-halt y /etc/init.d/knoppix-reboot los cuales se
> encargan de apagar y reiniciar respectivamente.
>
> Limpiando un poco
>
> Si ya tenemos la distribución a nuestro gusto y queremos probarla para ver
> el resultado, antes debemos limpiar un poco y tener una serie de
> precauciones. Tenemos que comprobar que el sistema no ocupe mas de 1.6 Gb.
> ya que si supera esa cantidad no cabrá en un cd de 700 mb. En caso que
> queramos conservar todo y la limpieza que llevaremos a cabo a continuación
> no libera suficiente os deberíais plantear crear un dvd en lugar de un cd.
>
> Primero eliminaremos todos los paquetes que hemos descargado lo cual
> liberará una ingente cantidad de espacio:
> apt-get clean
>
> Luego hay que eliminar el historial de los comandos tecleados y para ello
> introduciremos:
> history -c
>
> Después de esto eliminaremos los posibles archivos temporales:
> rm -r /tmp/*
>
> También procuraremos no dejar archivos en /root ya que estos no estarán
> disponibles cuando
> arranquemos la distribución.
>
> Después de esto ya podemos salir de chroot con exit o Ctrl+D y desmontamos
> el proc y el dev lo que también liberará espacio:
> umount /mnt/hda2/source/KNOPPIX/proc
> umount /mnt/hda2/source/KNOPPIX/dev
>
> Modificando archivos del cd
>
> Ahora que ya tenemos el sistema de archivos preparado vamos a modificar lo
> relacionado con el arranque del cd, es decir todo lo que se encuentra de
> boot.img. Lo primero es montar el archivo boot.img para poder modificar los
> archivos. En caso que sea DSL o una Knoppix anterior a la 3.4 los archivos
> se encuentran en
> /mnt/hda2/master/boot/isolinux.
>
> Para montar boot.img hacemos lo siguiente:
>
> 1,- Cambiamos al directorio que se encuentra boot.img:
> cd /mnt/hda2/master/KNOPPIX
>
> 2,- Montamos la imagen:
> mount -t msdos -o loop boot.img /mnt/test
>
> 3,- Cambiamos a /mnt/test para editar los archivos.
>
> Ahora con esto podemos modificar distintas cosas para convertirla en nuestra
> distro como puede ser el splash donde se muestre el nombre de nuestra
> distro, etc.
>
> Bueno empecemos a modificar una cosa sencilla, el archivo boot.msg. Este
> archivo se encarga de mostrar todo lo que vemos antes del boot:. Lo abrimos
> con un editor de texto y podemos modificar el texto que muestra por el
> nuestro pero sin modificar la primera línea ya que es la que se encarga de
> mostrar el splash.
>
> Para cambiar el splash de arranque por uno nuestro es muy sencillo lo único
> que es necesario es sobreescribir el archivo logo.16, pero primero hay que
> convertirlo en unos sencillos pasos:
> 1,- Creamos con un editor gráfico, preferiblemente el Gimp, nuestra pantalla
> de arranque a una resolución de 640x400, a 16 colores y en gif.
>
> 2,- Convertimos al formato lss16 (que es el que se utiliza isolinux para los
> splash):
> giftopnm < imagen.gif > logo.ppm
> ppmtolss16 < logo.ppm > logo.16
>
> Ya sólo queda sobreescribir el archivo logo.16 por el que acabamos de crear.
> Imagen 2: Splash de la Linpodcast distro 0.5
>
> Otro archivo que podemos modificar es el isolinux.cfg. En él se encuentra la
> opción por defecto de arranque, el tiempo de espera para que arranque, el
> nombre de los archivos del kernel y el minirt, los archivos que se muestran
> al pulsar F1, F2, etc. Lo más importante modificar es la configuración del
> idioma del teclado. Para cambiarlo a español es tan sencillo como cambiar
> todos los lang=us a lang=es.
> Otra cosa interesante es cambiar el nombre de la distribución que se muestra
> después de aceptar el boot.
> Para modificarlo tenemos que seguir los siguientes pasos:
>
> 1,- Nos situamos en la carpeta que se encuentre el minirt.gz o minirt24.gz y
> lo descomprimimos:
> gunzip minirt.gz
>
> 2,- Luego creamos una carpeta en mnt para montarlo:
> mkdir /mnt/mini
>
> 3,- Lo montamos:
> mount -t ext2 -o loop minirt /mnt/mini
>
> 4,- Cambiamos a /mnt/mini y ahí modificamos el archivo linuxrc con cualquier
> editor buscando dónde está el mensaje que muestra y cambiándolo por el
> nombre de nuestra distribución. Dado que es un script de bash, su sintaxis
> es sencilla.
>
> 5,- Desmontamos:
> umount /mnt/mini
>
> 6,- Cambiamos a donde se encuentra minirt y comprimimos de nuevo:
> gzip -9 minirt
>
> Creando la ISO
>
> Ya ha llegado el momento de crear la ISO de nuestra distribución. En este
> paso es donde se necesita 1 GB de RAM así que si no tenemos suficiente
> crearemos un archivo swap de la siguiente manera:
>
> 1,- Primero creamos un archivo del tamaño que necesitemos:
> dd if=/dev/zero of=swap bs=1M count=500
> NOTA: Cambiaremos el 500 por el valor en MB hasta llegar a un GB sumado con
> nuestra RAM.
>
> 2,- Le damos formato de swap:
> mkswap swap
>
> 3,- Desmontamos cualquier swap que tengamos y montamos ésta:
> swapon swap
>
> Para el proceso de creación de la ISO he preparado el siguiente script:
>
> #!/bin/bash
> # Este script sirve para crear una ISO modificada de KNOPPIX o sus
> # derivados como DSL o Linpodcast distro 0.5
> # Este script ha sido creado por mrcomputer.
> # Esta licenciado por la licencia GPL versión 2 o superior.
> # Versión 0.2 - 01/09/2007
> # Versión 0.1 - 25/06/2007
> # Para cualquier problema póngase en contacto con el autor a traves de
> # su e-mail <[email protected]>
> NORMAL="$(echo -e '\033[0;39m')"
> BLANCO="$(echo -e '\033[1;37m')"
> AZUL="$(echo -e '\033[1;34m')"
> if [ $# -lt "3" ]; then
> echo "${BLANCO}Ayuda"
> echo
> echo "Uso: $0 <unidad> <1|2> <nombre_de_la_distro>"
> echo
> echo "<1|2> 1 si es KNOPPIX versión moderna"
> echo " 2 si es DSL, Linpodcast distro 0.5"
> echo " o KNOPPIX vesión antigua"
> echo
> echo "Ej: $0 hda2 1 Distro_sin_nombre${NORMAL}"
> exit 1
> fi
> DRIVE=$1
> SOURCE="/mnt/$DRIVE/source/KNOPPIX"
> MASTER="/mnt/$DRIVE/master"
> ISO="/mnt/$DRIVE/iso"
> MOD=$2
> DISTRO=$3
> rm -rf $SOURCE/.rr_moved
> mkisofs -R -L -allow-multidot -l -V "KNOPPIX filesystem" \
> -o $ISO/knoppix.iso -hide-rr-moved -v $SOURCE
> create_compressed_fs $ISO/knoppix.iso 65536 > $MASTER/KNOPPIX/KNOPPIX
> rm -f $ISO/knoppix.iso
> if [ $MOD -eq "1" ]; then
> cd $MASTER
> mkisofs -pad -l -r -J -v -V "$DISTRO" -b KNOPPIX/boot.img \
> -c KNOPPIX/boot.cat -hide-rr-moved -o $ISO/$DISTRO.iso $MASTER
> fi
> if [ $MOD -eq "2" ]; then
> cd $MASTER
> mkisofs -pad -l -r -J -v -V "$DISTRO" -no-emul-boot \
> -boot-load-size 4 -boot-info-table -b boot/isolinux.bin \
> -c boot/boot.cat -hide-rr-moved -o $ISO/$DISTRO.iso $MASTER
> fi
> echo "${AZUL}Creación de la ISO finalizada. ${NORMAL}"
> Guárdalo como crea_iso.sh y dale permiso de ejecución de la siguiente
> manera chmod +x crea_iso.sh
>
> Su sintaxis es la siguiente:
> ./crea_iso.sh unidad 1 | 2 nombre_de_la_distro
> En unidad ponemos la unidad que se encuentra los archivos que de la distro
> (Ej: hda2). En 1 | 2 el uno se pone si se trata de una Knoppix posterior a
> la 3.4 y 2 para DSL o Knoppix anteriores a 3.4. En nombre_de_la_distro
> ponemos el nombre que le hemos dado sin espacios. El tiempo que tarda este
> script depende de la potencia del ordenador y la cantidad de datos pero
> oscila entre los 10 y los 45 min.
> Un vez que terminado grabamos la ISO en un cd regrabable o la emulamos con
> un emulador de sistemas como puede ser VirtualBox.
>
> Resolución de posibles problemas.
> Como en cualquier cosa surgen problemas, así que intentaré resolver algunas
> de las más comunes quepodemos encontrarnos durante el arranque de nuestra
> distribución.
>
> Problema: No arranca la distro, dice que no encuentra el archivo KNOPPIX y
> me deja en una shell muy básica.
> Solución: Puede ser debido a falta de RAM durante la generación de la ISO.
> Aumenta la swap y prueba de nuevo. Otra posible causa es que se modificó
> algo mal en el archivo minirt.gz, sustitúyelo por el original del cd de la
> distro base. Si aún así sigue sin funcionar, es un problema de mayúsculas y
> minúsculas, comprueba que la carpeta KNOPPIX está todo con mayúsculas y en
> el archivo KNOPPIX que está dentro también.
>
> P: No arranca el modo gráfico
> S: Lo que ocurre es que falta el archivo .bash-profile, copialo de /KNOPPIX
> a /mnt/hda/source/KNOPPIX y remasteriza de nuevo. Si así arranca pero no
> está con la configuración, o no carga los menús ni el aspecto gráfico que
> habías puesto, copia el .xinitrc que se encuentra en /etc/skel dentro de
> chroot a la raíz de chroot.
>
> Conclusiones
>
> Con este tutorial tendrás las bases para crear distribuciones basadas en
> Knoppix o sus derivados. Porsupuesto los derivados no sólo se quedan en DSL,
> encontramos muchísimas distribuciones basadas en Knoppix como pueden ser
> Luit linux, Linpodcast distro 0.5 (ésta creada por un servidor), Feather
> linux, etc.
> Para cualquier duda, queja, sugerencia podéis enviarme un e-mail a
> [email protected]
InnoEd'2009: VI Taller Internacional Innovación Educativa-Siglo XXI. Mayo 26-29
"La investigación educativa como vía para la profesionalización de la docencia"
Más información en http://cedut.freeservers.com/whats_new.html
Evento COMUR 2009
VII Taller Internacional de Desarrollo Comunitario y Rural.
Del 30 de Junio al 3 de Julio 2009
Convocatoria en:
http://www.ult.edu.cu/documentos/Convocatoria_COMUR_2009.doc
Universidad 2010
Centro de Estudios de Didáctica Universitaria de la Universidad de Las Tunas
convoca a la realización del Evento Provincial UNIVERSIDAD'2010
a desarrollarse el sábado 3 de octubre de 2009 en el Centro Universitario.
Convocatoria en:
http://www.ult.edu.cu/eventos/Universidad2010.doc
_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l