Knoppix Remastering Howto Spanish


From Knoppix Documentation Wiki
Revision as of 01:14, 26 November 2007 by Arturoportilla (Talk | contribs)

Jump to: navigation, search

Traducciones:


== Vea también : ==

Esta guía le mostrará cómo remasterizar KNOPPIX

(Notas : las órdenes deberían aparecer en una sola línea, por favor maximice su ventana del navegador. Si tiene cualquier comentario o sugerencia, por favor envíe el formulario que hay al final.)

Puede que desee personalizar un Knoppix ya adaptado, de forma que no tenga que hacer tanto esfuerzo (tal como eliminar programas). Si es así, vea Knoppix Customizations.

Requisitos del sistema:

  • CD-ISO
    • por lo menos 1 GB de memoria libre total FREE RAM+Swap (ej. 256M ram, y 750M swap DISPONIBLE) (a menos que use un programa de compresión diferente - busque compressloop en esta página)
    • 3 GB libres en una partición de disco formateada con sistema de ficheros Linux (ext2/3, xfs, etc.)
  • DVD-ISO
    • 5 GB libres de RAM + swap (para un DVD de tamaño completo)
    • 15 GB libres en una partición de disco formateada con sistema de ficheros Linux (ext2/3, xfs, etc.)


Instrucciones:

  1. Arranque desde el CD de Knoppix
  2. Abra una consola de root:
    • Menú: Kmenu->Knoppix->Consola de Root
    • Nota: Todas las órdenes a continuación son ejecutadas desde la consola de root.
  1. Configure su conexión a Internet (lo necesitará más adelante). Si usa DHCP, ya debería estar configurada.
    • Nota: Ejecute ifconfig para comprobarlo.
  1. Busque la partición en la que va a trabajar. En este ejemplo será hda1 . La partición debería tener al menos 3 GB libres
  2. Monte la partición:
    • mount -rw /dev/hda1 /mnt/hda1
    • Nota: Asegurese que es de lectura/escritura u obtendrá errores más adelante cuando cambie la raíz del sistema. Para comprobarlo, teclee mount
  1. Cree un directorio raíz donde trabajar:
    • mkdir /mnt/hda1/knx
    • Si coloca todos sus ficheros aquí, será fácil borrarlos todos después
  1. Si no tiene 1 GB de RAM (cat /proc/meminfo (physical+swap)) entonces necesitará un fichero de intercambio (swap):
    • cd /mnt/hda1/knx ; dd if=/dev/zero of=swapfile bs=1M count=750 ; mkswap swapfile ; swapon swapfile
  1. Cree 2 directorios, uno para su nuevo CD maestro, y otro para los fuentes, en una partición del disco. También, cree directorios adicionales en ellos llamados KNOPPIX:
    • mkdir -p /mnt/hda1/knx/master/KNOPPIX
    • mkdir -p /mnt/hda1/knx/source/KNOPPIX
  1. Ahora copie los ficheros de KNOPPIX a su directorio fuente:

* cp -Rp /KNOPPIX/ /mnt/hda1/knx/source &

    • Nota: Esto tardará unos minutos
  1. Copie la página HTML principal de inicio:
    • cp /cdrom/index.html /mnt/hda1/knx/master/
  1. Copie todos los ficheros necesarios excepto el fichero KNOPPIX, de unos 700 Mb.
    • < 3.4: cd /cdrom/KNOPPIX;find . -size -10000k -type f -exec cp -p --parents {} /mnt/hda1/knx/master/KNOPPIX/ \;
    • 3.4: cd /cdrom;find . -size -10000k -type f -exec cp -p --parents {} /mnt/hda1/knx/master/ \;
  1. Ahora puede cambiar la raíz del sistema "chroot" al KNOPPIX copiado en su partición:
    • chroot /mnt/hda1/knx/source/KNOPPIX

Si obtiene un montón de mensajes de error /dev/null permission denied, debería hacer los siguiente. Esto puede pasar si guarda sus datos de configuración de Knoppix en la misma partición que esté usando para la remasterización, Y arranca Knoppix con knoppix home=scan.

Compruebe el estado de montado si obtuvo el problema: mount /dev/hdaX on /mnt/hdaX type ext3 (rw,nosuid,nodev) (reemplace la X con su número de partición ) donde "nodev" significa que no puede acceder al sistema de ficheros montado y que no puede acceder a /dev/null. Y algunos scripts redirigen la salida a /dev/null... Para solventar esto debería montar la partición de destino antes de cambiar la raíz del sistema (chroot) de esta forma:

^d  # control+d saldrá del entorno chroot
mount /dev/hda1 /mnt/hda1

Entonces debería obtener:

mount /dev/hda1 on /mnt/hda1 type ext3 (rw)

Si persisten los avisos de /dev/null entonces, antes de hacer chroot, haga:

mount --bind /dev /mnt/hda1/knx/source/KNOPPIX/dev

¡Tiene que desmontar umount /mnt/hda1/knx/source/KNOPPIX/dev antes de construir la imagen del CD o el directorio /dev del CD se hará un lio!

entonces puede seguir y hacer el chroot.

  • Ahora ha cambiado su direcotio raíz. "/" es en estos en realidad "/mnt/hda1/knx/source/KNOPPIX"
  • Para acceder a Internet necesitará montar proc mount -t proc /proc proc
  • Ahora edite /etc/resolv.conf y añada su servidor de nombres o "salga" del chroot y copie su fichero resolve.conf en el directorio fuente correspondiente: cp /etc/dhcpc/resolv.conf /mnt/hda1/knx/source/KNOPPIX/etc/dhcpc/resolv.conf
  • Cambie también su grupo MS en smb.conf si desea soporte smbd (MSHOME es normalmente Home en XP y WORKGROUP en Windows 9x .
  • Compruebe su conexión a Internet desde la nueva raíz : ping google.com
  • Actualice su lista de paquetes con apt-get update
  • Ahora puede realizar cambios.
  • Aviso: apt-get upgrade es una MALA IDEA. Muy probablemente, hará que su remasterización de KNOPPIX no sea arrancable o se corrompa en alguna forma. Un método más seguro consiste en actualizar sólo los paquetes necesarios
    • Antes de poder añadir programas, probablemente tendrá que eliminar algunos paquetes. Para obtener una lista de los paquetes instalados, teclee esto:

* dpkg-query -l

    • Si quiere tener esa lista ordenada por tamaño (de esta forma podrá eliminar los que más ocupan), teclee esto:

* dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

    • Para eliminar un paquete (y todos los paquetes que dependen de él), teclee esto:

* apt-get remove <nombre-del-paquete-a-eliminar>

    • Para comprobar paquetes huérfanos, teclee esto:

* deborphan

    • Si desea ahorrar más espacio eliminando esos molestos huérfanos(¡Qué cruel!), teclee esto (Aviso, no se le preguntará sí/no para eliminar estos paquetes. Cuando pulse Intro después de esta orden, los paquetes habrán desaparecido):

* deborphan | xargs apt-get -y remove

    • Si no está seguro acerca del comando anterior y quiere ver que pasará sin hacer ningún cambio, simplemente añada la opción -s a la orden apt-get de esta forma (puede hacer esto con todas las órdenes apt-get, y es un buen hábito usar esta opción antes de operaciones masivas como esta):

* deborphan | xargs apt-get -s -y remove

    • Ahora las buenas obras. Si desea añadir un paquete, teclee esto:

* apt-get install <nombre-del-paquete-a-instalar>

    • ¿No sabe que paquetes instalar? Teclee esto. Cuando aparezca la lista, puede examinarla (¡unas 13000 líneas!) o buscar cosas usando /<search-term>:

* apt-cache search .* | sort | less

    • Cuando haya terminado de eliminar y añadir paquetes, una buena forma de hacer limpieza es tecleando los siguiente:

* COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P

    • También, como el sistema de paquetes Debian guarda en caché los paquetes descargados, querrá ejecutar lo siguiente para eliminar esos ficheros inútiles:

* apt-get clean

    • las configuraciones de usuario están en /etc/skel
    • consejo: no cloque ficheros en /root sólo estarán disponibles en tiempo de ejecucuón en /KNOPPIX/root
  • Desmonte /proc - ¡muy importante! umount /proc
  • Pulse CTRL+D para volve a la raíz original (no chrooted).

Notas :

Cuando compruebe programas gráficos basados en X, tendrá que hacer export DISPLAY=localhost:0.0

Cuando quiera autoejecutar algunos programas, puede crear un script y ponerlo en el directorio /etc/rc5.d/ (Esto sólo carga elementos antes de cargar las X)

hay material interesante en /etc/init.d/knoppix-autoconfig :

  • El fichero de fondo X background está en /cdrom/KNOPPIX/background.gif (en knoppix 3.4: background.jpg)
  • Al igual que con floppyconfig, está cdromconfig que ejecutará cdrom/KNOPPIX/knoppix.sh

hay material interesante en /etc/init.d/xsession :

  • TAMBIÉN establece el fondo /usr/local/lib/knoppix.gif

Ahora la creación del fichero ISO :

  • ya hemos terminado de personalizarlo y ¡queremos quemar!
  • primero haga algo de limpieza : elimine los ficheros .bash_history, ficheros temporales etc
  • rm -rf /mnt/hda1/knx/source/KNOPPIX/.rr_moved
  • Ahora crearemos el fichero enorme que es un sistema de ficheros ISO 9660 cloop comprimido : mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix-es.org" -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda1/knx/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

el "www.knoppix-es.org" y "Knoppix.net filesystem" pueden ser modificados a lo que quiera que nombre el fichero. Obtendrá un error diciendo que no cumple los estándars ISO, puede ignorarlo.

En Knoppix 3.4 el scrip create_compressed_fs ha sido actualizado así que asegúrese de usarlo para obtener los mejores resultados. Tiene una nueva opción -b (best), que activa la mejor compresión usando diferentes esquemas de compresión e intenta optimizarlo de esa forma, pero sea cauto, porque esa opción es ralentiza (10 veces más lento).

  • si todo fue bien, para crear la imagen del CD-ROM final :
  • cd /mnt/hda1/knx/master
  • rm -f KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -not -name isolinux.bin -exec md5sum {} \; >> KNOPPIX/md5sums (esto actualizará las sumas de verificación md5 de los ficheros incluidos, se usa para comprobar la integridad)
  • para Knoppix <= 3.3: mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o /mnt/hda1/knx/knoppix.iso /mnt/hda1/knx/master (la ISO se guardará en /mnt/hda1/knx/knoppix.iso)
  • Para Knoppix >= 3.4 u otras distribuciones basadas en isolinux haga:

mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o /mnt/hda1/knx/knoppix.iso /mnt/hda1/knx/master (la ISO se guardará en /mnt/hda1/knx/knoppix.iso)

  • ¡y eso es todo!

Trucos/consejos

Si está buscando paquetes grandes instalados teclee

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

listará los paquetes en orden de tamaño descendente. Por lo menos diez veces más rápido es el comando

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

y no necesita dpkg-awk o awk o perl.

Si tiene algún problema con el comando de ordenación anterior, pruebe a usar KPackage, expanda todas las ramas y ordene por la columna de tamaño para encontrar los paquetes mayores.

Compruebe la salida del programa "deborphan", listará los paquetes huérfanos que pueden ser eliminados, estos paquetes eran usados por otros paquetes que ahora han sido borrados.

Yo he obtenido buenos resultados remasterizando trabajando desde el cd como root y desde fluxbox. Sólo teclee "knoppix 2" en el prompt de arranque y arrancará en una consola de texto como root, donde puede teclear "startx /usr/bin/fluxbox". Me gusta usar la consola unicode xterm.

Mientras trabajo desde chroot creando la remasterización me gusta usar "apt-get remove --purge pkg-name" para eliminar paquetes porque antes de hacer nada se detendrá y mostrará los detalles de lo que va a ajustar para eliminar y le permitirá decir "sí o no".

Si no usa la instrucción "apt-get" y tiene que limpiar y purgar mucho, aquí tiene la forma de hacerlo: "COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' >topurge". Lo que creará una lista de los paquetes eliminados a purgar y entonces puede hacer "dpkg -P `cat topurge `" y ya está. "COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P" es la versión en una sola línea de esto. Use también "deborphan >orphaned" y luego "dpkg -P `cat orphaned `". "deborphan | xargs dpkg -P " es una versión en una sola línea para lo miso.


Eso es todo. Esta es una versión actualizada de mi howto pevio. No es para novatos en Linux, necesitará buscarse la vida para hacerlo trabajar. Actualizará esto con correcciones/mejoras/etc a medida que las tenga.

Gracias a aay, charan, Tech2k, y #knoppix por algunas correcciones, trucos e ideas. Es libre de editar o añadir a este howto. Nota cerca de swap:
No necesita realmente 1G de swap ya que hay dos nuevas herramientaspara crear sistemas de ficheros comprimidos. Aquí hay algunos candidatos para crear sistemas de ficheros comprimidos:

  • Valentijn's rewrite [1]
  • Quozl's port of compressloop for Knoppix 3.4 [2]
  • Quozl's distributed compressloop (use more than one processor to speed things up) [3] or [4]
  • Justin's patch [5] (link broken) I also just wrote a distributed cloop compressor(or for smp) It's in that same directory.

Truco, compruebe la imagen del cd sin grabarla en un cd

Si tiene una partición de sobra con al menos 700MB de espacio libre formateada con ext2, ext3 o Vfat, puede usarla para comprobaciones arrancando desde un disquete. Un disquete de arranque buscará una partición con el directorio /KNOPPIX/ en la raíz, y la imagen comprimida /KNOPPIX/KNOPPIX. En lugar de usar el subdirectorio /mnt/hda1/knx/master/KNOPPIX/ como se describia anteriormente, se debería llamar /mnt/hda2/KNOPPIX/ . Entonces el index.html estaría en /mnt/hda2/index.html y la imagen comprimida estaría en /mnt/hda2/KNOPPIX/KNOPPIX . Ahora puede arrancar desde un disquete y usar /mnt/hda2 como imagen. Para más infomración lea Hd BasedHowTo.

Si no tiene una partición extra o no quiere hacerlo, puede usar Qemu ( lea [6] ) con la imagen ISO de esta forma: qemu -m 128 -cdrom /temp/knoppix-custom.iso -boot d -user-net Ni siquiera necesita construir imagen de disco antes, simplemente instale Qemu y pruebe esto. ¡Asombroso!

Arranque de imágenes de Knoppix con GRUB

  • Primero copie /boot del cd de Knoppix a su partición de arranque (o incluso a su partición dos). Yo nombré el mio boot.knoppix

Copie el directorio /KNOPPIX a su directorio raíz* de cualquir disco duro. Puede colocarlo en cualquier otra partición distinta a la de arranque. (puede ser ext2/3, reiserfs o vfat)

  • Coloque los siguiente en el fichero /boot/grub/menu.lst:
title           KNOPPIX
root            (hd0,0)
kernel  /boot.knoppix/vmlinuz 2 fromhd=/dev/hda4 lang=us
initrd  /boot.knoppix/miniroot.gz
  • tenga en cuenta que el parámetro fromhd: es el lugar donde está el directorio /KNOPPIX
  • reinicie y disfrute.

Si mi howto (como) es demasiado confuso, o le gustaría una segunda opinión, mire el bonito howto de charan : http://gnubox.dyndns.org:8080/~sunil/knoppix.php . Otro Howto en http://www.stirnimann.com/mystuff/doc/knoppix.txt

Hay un asistente, que utiliza todos los pasos de desempaquetado, compresión y grabación de CD mencionados aquí. También muestra una consola donde puede actualizar el sistema KNOPPIX descomprimido usando herramientas de estándar de instalación de software Debian. Se llama mmkcdrom y part del paquete de scripts: [7]

Otro HOWTO más, para los freaks de la consola, en http://quozl.linux.org.au/knoppix/

Asegúrese de que echa un vistazo a Knoppix Customization Forum para ideas y ayuda con la remasterización.


Este es el esquema de directorios recomendado para remasterizar KNOPPIX:

. (invoque ../remaster desde aquí)
|-- master (invoke ../../umountbootimage from here)
|   |-- KNOPPIX
|   |   |-- KNOPPIX (compressed image)
|   |   |-- boot.img (boot floppy image)
|   |   `-- (other files snipped)
|   `-- index.html
`-- source
`-- KNOPPIX (se puede hacer chroot sobre este directorio)
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- floppy
|-- home
|-- initrd
|-- lib
|-- mnt
|-- none
|-- opt
|-- proc
|-- root
|-- sbin
|-- tmp -> /var/tmp
|-- usr
|-- var
`-- vmlinuz -> boot/vmlinuz-2.4.22-xfs

el siguiente script "remaster" hará el proceso de remasterización por usted. Úselo como root, u obtendrá derechos de acceso incorrectos en la imagen.

El script ha sido probado con Debian sid del 2004-04-02.

#!/bin/bash -x
# This script builds a new KNOPPIX ISO image.
# Copyright (C) 2004 by Marc Haber <mh+knoppix-remaster@zugschlus.de>
# License: GPL V2

ROOT="$PWD"
SOURCE="$ROOT/source/KNOPPIX"
MASTER="$ROOT/master"
CLOOPTARGET="$ROOT/master/KNOPPIX/KNOPPIX"
TARGET="$ROOT"
EXCLUDELIST="$ROOT/source/excludelist"

rm -rf $SOURCE/.rr_moved

cd $SOURCE
mkisofs -R -U -V "KNOPPIX.net filesystem" \
-P "KNOPPIX www.knoppix.net" \
-hide-rr-moved -cache-inodes -no-bak -pad \
-exclude-list $EXCLUDELIST \
. | nice -5 /usr/bin/createcompressedfs - 65536 > $CLOOPTARGET

cd $MASTER
rm -f KNOPPIX/md5sums
find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img \
-c KNOPPIX/boot.cat -hide-rr-moved -o $TARGET/knoppix.iso $MASTER

El siguiente script montará la imagen de arranque de disquete y la imagen initrd para su modificación. La función umount construirá una nueva imagen initrd y la pondrá de vuelta en la imagen de arranque del disquete.

El script ha sido probado con Debian sid del 2004-01-13.

#!/bin/bash -x
# This script will loop-mount boot floppy and initrd image
# Copyright (C) 2004 by Marc Haber <mh+knoppix-remaster@zugschlus.de>
# License: GPL V2
unset CDPATH || true

# if not root, re-invoke self as root
if [[ "`id -u`" -ne 0 ]]; then
export LOCUSER="$USER"
export LOCHOME="$HOME"
if [[ "${SHELLOPTS/xtrace/}" != "$SHELLOPTS" ]]; then
sudo bash -x $0 $@
exit $?
else
sudo $0 $@
exit $?
fi
else
LOCUSER="${LOCUSER:-$USER}"
LOCHOME="${LOCHOME:-$HOME}"
fi
set -e

KNOPPIXDIR="KNOPPIX"
BOOTIMGFILE="$KNOPPIXDIR/boot.img"
BOOTIMGFS="vfat"
BOOTIMGDIR="boot.img"
INITRDGZ="$BOOTIMGDIR/miniroot.gz"
INITRDFILE="$KNOPPIXDIR/miniroot"
INITRDFS="ext2"
INITRDDIR="miniroot"

mountbootimage() {
if ! modprobe loop; then
echo >&2 "ERR: cannot load loop module"
exit 1
fi

if ! [[ -e "$BOOTIMGFILE" ]]; then
echo >&2 "ERR: no $BOOTIMGFILE found"
exit 1
fi

for nofile in $BOOTIMGDIR $INITRDGZ $INITRDFILE $INITRDDIR; do
if [[ -e "$nofile" ]]; then
echo >&2 "ERR: $nofile already exists"
exit 1
fi
done

mkdir -p $BOOTIMGDIR
mount -o loop,uid=$LOCUSER -t $BOOTIMGFS $BOOTIMGFILE $BOOTIMGDIR

< $INITRDGZ gunzip > $INITRDFILE
mkdir -p $INITRDDIR
mount -o loop -t $INITRDFS $INITRDFILE $INITRDDIR
}

umountbootimage() {
dd if=/dev/zero of=$INITRDDIR/nullfile || true
sync
rm $INITRDDIR/nullfile
umount $INITRDDIR
rmdir $INITRDDIR
< $INITRDFILE gzip --best > $INITRDGZ
rm -f $INITRDFILE

umount $BOOTIMGDIR
rmdir $BOOTIMGDIR

syslinux KNOPPIX/boot.img
}

case "`basename $0`" in
mountbootimage)
mountbootimage
;;
umountbootimage)
umountbootimage
;;
*)
echo >&2 "ERR: called with unknown name `basename $0`"
exit 1
;;
esac