G A C E T A   D E   L I N U X
...haciendo a Linux un poco más divertido!
Cómo construí un CD Debian personalizado desde Knoppix
Por Sunil Thomas Thonikuzhiyil
Traducción al español por Ricardo Frydman
el día 3 de Febrero 2003, para La Gaceta de Linux

 

Introducción

    Knoppix es una distribución en cd en vivo basada en debian GNU/linux. Contiene una gran cantidad de aplicaciones que pueden ser de utilidad incluso en configuraciones muy limitadas. Knoppix soporta una gran cantidad de placas de video, sonido, dispositivos scsi y USB. Puede utilizarse como demo de Linux, cd educativo, sistema de rescate o adaptado y utilizado como plataforma para demostrar productos comerciales. No es necesario instalar nada en el disco duro. Hay un programa de instalación, el cual puede instalar el cd completo en el disco duro, si así lo deseas. Ésto significa que tienes una instalación completa debian en 20 minutos. Este documento describe cómo construí un cd en vivo personalizado desde knoppix. Mi motivación principal al fabricar éste cd fue la de incluir algunas de mis aplicaciones favoritas que no estaban en el CD de knoppix. Si encuentras errores en éste documento por favor mándame un mail aquí

Requerimientos

a) Software

Para comenzar debes descargar la imagen de knoppix del sitio. Se hacen versiones nuevas cada una o dos semanas.Hay 2 imágenes: en alemán y en inglés. Hice la mía basada en la versión 31-10-2002-EN.

 Si ya tienes una imagen puedes intentar hacer rsync para actualizarla a la versión más reciente. Sin embargo, no esperes ahorrar demasiado ancho de banda, ya que la imagen knoppix está comprimida. Si tienes un cdrom knoppix crea una imagen con   #dd if=/dev/cdrom of=knoppix.iso)

Renombra la imagen para reflejar el nombre de la versión actual.
  Ejemplo
Yo había descargado   KNOPPIX_V3.1-23-10-2002-EN.iso
y quiero actualizarla a  KNOPPIX_V3.1-31-10-2002-EN.iso
  Renombra KNOPPIX_V3.1-23-10-2002-EN.iso como  KNOPPIX_V3.1-31-10-2002-EN.iso
 Luego
 rsync -P --stats ftp.leo.org::Knoppix/KNOPPIX_V3.1-31-10-2002-EN.iso  .
( puedes utilizar cualquier otro sitio de knoppix para rsync. Siempre verifica que el sitio contenga la última versión)

b) Hardware

Una computadora con toneladas de espacio libre en el disco duro y memoria. Yo lo hice en una Pentium III 950 Mhz con 128 MB RAM.


Configuración inicial

 Haz mucho espacio libre en el disco. Necesitas mucho capital para re-masterizar un CD KNOPPIX
Yo creé 2 particiones nuevas en mi disco de 20 GB
           hda2 con 2GB  de swap
           hda3 con 5 GB para trabajo de re-masterización ( puedes utilizar una partición Linux existente si tiene suficiente espacio libre)

 Ahora arranca la máquina con el cd Knoppix (también puedes hacer el re-masterizado tras la instalación de knoppix en el disco duro. Puedes leer un COMO de la instalación en el disco duro aquí )

Al inicio presiona enter. Knoppix arranca un GUI. El predeterminado es KDE. Puedes modificarlo si deseas. Yo lo hice al arrancar KDE. Se supone que estás familiarizado con Knoppix. Lee los códigos en el CD de Knoppix para más información sobre el arranque

a) Configuración de la red desde el menu de KDE

  Ingresa en
K/Knoppix/network-Internet/Network-card-configuration

    Yo estoy conectado a una red y configuré las direcciones IP, máscara de red, nombre del servidor y pasarela. Este paso es de gran importancia si tienes que instalar los elementos personalizados desde otra ubicación.

b) Configuración de las particiones

Abre un shell de root desde el menu KDE (K/Knoppix/Root-shell)  Obtendrás el símbolo #

Ejecuta cfdisk

A continuación, deberás hacer las particiones necesarias. Yo creé dos particiones hda2 con 2 GB a y  hda3 con 5 GB

Escoje el tipo swap para la partición de 2 GB (/hda2 en mi caso)

Escoje el tipo Linux nativo (ext2) para la de 5 GB (hda3 aquí)
Guarda la información sobre las particiones

Sal de cfdisk

 Para crear un sistema de archivos comprimido, necesitamos bastante espacio de swap. Yo creé el swap con
 # mkswap /dev/hda2
 # swapon /dev/hda2               

( también es posible utilizar un archivo de swap )

Crea un sistema de archivos ext2 en la partición de 5GB
  # mke2fs /dev/hda3

Monta la partición de 5 GB al sistema de archivos Knoppix
# mount /dev/hda3 /mnt/hda3

La configuración básica para la re-masterización está lista


Instalación y Remoción de Programas

EL CD de knoppix está organizado de manera similar a la figura de abajo ( Corríjanme si me equivoco. puede diferir levemente si lo miras desde windows u otra distro Linux)

     
/--demos
|--talks
|--index.html
|--autorun.bat
|--autorun.inf
|--knoppix.ico
|--KNOPPIX
      |--KNOPPIX
      |--boot.img
      |--background.gif
      |- (Algunos archivos más)

 El archivo KNOPPIX en el directorio /KNOPPIX del cd es de aproximadamente 700MB. Contiene una imagen comprimida del sistema de archivos. Debemos modificar sólo éste y dejar el resto del cd intacto (a menos que quieras modificar los archivos de arranque, la imagen de inicio, etc).

a) Copiar el sistema de archivos de Knoppix al disco duro

Al arrancar el CD de Knoppix, monta un archivo de imagen comprimido se monta en /KNOPPIX Tienes que copiarlo a la partición destino. Yo hice
# cp -Rp  /KNOPPIX    /mnt/hda3/ 
( la opción -R se para copia recursiva, -p para preservar los dueños, fecha y hora, etc) Esto te coloca todos los archivos necesarios para hacer tu propio CD en tu disco duro en el directorio /mnt/hda3/KNOPPIX/. Échale una mirada.

b) Chroot

Tienes que instalar/desinstalar los programas bajo éste árbol (sin no tienes red, copia tus fuentes a (digamos) /mnt/hda3/KNOPPIX/root/ y si tienes los debs cópialos en /mnt/hda3/KNOPPIX/var/cache/apt/archives)
Ahora, debemos cambiar la raíz del sistema de archivos por /mnt/hda3/KNOPPIX
#chroot /mnt/hda3/KNOPPIX

obtendrás de respuesta un símbolo # (si obtienes mensaje de denegación de permisos /dev/null sólo presiona control C)
Estás en / ( chroot en /mnt/hda3/KNOPPIX)

Ahora monta el sistema de archivos proc
#mount -t proc /proc proc    

c) Configurar la red

Añade a  /etc/resolv.conf
nombredeservidor ip-de-tu-servidor

(tuve un problema curioso con /etc/resolv.conf estando enlazado a /etc/dhcp/resolv.conf. No funcionaba el ping. Quité el enlace simbólico y creé /etc/resolv.conf nuevamente y funcionó. Asegúrate de rehacer el enlace simbólico al concluir)

Ahora verifica la dirección IP con ifconfig. (Debería ser la misma que del lado del chroot). Ahora intenta ping google.com. Si recibes respuesta, tu red está configurada correctamente bajo chroot. Haz apt-get update.

d) Instalar/Desinstalar

Puedes instalar/desinstalar cualquier programa que necesites usando apt. El CD original tiene muchos programas instalados, así que no es tarea sencilla. A continuación una lista parcial de paquetes que yo borré

 Juegos

falconseye-data
rocks-n-diamonds
amor
nethack-x11
gnome-games-locale
xboard
gnocatan-client
imaze
kmahjongg
gnome-gnibbles
freeciv-gtk
ktuberling
gnocatan-help
ksirtet
gnome-gnobots2
jumpnbump
ksnake
xgalaga
lskat
katomic
kshisen
konquest
chromium
ktux
moon-buggy
kmoon
ksame
gnuchess
ktron
frozen-bubblekjumpingcube
fortune-mod
kodo
gnocatan-ai
gnocatan-server-console
gnocatan-server-data
nethack
821
fortunes
searchandrescue
xbill
kspaceduel
libkdegames
tipptrainer-data-dexconq
gcompris
gnome-chess
tuxracer-data
abuse-frabs
gnome-gnotski
frotz
kblackbox
gnome-games
gnome-gtali
gnome-iagno
gnome-stones
gnocatan-server-gtk
lxdoom-x11
maelstrom
kabalone
gnome-gnotravex
fortunes-min
chromium-data
kdegames
pingus-data
task-kde-games
stax
gnome-card-games
xtris
xtux
kjezz
lxdoom

No-libres

x3270
xanim festlex-oald
netscape-java-477
j2re1.3
3270-common
tgif
giflib-bin
frotz xfractint
giflib3g communicator-smotif-477
netscape-base-477
maelstrom communicator-base-477
gimp1.2-nonfree
acroread
lha
unarj
xsnow

Misc  

tetex-base
tetex-extra
j2re1.3  
lyx
acroread
qcad
rocks-n-diamonds 
kde-i18n-da
kde-i18n-it
kde-i18n-de
kde-i18n-fr
kde-i18n-ru
kde-i18n-nl
kde-i18n-ja
kde-i18n-es 
kde-i18n-cs
kde-i18n-pl
kde-i18n-tr
xfonts-intl-chinese
kword
kpresenter
abiword-gtk
karbon
kchart
kformula
kivio
koffice-libs
kontour
koshell
kspread

 Copié la lista de arriba a un archivo (digamos kicklist)  entonces
    #dpkg -P `cat kicklist`  
Borró todos los archivos listados (observe la comilla inversa)

Si buscas paquetes grandes instalados
      #  dpkg-awk "Status: .* installed$" -- Package Installed-Size| awk '{print $2}' | egrep -v '^$' | xargs -n2 echo | perl -pe 's/(\S+)\s(\S+)/$2 $1/' | sort -rg
te listará los paquetes ordenados por tamaño en orden descendente.

Finalmente corre deborphan para verificar si existen paquetes huérfanos
#deborphan > /tmp/orphanlist
#dpkg -P `cat /tmp/orphanlist`
# rm /tmp/orphanlist 

Un método alternativo es utilizar synaptic y añadir/borrar paquetes desde un GUI. Synaptic es un buen entorno gráfico para el apt.

Para ello debes hacer
# apt-get install synaptic
exportar la variable de entorno DISPLAY para que synaptic funcione correctamente
#DISPLAY=miip:0.0    ( reemplaze miip con su dirección IP)
#export DISPLAY
#synaptic

Se ejecutará synaptic
Disfruta de apt por éste medio

Una vez que has terminado con synaptic, puedes re-masterizar el cd. Si estás trabajando desde la instalación del disco duro de knoppix y quieres que synaptic funcione, fíjate en /etc/X11/xinit/xserverrc y verifica que -nolisten tcp esté borrado. Además, haz xhost + como usuario no root)

Desmonta proc (Esto es muy importante)
 #umount /proc

Presiona control D para salir del entorno chroot

Más personalización  

1  Instalación de aplicaciones compiladas desde las fuentes  

 Descarga las fuentes de los programas dentro del entorno de chroot. Compila e instala como siempre. Si es una aplicación X11 exporta el display previamente.
Yo utilizo checkinstall asic-linux.com.mx/~izto/checkinstall/ para instalar y mantener debs de destilación casera.
Recuerda borrar las fuentes al terminar (de lo contrario te ocuparán espacio en el cd).

2)  Cambiar los parámetros de usuario    

Es posible establecer contraseñas para los usuarios. Sólo hay que hacerlo bajo chroot.

3) Cambiar las imágenes de fondo

/usr/local/lib/knoppix.gif es la imagen predeterminada para X

4) Modificar la pantalla de arranque 

 El CD de Knoppix usa syslinux para arrancar. Si quieres cambiar la pantalla o mensajes de arranque haz lo siguiente. Crea un directorio temporal en tu disco duro (yo hice mkdir /mnt/hda3/image)
Copia el archivo boot.img  desde el directorio Knoppix de tu cd knoppix
       #cp /KNOPPIX/boot.img /mnt/hda3
 Monta la imagen del siguiente modo
      # mount -t msdos -o loop   /mnt/hda3/boot.img  /mnt/hda3/image
Ahora mira el directorio que has creado. Hay muchos archivos interesantes en él.

    a) Logo de arranque
logo.16 es la imagen que se observa en la pantalla de arranque. Está codificada en un formato especial. Para reemplazarla, graba una imagen de 640*400 en 16 colores. Yo descargué una imagen de gnu.org. Conviértela a un archivo png (nómbralo logo.png) 
 
       #pngtopnm <logo.png >logo.pnm
      #ppmtolss16 <logo.pnm >logo.16
    # cp logo.16 /mnt/hda3/image/logo.16

  (El tamaño final de log,16 debe rondar los 50 k). Desmonta el directorio con la imagen. Copia boot.img a un floppy.
   #dd if=boot.img of=/dev/fd0
Arranca la máquina desde el floppy que has hecho. Si arranca correctamente, has terminado

 b)  syslinux.cfg
Al modificar syslinux.cfg puedes cambiar una cantidad de parámetros pasados al kernel. Lee las páginas man de syslinux para mayores detalles
  5)Modifcar el kernel  ( ****NO VERIFICADO ****)         

Haz un kernel nuevo personalizado utilizando el paquete kernel. Mantiene el tamaño del kernel lo más pequeño posible. Copia el kernel y los módulos al archivo boot.img. Reemplaza /lib/modules/2.4.19-xfs  con los módulos de tu nuevo kernel
Reemplaza los archivos en /boot  

6)Cambiar el GUI predeterminado por Gnome/ icewm
Cambiar el gui predeterminado por otro es bastante fácil
Dentro del entorno chroot abre el archivo
     /etc/init.d/knoppix-autoconfig

Busca las siguientes líneas
-------------------------------------------------------

#Además lee el escritorio deseado, si hay alguno

DESKTOP="$(getbootparam desktop 2>/dev/null)"

# Sólo admite administradores de ventana permitidos

case "$DESKTOP" in gnome|kde|larswm|xfce|windowmaker|wmaker|icewm|fluxbox|twm) ;; *)

  DESKTOP="KDE"; ;; esac
--------      ^^   --------------------------------------

  Modifica arriba donde dice KDE por gnome y ya está

 7) Borrar cualquier archivo temporal
    a)   Busca en /root  archivos ocultos tales como .bash_history .viminfo
    b)   Borra todos los archivos deb en  /var/cache/apt/archives 
     c) Ejecuta el script knoppix.clean  ( Ten cuidado y sólo ejecútalo desde el entorno chroot)

 (* enlace a los script aquí*)       

Re masterización del CD

a) Hacer una imagen ISO

 1)  Haz un nuevo directorio en /mnt/hda3
   Yo lo nombré NewCd
    Copia Todo excepto el archivo de imágenes comprimidas(KNOPPIX) desde el cd de knoppix (mira en /cdrom). Puedes borrar con seguridad los directorios demos y talks
  2) Crear la imagen comprimida
   #mkisofs -R   /mnt/hda3/KNOPPIX  |  create_compressed_fs -   65536  > /mnt/hda3/NewCD/KNOPPIX/KNOPPIX   

 3) Recrear el CD arrancable
 #cd /mnt/hda3

 #mkisofs -r -J -b KNOPPIX/boot.img -c KNOPPIX/boot.cat   -o myknoppix.iso  NewCd

b)Verificar la imagen

Crea un floppy de arranque
# dd if=/mnt/hda3/KNOPPIX/boot.img of=/dev/fd0 
Copia el archivo comprimido que has creado al directorio /KNOPPIX de cualquier partición. El diskette de arranque buscará /KNOPPIX/KNOPPIX en las particiones del disco duro. Esto facilita la verificación. Una vez estés satisfecho con tu imagen quémala a un CD

PUF

 1) Cómo detengo el konqueror al inicio
Para detener al konqueror debes modificar
        /etc/X11/Xsession.d/45xsession
    Busca las siguientes líneas

-------------------------------------------
if [ -e "$INDEXFILE" ]; then
cat >> $HOME/Desktop/KNOPPIX.desktop <<EOF
[Desktop Entry]
Name=KNOPPIX
Exec=kfmclient openProfile webbrowsing $INDEXFILE
Type=Application
Icon=html
Terminal=0
EOF
ln $HOME/Desktop/KNOPPIX.desktop $HOME/.kde/Autostart/showindex.desktop
fi

----------------------------------------- 

 Esto genera un archivo de autoarranque. Coméntalo

2) Arranqué un cd de knoppix y monté un disco duro, cómo copio algo vía scp al disco duro
      Abre una ventana de comandos
      pon la contraseña para el usuario knoppix
      ejecuta  (/etc/init.d/ssh start)
      Luego copia con scp

 3) Estoy en el símbolo $ y quiero hacer su
      Pon sudo  passwd
      pon la contraseña de root
      luego, su

 4) El modo texto predeterminado de arranque es frame buffer y los caracteres son muy pequeños, cómo lo arreglo
     Monta boot.img
     busca syslinux.cfg
     bajo  Default  vmlinuz
     modifica VGA=791 por VGA=normal

5 )Mi definición de teclado es en Alemán. Cómo lo cambio a Inglés
 Abre el centro de control de KDE, selecciona system system ->keyboard y cámbialo a US English

Referencias

He adaptado gran cantidad de material de los siguientes enlaces. También #knoppix en irc.freenode.net es una buena fuente de información
1)Página principal de Tech2k
Ken Burk me ayudó mucho en irc para mejorar éste documento. Su sitio tiene excelente información en la que puedes confiar. Su página de remasterizado kix es muy buena.
2) Knoppix.net
 El sitio no-oficial de knoppix es una gran fuente de información. Cantidad de novedades en torno a remasterización es publicada regularmente.
3) El foro Knoppix en linuxtag
Este sitio combina Alemán e Inglés. Muy buena fuente de Knoppix

 

[BIO] Trabajo como consultor en tecnología de la información en la Asamblea Legislativa Kerala, Trivandrum, India. Me enganché con Linux desde 1996. Tengo una Maestría en Ciencia de la Computación en la Universidad Cochin. Me interesan todo tipo de Sistemas Operativos. En mi tiempo libre me gusta escuchar música clásica India.


Copyright © 2003, Sunil Thomas Thonikuzhiyil. Copying license http://www.linuxgazette.com/copying.html
Publicado en Edición 87 de Linux Gazette, Febrero de 2003