Manual Debian Live

Acerca de este manual

1. Acerca de este manual

1.1 Para el impaciente.
1.2 Términos
1.3 Autores
1.4 Cómo contribuir en este documento
1.4.1 Aplicación de parches
1.4.2 Traducciones

2. Acerca del Proyecto Debian Live

2.1 Motivación
2.1.1 Desventajas en los sistemas Live actuales
2.1.2 El porqué de crear un Sistema Live propio.
2.2 Filosofía
2.2.1 Solamente paquetes oficiales sin modificación alguna
2.2.2 Sin configuración especial para el Sistema Live
2.3 Contacto

Usuario

3. Instalación

3.1 Requisitos
3.2 Instalación de live-build
3.2.1 Desde el repositorio Debian.
3.2.2 A partir del código fuente
3.2.3 A partir de «instantáneas»
3.3 live-boot y live-config
3.3.1 Desde el repositorio Debian.
3.3.2 A partir del código fuente
3.3.3 A partir de «instantáneas»

4. Conceptos básicos

4.1 ¿Qué es un sistema en vivo?
4.2 Primeros pasos: creación de una imagen ISO híbrida
4.3 Usar una imagen ISO híbrida
4.3.1 Grabar una imagen ISO en un medio físico.
4.3.2 Copiar una imagen ISO híbrida a un dispositivo USB
4.3.3 Arrancar los medios en vivo
4.4 Usar una máquina virtual para pruebas
4.4.1 Probar una imagen ISO con QEMU
4.4.2 Probar una imagen ISO con virtualbox-ose
4.5 Crear una imagen USB/HDD
4.6 Utilizar una imágen USB/HDD
4.6.1 Probar una imágen USB/HDD con Qemu
4.6.2 Usar el espacio libre en el dispositivo USB
4.7 Creación de una imagen de arranque en red
4.7.1 Servidor DHCP
4.7.2 Servidor TFTP
4.7.3 Servidor NFS
4.7.4 Cómo probar el arranque en red
4.7.5 Qemu
4.7.6 VMWare Player

5. Descripción general de las herramientas

5.1 live-build
5.1.1 El comando lb config
5.1.2 El comando lb build
5.1.3 El comando lb clean
5.2 El paquete live-boot
5.3 El paquete live-config

6. Gestionar una configuración

6.1 Utilización de auto para gestionar los cambios de la configuración
6.2 Un ejemplo de scripts auto.

7. Descripción general de la personalización.

7.1 Configuración en el momento de la creación vs en el momento del arranque
7.2 Etapas de la creación
7.3 Opciones para lb config en ficheros
7.4 Tareas de personalización

8. Personalización de la instalación de paquetes

8.1 Origen de los paquetes
8.1.1 Distribución, áreas de archivo y modo
8.1.2 Réplicas de Distribución Debian
8.1.3 Réplicas de Distribution utilizadas durante la creación
8.1.4 Réplicas de distribución Debian utilizadas en la ejecución.
8.1.5 Repositorios adicionales
8.2 Selección de los paquetes a instalar
8.2.1 Selección de unos pocos paquetes
8.2.2 Listas de paquetes
8.2.3 Listas de paquetes predefinidas
8.2.4 Listas de paquetes locales
8.2.5 Listas de paquetes locales para binary
8.2.6 Extensión de una lista de paquetes dada mediante «includes»
8.2.7 Utilización de condiciones dentro de las listas de paquetes
8.2.8 Tareas
8.2.9 Tareas de Escritorio e Idioma
8.3 Instalar paquetes de terceros o paquetes modificados
8.3.1 Método chroot_local-packages para instalar paquetes personalizados
8.3.2 Método de repositorio APT para instalar paquetes personalizados
8.3.3 Paquetes personalizados y APT
8.4 Configurar APT en la creación
8.4.1 Utilizar apt o aptitude
8.4.2 Utilización de un proxy con APT
8.4.3 Ajuste de APT para ahorrar espacio
8.4.4 Pasar opciones a apt o a aptitude
8.4.5 APT pinning

9. Personalización de contenidos

9.1 Includes
9.1.1 Includes locales en Live/chroot
9.1.2 Includes locales en Binary
9.1.3 Includes en Binary
9.2 Scripts gancho (Hooks)
9.2.1 Scripts gancho locales en Live/chroot
9.2.2 Scripts gancho en tiempo de arranque
9.2.3 Scripts gancho locales en Binary
9.3 Preconfiguración de las preguntas de Debconf

10. Personalización del comportamiento en tiempo de ejecución.

10.1 Personalización del usuario por defecto del sistema en vivo
10.2 Personalización de las variantes locales e idioma
10.3 Persistencia (Modo guardar cambios)
10.3.1 Persistencia total
10.3.2 Montar Home de forma automática
10.3.3 Instantáneas
10.3.4 SubText persistente
10.3.5 Remasterización parcial

11. Personalización de la imagen binaria

11.1 Gestor de arranque
11.2 Metadatos ISO

12. Personalización del Instalador de Debian

12.1 Tipos de imágenes según el instalador
12.2 Personalizando el Instalador de Debian mediante preconfiguración
12.3 Personalizar el contenido del Instalador de Debian

Proyecto

13. Informes de errores.

13.1 Problemas conocidos
13.2 Reconstruir desde cero
13.3 Utilizar paquetes actualizados
13.4 Recopilar información
13.5 Aislar el fallo si es posible
13.6 Utilizar el paquete correcto sobre el que informar del error
13.6.1 En la preinstalación (bootstrap) en tiempo de creación.
13.6.2 Mientras se instalan paquetes en tiempo de creación.
13.6.3 En tiempo de arranque
13.6.4 En tiempo de ejecución
13.7 Hacer la investigación
13.8 Dónde informar de los fallos

14. Estilo de código

14.1 Compatibilidad
14.2 Sangrado
14.3 Ajuste de líneas
14.4 Variables
14.5 Miscelánea

15. Procedimientos

15.1 Subir Udebs
15.2 Principales lanzamientos
15.3 Nuevas versiones
15.3.1 Plantilla para anunciar nuevas versiones.

Ejemplos

16. Ejemplos

16.1 Uso de los ejemplos
16.2 Tutorial 1: Una imagen estándar
16.3 Tutorial 2: Una utilidad de navegador web
16.4 Tutorial 3: Una imagen personalizada
16.4.1 Primera revisión
16.4.2 Segunda revisión
16.5 Un cliente VNC kiosk
16.6 Una imagen básica para un pendrive USB de 128M
16.7 Un escritorio KDE con variante local e instalador

Manual Debian Live

Usuario

10. Personalización del comportamiento en tiempo de ejecución.

Toda la configuración que se hace en tiempo de ejecución es realizada por live-config. Éstas son algunas de las opciones más comunes de live-config en las que los usuarios están más interesados. Se puede encontrar una lista completa de todas las posibilidades en la página del manual de live-config.

10.1 Personalización del usuario por defecto del sistema en vivo

Una consideración importante es que el usuario por defecto del sistema en vivo es creado por live-boot en el arranque y no live-build durante la creación de la imagen. Ésto no sólo influye dónde se introducen los materiales relacionados con este usuario durante la creación de la imagen tal y como se explica en Includes locales en Live/chroot sino también a cualquier grupo y a los permisos asociados con el usuario por defecto del sistema en vivo.

Se puede especificar grupos adicionales a los que pertenecerá el usuario por defecto del sistema en vivo preconfigurando el valor debconf passwd/user-default-groups. Por ejemplo, para agregar el usuario al grupo fuse añadir el siguiente código en un fichero en el directorio config/chroot_local-preseed.

   user-setup passwd/user-default-groups string audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth fuse

10.2 Personalización de las variantes locales e idioma

Cuando el sistema en vivo arranca, el idioma está implicado en tres pasos:

  • Generar las variantes locales
  • Establecer la distribución del teclado para el consola
  • Establecer la distribución del teclado para el entorno gráfico X
  • La variante local predeterminada en la creación de un sistema en vivo es "locales=en_US.UTF-8". Para definir la variante local que se debe generar, se puede utilizar el parámetro locales en la opción --bootappend-live de lb config, p.ej.

       $ lb config --bootappend-live "locales=de_CH.UTF-8"

    Este parámetro también se puede utilizar en la línea de comandos del kernel. Se puede especificar una variante local usando una palabra completa language_country.encoding.

    Tanto la configuración del teclado de la consola y del entorno gráfico X dependen del parámetro keyboard-layouts de la opción --bootappend-live. Se pueden encontrar opciones válidas de la disposición del teclado en /usr/share/X11/xkb/rules/base.xml (bastante limitado a los códigos de país de dos letras). Para hallar el valor (los dos letras) que corresponde a un idioma se puede buscar el nombre en inglés de la nación donde se habla el idioma, por ejemplo:

       $ grep -i sweden -C3 /usr/share/X11/xkb/rules/base.xml | grep name
       <name>se</name>

    Por ejemplo, para obtener los ficheros de la variante local de la disposición del teclado alemán y suizo-alemán en X usar:

       $ lb config --bootappend-live "locales=de_CH.UTF-8 keyboard-layouts=ch"

    Se puede ver una lista de los valores de teclados válidos para la consola con el siguiente comando:

       $ for i in $(find /usr/share/keymaps/ -iname "*kmap.gz"); \
           do basename $i | head -c -9; echo; done | sort | less

    Alternativamente, se puede usar el paquete console-setup una herramienta que permite configurar la disposición de la consola utilizando definiciones X (XKB), a continuación, se puede configurar el teclado con mayor precisión con las variables keyboard-layouts, keyboard-variant, keyboard-options y keyboard-model; live-boot también usará estos parámetros para la configuración de X. Por ejemplo, para establecer un sistema francés con una distribución de teclas francés-Dvorak (llamado Bepo) en un teclado TypeMatrix, tanto en consola X como X11, se puede utilizar:

       $ lb config --bootappend-live \
           "locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variant=bepo keyboard-model=tm2030usb"

    10.3 Persistencia (Modo guardar cambios)

    Un paradigma de un cd en vivo («live cd» N. del T.) es ser un sistema pre-instalado que funciona desde medios de almacenamiento de sólo lectura, como un CD-ROM, donde los cambios y las modificaciones no se guardan tras reiniciar el sistema en que se ejecuta.

    Un sistema Debian Live es una generalización de este paradigma pero que es compatible con otros medios de almacenamiento, no sólo en CDs. Aún así, en su comportamiento predeterminado, se debe considerar un sistema de sólo lectura y todos los cambios en tiempo de ejecución del sistema se pierden al apagar el equipo.

    La persistencia (o modo guardar cambios) es un nombre común que se dá a los diferentes tipos de soluciones para guardar algunos o todos los cambios realizados durante la ejecución tras reiniciar el sistema. Para entender cómo funciona es útil saber que incluso si el sistema se inicia y se ejecuta desde los medios de almacenamiento de sólo lectura, las modificaciones de los ficheros y directorios se escriben en medios de escritura, por lo general en la memoria ram (tmpfs) y los datos guardados en la ram no se guardan tras reiniciar.

    Los datos almacenados en esta memoria ram se pueden guardar en un soporte grabable como un disco duro, una memoria USB, un recurso compartido de red o incluso en una sesión de un CD/DVD regrabable en multisesión. Todos estos medios son compatibles con Debian Live de diferentes maneras, y todos menos el último requieren un parámetro de arranque especial que se especificará en el momento del arranque: persistent.

    10.3.1 Persistencia total

    Por «Persistencia total» se entiende la utilización de una partición de escritura en lugar de usar un tmpfs (sistema de ficheros temporal) para guardar los cambios realizados a los medios de sólo lectura (con el sistema copiar-al-escribir o COW «copy-on-write» N. del T.). Para utilizar esta función se debe crear una partición grabable vacía con la etiqueta «live-rw» formateada con un sistema de ficheros compatible en el medio usado para arracar el sistema en vivo. En el momento de arrancar se debe iniciar el sistema con el parámetro de arranque 'persistent'. Esta partición puede ser una partición ext2 en el disco duro o en una memoria USB creada con, por ejemplo:

       # mkfs.ext2 -L live-rw /dev/sdb1

    Ver Usar el espacio libre en el dispositivo USB.

    Si ya existe una partición en el dispositivo, sólo se tiene que cambiar la etiqueta con uno de los siguientes:

       # tune2fs -L live-rw /dev/sdb1 # for ext2,3,4 filesystems

    Pero ya que los usuarios de un sistema en vivo no siempre pueden utilizar una partición del disco duro, y teniendo en cuenta que la mayoría de memorias USB tienen velocidades de escritura lentas, la persistencia total también puede ser usada con ficheros imagen, de este modo se puede crear un fichero que represente una partición y poner ese fichero imagen incluso en una partición NTFS de un sistema operativo no nativo, con algo similar a esto:

       $ dd if=/dev/null of=live-rw bs=1G seek=1 # for a 1GB sized image file
       $ /sbin/mkfs.ext2 -F live-rw

    A continuación, copiar el fichero live-rw a un partición grabable y reiniciar el sistema con el parámetro de arranque «persistent».

    10.3.2 Montar Home de forma automática

    Si durante el arranque se encuentra una partición (sistema de ficheros) con un fichero imagen o una partición con la etiqueta home-rw el sistema de ficheros será montado de forma automática como /home, lo que permite la persistencia de los ficheros que pertenecen a, por ejemplo, el usuario por defecto. Se puede combinar con persistencia total.

    10.3.3 Instantáneas

    Las instantáneas son colecciones de ficheros y directorios que no se montan durante la ejecución, pero que se copian desde un dispositivo persistente al sistema (tmpfs) en el arranque y que se resincroniza en el reinicio/apagado del sistema. El contenido de una instantánea puede residir en una partición o en un fichero imagen (como los tipos mencionados anteriormente) con la etiqueta live-sn, pero el valor predeterminado es un archivo cpio simple denominado live-sn.cpio.gz. Como en el caso anterior, en el momento del arranque los dispositivos conectados al sistema se recorren buscando una partición o un fichero llamado así. Una interrupción de la alimentación en tiempo de ejecución podría conducir a la pérdida de datos, por lo tanto, se puede usar la herramienta live-snapshot --refresh para sincronizar cambios importantes. Este tipo de persistencia es la menos agresiva con dispositivos tipo flash y el más rápido de todos los sistemas de persistencia, ya que no escribe continuamente en los medios de almacenamiento.

    Existe también una versión de la instantánea /home y su etiqueta es home-sn.*; que funciona igual que la instantánea principal, pero sólo se aplica a /home.

    Las instantáneas actualmente no pueden manejar el borrado de ficheros pero la persistencia total y el montaje automático sí pueden.

    10.3.4 SubText persistente

    Si un usuario necesita un almacenamiento persistente múltiple del mismo tipo para diferentes lugares o pruebas, tales como live-rw-nonwork y live-rw-work, el parámetro de arranque persistent-subtext usado junto con el parámetro de arranque persistent permitirá medios de almacenamiento persistentes múltiples pero únicos. Un ejemplo sería si un usuario desea utilizar una partición persistente etiquetada live-sn-subText usaría los parámetros de arranque de: persistent persistent-subtext=subText.

    10.3.5 Remasterización parcial

    La modificación en tiempo de ejecución de la tmpfs podría ser guardada usando una instantánea en vivo en un squashfs y añadirla a un cd remasterizando la iso en el caso de un cd-r o añadiendo una sesión a un cd/dvd(rw) multisesión; live-boot monta todo el sistema de ficheros /live en orden o con el parámetro del módulo de arranque.