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 Aplicar cambios
1.4.2 Traducción

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 sin modificación alguna de Debian «main»
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 Instalación de 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 HDD
4.6 Utilizar una imágen HDD
4.6.1 Probar una imágen 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 El paquete 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 Listas de paquetes
8.2.2 Listas de paquetes predefinidas
8.2.3 Listas de paquetes locales
8.2.4 Listas de paquetes locales para binary
8.2.5 Extensión de una lista de paquetes dada mediante «includes»
8.2.6 Utilización de condiciones dentro de las listas de paquetes
8.2.7 Tareas
8.2.8 Tareas de Escritorio e Idioma
8.3 Instalar paquetes de terceros o paquetes modificados
8.3.1 Método packages.chroot 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
10.3.1 El fichero live-persistence.conf
10.3.2 Utilizar varios medios persistentes

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 Última actualización de una versión Debian
15.3.2 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

Apéndice

17. Style guide

17.1 Guidelines for authors
17.1.1 Linguistic features
17.1.2 Procedures
17.2 Guidelines for translators
17.2.1 Translation hints

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 de 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 durante la etapa chroot, añadir el siguiente código en un fichero en el directorio config/preseed/.

$ lb config
$ echo user-setup passwd/user-default-groups string audio cdrom \
   dip floppy video plugdev netdev powerdev scanner bluetooth fuse \
   >> config/preseed/my.preseed.chroot

Además, es posible cambiar el usuario por defecto "user" y la contraseña por defecto "live". Si se desea cambiarlos por cualquier motivo, se puede conseguir de forma sencilla tal y como se explica a continuación:

Cambiar el nombre del usuario por defecto es tan sencillo como especificarlo en la configuración:

$ lb config --bootappend-live "username=live-user"

Una posible forma de cambiar la contraseña por defecto es usando un script gancho (hook) tal y como se describe en Scripts gancho en tiempo de arranque. Para conseguirlo se puede usar el script gancho «passwd» de /usr/share/doc/live-config/examples/hooks, ponerle un prefijo adecuado (p.ej. 2000-passwd) y añadirlo a config/includes.chroot/lib/live/config/

10.2 Personalización de las variantes locales e idioma

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

  • Generar las variantes locales
  • Establecer la distribución del teclado
  • 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"

    Se pueden especificar diversas variantes locales separándolas con comas.

    Este parámetro se puede utilizar en la línea de comandos del kernel, al igual que los parámetros de configuración del teclado indicados a continuación. Es posibe configurar una variante local con idioma_país (en cuyo caso se utiliza el tipo de codificación por omisión) o también con la expresión completa idioma_país.codificación. La lista de todas las variantes locales está en /usr/share/i18n/SUPPORTED.

    live-config se encarga de la configuración del teclado de la consola y del entorno gráfico X utilizando el paquete console-setup. Para configurarlos se puede utilizar los parámetros de arranque keyboard-layouts, keyboard-variant, keyboard-options y keyboard-model a través de la opción --bootappend-live. Se puede encontrar una lista de opciones válidas para estos parámetros en /usr/share/X11/xkb/rules/base.lst. Para hallar la distribución del teclado y la variante que corresponde a un idioma se puede buscar el nombre en inglés de la nación donde se habla el idioma, por ejemplo:

    $ egrep -i '(^!|german.*switzerland)' /usr/share/X11/xkb/rules/base.lst
    ! model
    ! layout
       ch              German (Switzerland)
    ! variant
       legacy          ch: German (Switzerland, legacy)
       de_nodeadkeys   ch: German (Switzerland, eliminate dead keys)
       de_sundeadkeys  ch: German (Switzerland, Sun dead keys)
       de_mac          ch: German (Switzerland, Macintosh)
    ! option

    Cada variante muestra una descripción de la disposición que aplica.

    Normalmente, sólo es necesario configurar la disposición del teclado. Por ejemplo, para obtener los ficheros de la variante local de la disposición del teclado alemán y suizo-alemán en X utilizar:

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

    Sin enbargo, para casos de uso muy específicos, se puede incluir otros parámetros. Por ejemplo, para configurar un sistema Francés con una disposición French-Dvorak (también llamado Bepo) en un teclado USB TypeMatrix EZ-Reach 2030, utilizar:

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

    Para cada una de las variables de configuración del teclado keyboard-* se puede especificar varios valores separados por comas. A excepción de keyboard-model, que sólo acepta un valor. En la página de manual keyboard(5) se explican los detalles y algunos ejemplos de cómo utilizar las variables XKBMODEL, XKBLAYOUT, XKBVARIANT y XKBOPTIONS. Si se especifican diferentes valores en keyboard-variant estos se corresponderan uno a uno con los valores keyboard-layouts (ver setxkbmap(1) opción -variant). Se admiten valores vacíos; por ejemplo para definir dos distribuciones de teclado, la que se usa por omisión US QWERTY y otra US Dvorak, utilizar:

    $ lb config --bootappend-live \
         "keyboard-layouts=us,us keyboard-variant=,dvorak"

    10.3 Persistencia

    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» es un nombre común que se da 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 medio de almacenamiento local, un recurso compartido en 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: persistence.

    Si se usa el parámetro de arranque persistence (y no se usa la opción nopersistence), se busca en los medios de almacenamiento locales (p.ej. discos duros, llaves USB) volúmenes con persistencia durante el arranque. Es posible restringir qué tipos de volúmenes persistentes se pueden usar especificando ciertos parámetros de arranque descritos en la página del manual de live-boot(7). Un volumen persistente es cualquiera de los siguientes:

  • una partición, identificada por su nombre GPT.
  • Un sistema de ficheros, identificado por su etiqueta de sistema de ficheros.
  • una fichero imagen situado en la raíz de cualquier sistema de ficheros que pueda ser leido (incluso una partición NTFS de otro sistema operativo), identificado por su nombre de fichero. En este caso el nombre del fichero debe contener el nombre el sistema de ficheros como extensión, p.ej. "persistence.ext4".
  • La etiqueta del volumen para las capas de persistencia debe ser persistence. Y para poder personalizar de forma completa la persistencia del volumen tiene que haber un fichero llamado live-persistence.conf. Ver El fichero live-persistence.conf

    He aquí algunos ejemplos de cómo preparar un volumen para ser usado para la persistencia. Puede ser, por ejemplo, una partición en un disco duro o en una llave usb creada con, p.ej.

    # mkfs.ext4 -L persistence /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 persistence /dev/sdb1 # for ext2,3,4 filesystems

    Un ejemplo de cómo crear un fichero imagen basado en ext4 usado para la persistencia:

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

    A continuación, copiar el fichero persistence en la raíz de una partición grabable.

    10.3.1 El fichero live-persistence.conf

    Un volumen con la etiqueta persistence puede ser configurado para crear arbitrariamente directorios persistentes. El fichero live-persistence.conf, situado en el sistema de ficheros raíz del volumen, controla que directorios hace persistentes y también de que manera.

    En la página de manual de live-persistence.conf(5) se explica en detalle cómo se configura el montaje de las capas, pero un sencillo ejemplo es suficiente para la mayoría de los casos. Supongamos que queremos crear nuestro directorio home y APT cache persistentes en un sistema de ficheros ext4 en la partición /dev/sdb1:

    # mkfs.ext4 -L persistence /dev/sdb1
    # mount -t ext4 /dev/sdb1 /mnt
    # echo "/home" >> /mnt/live-persistence.conf
    # echo "/var/cache/apt" >> /mnt/live-persistence.conf

    Entonces reiniciamos. Durante el primer arranque los contenidos de /home y /var/cache/apt se copiarán en el volumen persistente y a partir de ese momento todos los cambios en esos directorios se guardarán allí. Tener en cuenta que las rutas listadas en el fichero live-persistence.conf no pueden contener espacios en blanco ni los componentes especiales . y ... Además, ni /live (o ninguno de sus sub-directorios) ni / pueden hacerse persistentes montándolos de forma personalizada.

    Se puede usar diferentes volúmenes de capas personalizados al mismo tiempo (con sus propios ficheros live-persistence.conf) pero si varios volúmenes hacen que un mismo directorio sea persistente, sólo uno de ellos será usado. Si dos unidades montadas están "anidadas" (es decir, una es un sub-directorio de la otra) el directorio superior será montado antes que el inferior de este modo no quedará uno escondido por el otro. La personalización de los montajes anidadados es problemática si están listados en el mismo fichero live-persistence.conf. Consultar la página de manual de live-persistence.conf(5) para ver como manejar ese caso si realmente es necesario. (aclaración: normalmente no lo es).

    10.3.2 Utilizar varios medios persistentes

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