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 a 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 Descarga de imágenes prefabricadas
4.3 Uso del servicio de creación de imágenes web
4.3.1 Uso y advertencias del servicio de creación de imágenes web
4.4 Primeros pasos: creación de una imagen ISO híbrida
4.5 Usar una imagen ISO híbrida
4.5.1 Grabar una imagen ISO en un medio físico.
4.5.2 Copiar una imagen ISO híbrida a un dispositivo USB
4.5.3 Usar el espacio libre en el dispositivo USB
4.5.4 Arrancar el medio en vivo
4.6 Usar una máquina virtual para pruebas
4.6.1 Probar una imagen ISO con QEMU
4.6.2 Probar una imagen ISO con virtualbox
4.7 Construir y utilizar una imágen HDD
4.8 Creación de una imagen de arranque en red
4.8.1 Servidor DHCP
4.8.2 Servidor TFTP
4.8.3 Servidor NFS
4.8.4 Cómo probar el arranque en red
4.8.5 Qemu

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 Gestionar cambios en la configuración
6.1.1 ¿Por qué utilizar scripts auto? ¿Qué hacen?
6.1.2 Usar scripts auto de ejemplo
6.2 Clonar una configuración publicada a través de Git

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 Utilizar metapaquetes
8.2.3 Listas de paquetes locales
8.2.4 Listas de paquetes locales para la etapa binary
8.2.5 Generar listas de paquetes
8.2.6 Utilización de condiciones dentro de las listas de paquetes
8.2.7 Tareas de Escritorio e Idioma
8.2.8 Versión y tipo de kernel
8.2.9 Kernels personalizados
8.3 Instalar paquetes modificados o de terceros
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.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 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. Contribuir al proyecto

13.1 Realizar cambios

14. Informes de errores.

14.1 Problemas conocidos
14.2 Reconstruir desde cero
14.3 Utilizar paquetes actualizados
14.4 Recopilar información
14.5 Aislar el fallo si es posible
14.6 Utilizar el paquete correcto sobre el que informar del error
14.6.1 En la preinstalación (bootstrap) en tiempo de creación.
14.6.2 Mientras se instalan paquetes en tiempo de creación.
14.6.3 En tiempo de arranque
14.6.4 En tiempo de ejecución
14.7 Hacer la investigación
14.8 Dónde informar de los fallos

15. Estilo de código

15.1 Compatibilidad
15.2 Sangrado
15.3 Ajuste de líneas
15.4 Variables
15.5 Miscelánea

16. Procedimientos

16.1 Principales lanzamientos
16.2 Nuevas versiones
16.2.1 Última actualización de una versión Debian
16.2.2 Plantilla para anunciar nuevas versiones.

17. Repositorios Git

17.1 Manejo de múltiples repositorios

Ejemplos

18. Ejemplos

18.1 Uso de los ejemplos
18.2 Tutorial 1: Una imagen predeterminada
18.3 Tutorial 2: Una utilidad de navegador web
18.4 Tutorial 3: Una imagen personalizada
18.4.1 Primera revisión
18.4.2 Segunda revisión
18.5 Un cliente VNC kiosk
18.6 Una imagen básica para un pendrive USB de 128MB
18.7 Un escritorio GNOME con variante local e instalador

Apéndice

18.8 Guidelines for authors
18.8.1 Linguistic features
18.8.2 Procedures
18.9 Guidelines for translators
18.9.1 Translation hints

Manual Debian Live

Usuario

4. Conceptos básicos

Este capítulo contiene una breve descripción del proceso de creación de las imágenes en vivo y las instrucciones para el uso de los tres tipos de imágenes más utilizadas. El tipo de imagen más versátil, iso-hybrid, se puede utilizar en una máquina virtual, en medios ópticos u otros dispositivos de almacenamiento USB. En ciertos casos especiales, como se explica más adelante, las imágenes hdd, pueden ser las más adecuadas. El capítulo termina con instrucciones para crear y utilizar una imagen de tipo netboot, que es un poco más complicado debido a la configuración necesaria en el servidor. Es un tema ligeramente avanzado para cualquier persona que no esté familiarizada con el arranque en red, pero se incluye aquí porque una vez que se realiza toda la configuración, es una forma muy conveniente para probar y desplegar imágenes de arranque en red local sin la molestia de tratar con los dispositivos de almacenamiento de la imagen.

A lo largo de todo el capítulo se hace a menudo referencia al nombre de las imágenes producidas por defecto por live-build. Si se descarga una imagen ya creada el nombre puede variar.

4.1 ¿Qué es un sistema en vivo?

Por lo general, un sistema en vivo se refiere a un sistema operativo que arranca en un equipo desde un medio extraíble, como un CD-ROM, dispositivo USB, o desde una red, listo para usar sin ningún tipo de instalación en la unidad de costumbre, con configuración automática en tiempo de ejecución (Ver Términos).

Debian Live, es un sistema Debian GNU/Linux, creado para una de las arquitecturas soportadas (actualmente amd64 y i386). Se compone de las siguientes partes:

  • Imágen del kernel de Linux, normalmente llamada vmlinuz*
  • Imagen del Disco RAM inicial (initrd): Un Disco RAM configurado para el arranque de Linux, que incluya los módulos posiblemente necesarios para montar la imagen del sistema y algunos scripts para ponerlo en marcha.
  • Imagen del sistema: La imagen del sistema de ficheros raíz. Por lo general, se utiliza un sistema de ficheros comprimido SquashFS para reducir al mínimo el tamaño de la imagen de Debian Live. Hay que tener en cuenta que es de sólo lectura. Por lo tanto, durante el arranque del sistema Debian Live se utiliza un disco RAM y un mecanismo de «unión» que permite escribir ficheros en el sistema en funcionamiento. Sin embargo, todas las modificaciones se perderán al apagar el equipo a menos que se use de modo opcional la persistencia (ver Persistencia).
  • Gestor de arranque: Una pequeña pieza de código diseñada para arrancar desde el medio de almacenamiento escogido, posiblemente mostrando un menú o un indicador de arranque para permitir la selección de opciones/configuración. Carga el kernel de Linux y su initrd para funcionar con un sistema de ficheros asociado. Se pueden usar soluciones diferentes, dependiendo del medio de almacenamiento de destino y el formato del sistema de ficheros que contenga los componentes mencionados anteriormente: isolinux para arrancar desde un CD o DVD en formato ISO9660, syslinux para arrancar desde el disco duro o unidad USB desde una partición VFAT, extlinux para formatos ext2/3/4 y particiones btrfs, pxelinux para arranque de red PXE, GRUB para particiones ext2/3/4 , etc.
  • Se puede utilizar live-build para crear la imagen del sistema a partir de ciertas especificaciones, incluir un kernel de Linux, su initrd y un gestor de arranque para ponerlos en funcionamiento, todo ello en un formato que depende del medio de almacenamiento elegido (imagen ISO9660, imagen de disco, etc.)

    4.2 Descarga de imágenes prefabricadas

    Si bien el objetivo de este manual es el desarrollo y la construcción de imágenes en vivo propias, puede que simplemente se desee probar una de nuestras imágenes prefabricadas, ya sea como una iniciación a su uso o como paso previo a la construcción de imágenes personalizadas. Estas imágenes están construidas utilizando nuestro repositorio git live-images y las versiones estables oficiales se publican en ‹http://www.debian.org/CD/live/›. Además, las versiones antiguas y las futuras, así como las imágenes no oficiales que contienen firmware y drivers no libres están disponibles en ‹http://live.debian.net/cdimage/release/›.

    4.3 Uso del servicio de creación de imágenes web

    Como un servicio a la comunidad, se ofrece una interfaz web de construcción de imágenes en vivo en ‹http://live-build.debian.net/›. Este sitio se mantiene en base al mejor esfuerzo. Es decir, aunque nos esforzamos por mantenerlo al día y de que esté operativo en todo momento, así como de emitir anuncios de interrupciones importantes en el servicio, no podemos garantizar un 100% de disponibilidad o una creación de imágenes rápida, y el servicio de vez en cuando puede tener problemas que tarden algún tiempo en resolverse. Si se tiene problemas o preguntas acerca de este servicio, ponerse en contacto con nosotros, proporcionando el enlace a la página dónde se recoge la información pertinente a la imagen.

    4.3.1 Uso y advertencias del servicio de creación de imágenes web

    La interfaz web actualmente no puede prevenir el uso de combinaciones de opciones no válidas, y en particular, cuando el cambio de una opción que normalmente (es decir, utilizando live-build directamente) cambiaría los valores predeterminados de otras opciones que figuran en el formulario web, el constructor web no cambia estos valores predeterminados. En particular, si se cambia --architectures del valor por defecto i386 a amd64, se debe cambiar la opción correspondiente --linux-flavours del valor por defecto 486 to amd64. Ver la página de manual de lb_config para para más detalles sobre la versión de live-build instalada en el constructor web. El número de versión de live-build aparece en la parte inferior de la página web del servicio de creación de imágenes.

    El tiempo de creación de la imagen mostrado en la web es sólo una estimación aproximada y puede no reflejar con exactitud la duración que la construcción de la imagen realmente necesita. Tampoco se actualiza esta estimación una vez mostrada. Hay que tener un poco de paciencia. No volver a recargar la página, ya que esto puede volver a lanzar una nueva creación de otra imagen con los mismos parámetros. Ponerse en contacto con nosotros si no se recibe la notificación de que la imagen está terminada una vez que se esté seguro de que se ha esperado lo suficiente y verificado que la notificación por correo electrónico no ha ido a parar a la bandeja de spam.

    El servicio web está limitado en el tipo de imágenes que se pueden construir. Esto lo hace simple y a la vez eficiente de usar y mantener. Si se desea realizar personalizaciones que no se contemplan en la interfaz web, en el resto de este manual se explica cómo crear imágenes propias con live-build.

    4.4 Primeros pasos: creación de una imagen ISO híbrida

    Independientemente del tipo de imagen, cada vez se tendrá que realizar los mismos pasos básicos para construir una imagen. Como primer ejemplo, crear un directorio de trabajo, cambiar a ese directorio y ejecutar la siguiente secuencia de comandos live-build para crear una imagen ISO híbrida básica que contiene sólo el sistema por defecto de Debian sin X.org. Es adecuada para grabarla en un CD o DVD y también para copiarla en un dispositivo USB.

    El nombre del directorio de trabajo es indiferente, pero si se da un vistazo a los ejemplos utilizados en live-manual, es una buena idea utilizar un nombre que ayude a identificar la imagen con la que está trabajando en cada directorio, especialmente si se está trabajando o experimentando con distintos tipos de imágenes. En este caso, vamos a construir un sistema utilizando los valores por defecto, así que lo vamos a llamar, por ejemplo, live-default.

    $ mkdir live-default && cd live-default

    Entonces, se ejecuta el comando lb config. Esto creará una jerarquía «config/» en el directorio actual que será usada por otros comandos:

    $ lb config

    Al no pasar ningún parámetro a lb config, se indica que se quiere utilizar todas las opciones por defecto. Ver El comando lb config para más detalles.

    Ahora que existe un jerarquía «config/», se puede crear la imagen con el comando lb build:

    # lb build

    Este proceso puede llevar un tiempo, dependiendo de la velocidad del ordenador y de la conexión de red. Cuando haya terminado, debería haber un fichero binary.hybrid.iso listo para ser usado en el directorio actual.

    4.5 Usar una imagen ISO híbrida

    Después de construir o descargar una imagen ISO híbrida, las cuales se pueden obtener en ‹http://www.debian.org/CD/live/›, el siguiente paso habitual es preparar el medio de almacenamiento, ya sea medios ópticos CD-R(W) o DVD-R(W) o llaves USB.

    4.5.1 Grabar una imagen ISO en un medio físico.

    Grabar una imagen ISO es fácil. Simplemente instalar xorriso y usarlo desde el intérprete de comandos para grabar la imagen. Por ejemplo:

    # apt-get install xorriso

    $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed binary.hybrid.iso

    4.5.2 Copiar una imagen ISO híbrida a un dispositivo USB

    Las imágenes ISO preparadas con xorriso, pueden sencillamente copiarse a una llave USB con dd o con un programa equivalente. Insertar una llave USB con un tamaño suficiente para la imagen y determinar qué dispositivo es, al cual nos referiremos de ahora en adelante como ${USBSTICK}. Este nombre de «dispositivo» se refiere a la llave entera como por ejemplo /dev/sdb y ¡No a una partición como /dev/sdb1! Se puede encontrar el nombre del dispositivo correcto mirando la salida de dmesg después de conectar la llave, o mejor aún ejecutando ls -l /dev/disk/by-id.

    Cuando se esté seguro de tener el nombre del dispositivo correcto, usar el comando dd para copiar la imagen a la llave. ¡Esto borrará de forma definitiva cualquier contenido previo en la llave!

    $ dd if=binary.hybrid.iso of=${USBSTICK}

    4.5.3 Usar el espacio libre en el dispositivo USB

    Si se desea usar el espacio libre después de haber instalado la imagen binary.hybrid.iso en una llave USB, se puede usar un programa de particionado como gparted o parted para crear una partición nueva en el dispositivo. La primera partición será usada por el sistema Debian en vivo.

    # gparted ${USBSTICK}

    Después de crear la partición, dónde ${PARTITION} es el nombre de la partición, por ejemplo /dev/sdb2 se tiene que crear un sistema de ficheros en él. Una opción posible sería ext4.

    # mkfs.ext4 ${PARTITION}

    Nota: Si se desea usar el espacio extra con Windows, segun parece, ese sistema operativo no puede acceder normalmente a otra partición más que a la primera. Se han comentado algunas soluciones a este problema en nuestra lista de correo pero según parece no hay una solución fácil.

    Recordar: Cada vez que se instale una nueva binary.hybrid.iso en el dispositivo, todos los datos del dispositivo se perderán debido a que la tabla de particiones se sobrescribe con el contenido de la imagen, así pues, realizar primero una copia de seguridad de la partición para poder restaurarla trás actualizar la imagen en vivo.

    4.5.4 Arrancar el medio en vivo

    La primera vez que se arranque desde el medio de almacenamiento en vivo, ya sea CD, DVD, llave USB, o de arranque en red PXE, primero puede ser necesario algún tipo de configuración en la BIOS de la máquina. Dado que las BIOS varían mucho en sus características y combinaciones de teclas, no se puede entrar en el tema en profundidad aquí. Algunas BIOS proporcionan una tecla para abrir un menú de dispositivos de arranque que es la manera más fácil de hacerlo si se encuentra disponible en el sistema. De lo contrario, se tiene que entrar en el menú de configuración de la BIOS y cambiar el orden de arranque y colocar el dispositivo de arranque del sistema en vivo antes que el dispositivo de arranque habitual.

    Una vez que se haya arrancado desde el medio de almacenamiento, se accede a un menú de arranque. Si se pulsa la tecla «enter», el sistema arrancará usando el modo por defecto Live y las opciones predeterminadas. Para obtener más información acerca de las opciones de arranque, ver la opción «help» del menú y también las páginas del manual de live-boot y live-config que se encuentran en el sistema en vivo.

    Suponiendo que se ha seleccionado Live y arrancado una imagen en vivo por defecto con escritorio gráfico, después de que los mensajes de arranque hayan pasado, se habrá iniciado automáticamente una sesión como usuario user y se verá el escritorio preparado para ser usado. Si se ha arrancado una imagen sólo de consola como por ejemplo las imágenes prefabricadas, standard o rescue se habrá iniciado automáticamente una sesión como usuario user y se verá el cursor del intérprete de comandos preparado para ser usado.

    4.6 Usar una máquina virtual para pruebas

    Ejecutar las imágenes en vivo en una máquina virtual (VM) puede ser un gran ahorro de tiempo para su desarrollo. Esto no está exento de advertencias:

  • Para ejecutar una máquina virtual se requiere tener suficiente memoria RAM para el sistema operativo huésped y el anfitrión y se recomienda una CPU con soporte de hardware para la virtualización.
  • Existen algunas limitaciones inherentes a la ejecución en una máquina virtual, por ejemplo, rendimiento de video pobre o limitada gama de hardware emulado.
  • Cuando se desarrolla para un hardware específico, no hay sustituto mejor que el propio hardware.
  • A veces hay errores causados únicamente por la ejecución en una máquina virtual. En caso de duda, probar la imagen directamente en el hardware.
  • Siempre que se pueda trabajar dentro de estas limitaciones, mirar que software VM hay disponible y elegir uno que sea adecuado según las necesidades.

    4.6.1 Probar una imagen ISO con QEMU

    La máquina virtual más versátil en Debian es QEMU. Si el procesador tiene soporte de hardware para virtualización, utilizar el paquete qemu-kvm. En la descripción del paquete qemu-kvm se enumera brevemente la lista de requisitos.

    En primer lugar, instalar qemu-kvm si el procesador lo soporta. Si no es así, instalar qemu, en cuyo caso el nombre del programa será qemu en vez de kvm en los siguientes ejemplos. El paquete qemu-utils también es útil para la creación de imágenes virtuales de disco con qemu-img.

    # apt-get install qemu-kvm qemu-utils

    Arrancar una imagen ISO es sencillo:

    $ kvm -cdrom binary.hybrid.iso

    Consultar las páginas del manual para más detalles.

    4.6.2 Probar una imagen ISO con virtualbox

    Para probar una imagen ISO con virtualbox:

    # apt-get install virtualbox virtualbox-qt virtualbox-dkms

    $ virtualbox

    Crear una nueva máquina virtual, cambiar la configuración de almacenamiento para utilizar binary.hybrid.iso como dispositivo CD/DVD y arrancar la máquina.

    Nota: Para probar los sistemas en vivo con soporte X.org en virtualbox, se puede incluir el paquete del driver de VirtualBox X.org, virtualbox-guest-dkms/ y /{virtualbox-guest-x11, en la configuración de live-build. De lo contrario, la resolución se limita a 800x600.

    $ echo "virtualbox-guest-dkms virtualbox-guest-x11" >> config/package-lists/my.list.chroot

    Para que el paquete dkms funcione, hace falta tener instalados también los kernel-headers para la variante del kernel utilizado. En lugar de enumerar manualmente el paquete linux-headers correspondiente en la lista de paquetes creados anteriormente, live-build puede seleccionarlo automáticamente.

      $ lb config --linux-packages "linux-image linux-header"

    4.7 Construir y utilizar una imágen HDD

    Crear una imagen HDD es similar a una de tipo ISO híbrida en todos los aspectos, con la diferencia de que hay que especificar -b hdd y de que el nombre de la imagen final es binary.img que no se puede copiar en medios ópticos. Es adecuada para el arranque desde dispositivos USB, discos duros USB y otros sistemas de almacenamiento portátil. Normalmente, se puede utilizar para este propósito una imagen ISO híbrida, pero es posible que la BIOS no maneje adecuadamente las imágenes híbridas, entonces es mejor utilizar una imagen hdd.

    Nota: si se ha creado una imagen ISO híbrida con el ejemplo anterior, se tendrá que limpiar el directorio de trabajo con el comando lb clean (ver El comando lb clean):

    # lb clean --binary

    Ejecutar el comando lb config como antes pero esta vez especificando el tipo de imagen HDD:

    $ lb config -b hdd

    Crear ahora la imagen con el comando lb build:

    # lb build

    Cuando termine el proceso de creación, debe haber un fichero llamado binary.img en el directorio actual .

    La imagen binaria generada contiene una partición VFAT y el gestor de arranque syslinux, lista para ser copiada directamente en un dispositivo USB. De nuevo, dado que utilizar una imagen HDD es igual a usar una imagen ISO híbrida en un USB, seguir las instrucciones de Usar una imagen ISO híbrida con la diferencia de usar el nombre binary.img en lugar de binary.hybrid.iso.

    Del mismo modo, para probar una imagen HDD con Qemu, instalar qemu como se describe más arriba en Probar una imágen ISO con QEMU. A continuación, ejecutar kvm o qemu, según qué versión necesita el sistema anfitrión y especificando binary.img como primer disco duro.

    $ kvm -hda binary.img

    4.8 Creación de una imagen de arranque en red

    La siguiente secuencia de comandos creará una imagen de arranque en red básica que contendrá el sistema por defecto de Debian sin X.org. Se puede usar para el arranque en red.

    Nota: si se ha seguido algúno de los ejemplos anteriores, se tendrá que limpiar el directorio de trabajo con el comando lb clean:

    # lb clean

    En este caso concreto, un lb clean --binary no sería suficiente para eliminar las etapas necesarias. La razón de esto es que en las configuraciones de arranque en red, se debe utilizar una configuración initramfs diferente que live-build ejecuta automáticamente al crear imágenes netboot. Ya que la creación del initramfs pertenece a la etapa chroot, realizar el cambio a netboot en un directorio de construcción ya existente significa reconstruir la etapa chroot también. Por lo tanto, se tiene que ejecutar un lb clean (que también eliminará la etapa chroot).

    Ejecutar el comando lb config de la siguiente manera para configurar la imagen de arranque en red:

    $ lb config -b netboot --net-root-path "/srv/debian-live" --net-root-server "192.168.0.1"

    A diferencia de las imágenes ISO y HDD, el sistema de arranque en red en sí mismo no envía la imagen del sistema de ficheros al cliente, por eso los ficheros se deben enviar mediante NFS. Con lb config se puede seleccionar diferentes sistemas de ficheros en red. Las opciones --net-root-path y --net-root-server especifican la ubicación y el servidor, respectivamente, del servidor NFS en el que se encuentra la imagen del sistema de ficheros en el arranque. Se debe asegurar que estos se ajustan a los valores adecuados para la red y el servidor deseados.

    Crear ahora la imagen con el comando lb build:

    # lb build

    En un arranque en red, el cliente ejecuta una pequeña pieza de software que generalmente se encuentra en la EPROM de la tarjeta Ethernet. Este programa envía una solicitud de DHCP para obtener una dirección IP e información sobre qué hacer a continuación. Por lo general, el siguiente paso es conseguir un gestor de arranque de alto nivel a través del protocolo TFTP. Este gestor podría ser PXELINUX, GRUB, o incluso arrancar directamente un sistema operativo como Linux.

    Por ejemplo, si se descomprime el archivo generado binary.netboot.tar en el directorio /srv/debian-live, se verá la imagen del sistema de ficheros en live/filesystem.squashfs y el kernel, initrd y el gestor de arranque pxelinux en tftpboot/debian-live/i386.

    Ahora se debe configurar tres servicios en el servidor para que arranque en red: el servidor DHCP, el servidor TFTP y el servidor NFS.

    4.8.1 Servidor DHCP

    Hay que configurar el servidor DHCP de red para asegurar que proporciona una dirección IP al cliente, y para anunciar la ubicación del gestor de arranque PXE.

    He aquí un ejemplo que puede servir de inspiración. Fue escrito para el servidor ISC DHCP isc-dhcp-server en su fichero de configuración /etc/dhcp/dhcpd.conf:

    # /etc/dhcp/dhcpd.conf - fichero de configuración para isc-dhcp-server

    ddns-update-style none;

    option domain-name "example.org";
    option domain-name-servers ns1.example.org, ns2.example.org;

    default-lease-time 600;
    max-lease-time 7200;

    log-facility local7;

    subnet 192.168.0.0 netmask 255.255.255.0 {
       range 192.168.0.1 192.168.0.254;
       next-server servername;
       filename "pxelinux.0";
    }

    4.8.2 Servidor TFTP

    Se encarga de suministrar el kernel y el Disco RAM inicial para el sistema.

    Se debe instalar el paquete tftpd-hpa. Este servidor podrá suministrar todos los ficheros contenidos de un directorio raíz, normalmente /srv/tftp. Para permitirle que pueda servir los ficheros de /srv/debian-live/tftpboot, se debe ejecutar el siguiente comando con privilegios de superusuario:

    # dpkg-reconfigure -plow tftpd-hpa

    y escribir el directorio del nuevo servidor tftp cuando sea requerido.

    4.8.3 Servidor NFS

    Una vez el equipo cliente ha descargado y arrancado el kernel de Linux junto a su initrd, intentará montar el sistema de archivos de la imagen en vivo a través de un servidor NFS.

    Se debe instalar el paquete nfs-kernel-server.

    Entonces, se debe hacer que la imagen del sistema de archivos esté disponible a través de NFS añadiendo una línea como la siguiente para /etc/exports:

    /srv/debian-live *(ro,async,no_root_squash,no_subtree_check)

    e informar al servidor NFS sobre esta nueva exportación con el siguiente comando:

    # exportfs -rv

    La configuración de estos tres servicios puede ser un poco difícil. Será necesario un poco de paciencia para conseguir que todos ellos funcionen juntos. Para obtener más información, ver el wiki de syslinux en ‹http://www.syslinux.org/wiki/index.php/PXELINUX› o la sección sobre TFTP Net Booting del Manual del Instalador de Debian en ‹http://d-i.alioth.debian.org/manual/en.i386/ch04s05.html› Esto puede ser útil, ya que sus procesos son muy similares.

    4.8.4 Cómo probar el arranque en red

    La creación de una imagen de arranque en red es sencilla con live-build, pero probar las imágenes en máquinas físicas puede ser un proceso mucho más lento.

    Para hacer nuestra vida más fácil, se puede utilizar la virtualización.

    4.8.5 Qemu

  • Instalar qemu, bridge-utils, sudo.
  • Se debe editar el fichero /etc/qemu-ifup:

    #!/bin/sh
    sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
    echo "Executing /etc/qemu-ifup"
    echo "Bringing up $1 for bridged mode..."
    sudo /sbin/ifconfig $1 0.0.0.0 promisc up
    echo "Adding $1 to br0..."
    sudo /usr/sbin/brctl addif br0 $1
    sleep 2

    Obtener o crear un grub-floppy-netboot.

    Lanzar qemu con "-net nic,vlan=0 -net tap,vlan=0,ifname=tun0"