PXEBootInstall

Prefacio

La instalación mediante arranque en red no debe confundirse con DebianNetworkInstall. En instalación de red, se inicia con un CD (o una memoria flash USB o similar) para instalar un sistema Linux mínimo antes de proceder a descargar más paquetes a través de la red.

La instalación mediante arranque por red también es diferente de usar la red para arrancar un sistema ya instalado: en cuyo caso, la máquina cliente sigue dependiendo de que el servidor esté en funcionamiento en cada arranque futuro. El proyecto Linux Terminal Server (LTSP) funciona así, por ejemplo.

Esta página describe la instalación de un nuevo sistema Debian sin CD, DVD ni USB. Al final del proceso de instalación, la nueva máquina puede ejecutarse sin el soporte del servidor. Durante la instalación, necesitará un servidor de arranque de red.

Como no hay servidores de arranque de confianza en la naturaleza, debe configurar los suyos propios. Esto es considerablemente más complicado que instalar Debian desde un CD (abreviatura para CD o USB o …). Normalmente, el arranque en red solo se usa si realmente no hay forma de arrancar desde un CD. Si el arranque desde CD falla, esto puede deberse a problemas del BIOS que evitarán igualmente el arranque por red (los intentos típicos de solución de problemas incluyen desactivar el arranque seguro, cambiar de UEFI al modo de arranque heredado, y similares).

En la Web, se pueden encontrar varios artículos que describen con más o menos detalle cómo configurar un servidor de arranque de red. Todos tienen la misma debilidad: debe ejecutar una larga lista de instrucciones sin recibir comentarios antes del final del procedimiento cuando intente arrancar. Si funciona, bien. Si no, la depuración se volverá muy, muy difícil. Por lo tanto, a continuación, desglosamos el procedimiento en pasos que se pueden depurar por separado.

http://www.debian.org/releases/stable/amd64/ch04s05 Guía de Instalación de Debian – 4.5. Preparación de archivos para el arranque de red TFTP

Nota: Si su sistema admite iPXE, utilice netboot.es probable que xyz sea mucho más simple.

Precondiciones

El equipo en el que desea instalar se llamará Cliente.

El equipo desde el que instale se llamará Servidor. Asumimos que el Servidor está ejecutando Debian.

Para ser específicos, asumimos que el Cliente y el Servidor son parte de una LAN con las siguientes direcciones IP:

Encontrará el valor de x más adelante.

Tenga en cuenta que muchos enrutadores también proporcionan un servidor DHCP: tendrá que desactivarlo, ya que solo un servidor DHCP puede ejecutarse en una LAN dada. A menos que pueda configurar el servidor DHCP de su enrutador para que cumpla con la configuración del servidor DHCP ISC a continuación, pero esto está fuera del alcance de este documento.

También es posible que el enrutador y el servidor sean la misma máquina, es decir, que su servidor Debian sea la puerta de enlace predeterminada para esta LAN. Esto funcionará bien.

Las siguientes instrucciones se han probado con Debian 8.2 (Jessie) en septiembre de 2015.

Activar arranque PXE

Configurar el menú de arranque del BIOS del Cliente para arrancar desde la red.

Reiniciar. En la mayoría de los sistemas, esto produce una salida que contiene la dirección MAC del Cliente. Luego, fallará con

 PXE-E53: no boot filename received.

Anote la dirección MAC; será útil para interpretar los mensajes de registro.

En muchos servidores, también es posible cambiar temporalmente al arranque PXE sin cambiar permanentemente la configuración del BIOS. Habrá algún tipo de pulsación de tecla para golpear durante la PUBLICACIÓN de la BIOS. En los servidores Dell, F12 hará el truco (o Esc y luego @ desde una consola serie o IPMI).

Configurar servidor DHCP

En el Servidor, necesitamos configurar un servidor DHCP.

La mejor práctica actual parece ser utilizar el paquete isc-dhcp-server, que proporciona un demonio dhcpd.

Su archivo de configuración es /etc / dhcp / dhcpd.conf. Modifique este archivo para que contenga aproximadamente lo siguiente; adapte las direcciones IP y MAC a sus necesidades locales:

Después de cada modificación de lo anterior, reinicie el servidor DHCP con

 # /etc/init.d/isc-dhcp-server restart

o con el equivalente de systemd

 # systemctl restart isc-dhcp-server

Compruebe que realmente se está ejecutando:

 # pgrep -lf dhcpd 32277 /usr/sbin/dhcpd -q

o

 # systemctl status isc-dhcp-server

que proporciona un poco más de información.

Antes de reiniciar el cliente, es posible que desee ejecutar

 # journalctl -fu isc-dhcp-server

que le muestra las últimas líneas del registro del servidor DHCP y, a continuación, actualiza la pantalla con cada nueva entrada de registro. (Si no desea «seguir» el registro, simplemente omita la «f»)

 PXE-E32: TFTP open timeout

y, al mismo tiempo, verá mensajes de registro en la pantalla del servidor que muestran las solicitudes y ofertas DHCP similares a la salida debajo del comando alternativo debajo

Si prefiere no usar systemd, o desea comparar la salida de registro tradicional con fines de diagnóstico, puede buscar /var/log/syslog, por ejemplo, con este comando

 # grep DHCP /var/log/syslog
  • donde debería ver algo como:

(Tenga en cuenta que las versiones anteriores de Debian usaban /var/log/daemon.log en lugar de syslog)

Si no aparece nada en el registro con ninguno de los comandos, compruebe los enlaces de red entre el Servidor y el Cliente. Tenga en cuenta que algunos conmutadores de red pueden imponer limitaciones severas al tráfico DHCP; para los de Cisco, use ‘portfast’ si es posible (consulte http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800b1500.shtml).

Configurar el servidor TFTP

A continuación, necesitamos configurar un servidor TFTP en el Servidor.

De nuevo, hay varios paquetes que proporcionan TFTP (FTP trivial, inseguro, para ser utilizado solo en LAN). Parece una buena práctica usar el paquete tftpd-hpa. En la instalación, se hacen algunas preguntas. La respuesta a estas preguntas va a un archivo de configuración, /etc/default / tftpd-hpa. No debería ser necesario modificar los siguientes contenidos predeterminados:

 TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"

Ignorar sitios web antiguos que le indican que inserte algo como ‘RUN_DAEMON=»yes»‘.

Después de cada modificación del archivo de configuración anterior, reinicie el servidor TFTP con

 # /etc/init.d/tftpd-hpa restart

o

 # systemctl restart tftpd-hpa

En Jessie, el directorio /srv/tftp se creará automáticamente. Esto significa que los dos pasos siguientes no son necesarios si utiliza Jessie.

Inicialmente, en versiones anteriores a Jessie, el reinicio del servidor TFTP puede fallar con un mensaje como

 Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.

Por lo tanto, como root, cree el directorio /srv/tftp. Reinicie el demonio TFTP. Compruebe que se está ejecutando:

 # pgrep -lf tftpd 12555 /usr/sbin/in.tftpd

o

 # systemctl status tftpd-hpa

que de nuevo da unas pocas líneas del registro en lugar de solo el hecho de que la tarea está (no está) en ejecución.

Es útil probar su servidor TFTP con un cliente TFTP; simplemente puede usar el paquete tftp-hpa para este propósito:

 # cd /tmp # uname -a >/srv/tftp/test # tftp 192.168.0.2 tftp> get test tftp> quit # diff test /srv/tftp/test (nothing, they are identical)

También es útil ver qué entradas de registro obtiene cuando descarga un archivo que existe y cuando intenta descargar uno que no lo hace. Mientras usa tftp para probar su servidor tftpd, intente rastrear sus experimentos con formas antiguas y nuevas del comando log mientras usa su cliente TFTP para descargar archivos que sí existen, así como archivos que no existen.

El comando tradicional en Jessie

 # tail -f /var/log/syslog

(Observe de nuevo que las versiones anteriores de Debian usaban/var/log / daemon.log en lugar de syslog.)

En systemd

 # journalctl -fu tftpd-hpa

Lamentablemente, estos parecen dar resultados diferentes, a partir de enero de 2017. El comando systemd no muestra solicitudes de archivos para archivos que no existen.

Es muy útil saber lo que el cliente está pidiendo, ya que le ayuda a mover archivos a la ubicación esperada si comete errores más adelante. En la actualidad, probablemente valga la pena usar la forma tradicional de seguimiento de registros para TFTPD.

Reinicie el Cliente. Debería ver mensajes de error en la pantalla del cliente que comienzan con

 PXE-T01: File not found

, lo cual es bastante correcto ya que aún no proporcionamos ningún archivo. En la pantalla del servidor, verá exactamente lo que el cliente pidió.

Proporcionar la imagen de arranque

Descargar netboot / netboot.alquitrán.gz de una réplica Debian (ver http://www.debian.org/distrib/netinst#netboot).

Opcional: Para verificar la firma digital, escriba estos comandos:

Desempaquetar arranque de red.alquitrán.gz a / srv / tftp, que ahora debería contener

 debian-installer/ pxelinux.0@ pxelinux.cfg@ version.info

Puede ser necesario chmod – R a + r * para que todos los archivos de este directorio sean legibles para el demonio TFTP.

Es posible que también tenga que editar grub / grub.cfg para configurar su consola serie, si es necesario (reemplacé la sección sobre el terminal gráfico):

serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1terminal_input console serialterminal_output console serial

así como la consola serie para el instalador de debian añadiendo esto a la línea de comandos del núcleo:

console=ttyS1,115200n8r console=tty1

Reinicie el demonio TFTP, y de nuevo puede seguir las entradas de registro tal como aparecen

 # tail -f /var/log/syslog

a continuación, reinicie el Cliente. Debería acceder a la pantalla de instalación de Debian.

Si busca en / var/log / syslog, verá lo que ha sido descargado del servidor TFTP por el gestor de arranque PXE, y luego por SYSLINUX. También puede ver algunas respuestas » NAK » cuando SYSLINUX le pida archivos que no existen (intenta varias ubicaciones para algunos archivos importantes).

El cargador PXE (el firmware en el BIOS o el controlador de red del cliente) intenta cargar en este orden:

  • pxelinux.0 (o más exactamente, lo que le dijiste que descargara en el campo ‘nombre de archivo’ de la respuesta DHCP)

Luego SYSLINUX/PXELINUX intentará buscar su configuración en diferentes rutas, desde las más específicas hasta las menos:

  • pxelinux.cfg / GUID
  • pxelinux.cfg / MAC
  • pxelinux.cfg/default

Y si el menú de configuración depende de otros elementos de configuración, también se descargan. Debian al menos necesitará el ‘bootmenu’.archivo txt ‘ que es el menú principal.

De forma predeterminada, se llega a la pantalla gráfica del menú inicio de instalación de Debian. Pulse «enter» para iniciar la instalación. Tenga paciencia: puede pasar más de un minuto antes de que aparezca la siguiente pantalla («Seleccione un idioma»).

Forma alternativa de obtener la imagen de arranque

Si tiene un sistema Debian de la misma versión que desea instalar, puede instalar la imagen de arranque utilizando apt.

Ahora apunte el servidor tftp a /usr/lib/debian-installer/images/VERSION VERSION/ARCH ARCH / INTERFACE INTERFAZ donde INTERFACE=text para el instalador en modo texto o INTERFACE=gtk para el instalador gráfico. Una forma sencilla de lograrlo es convertir /srv / tftp en un enlace simbólico.

De otra manera: use Dnsmasq

dnsmasq es un reenviador de DNS y un servidor DHCP ligeros y fáciles de configurar con funcionalidad BOOTP/TFTP/PXE. Es decir, puede reemplazar isc-dhcp-server y tftpd-hpa por Dnsmasq.

A continuación se encuentra /etc/dnsmasq.conf proporciona la misma funcionalidad que el método de instalación y configuración de isc-dhcpd-server y tftpd-hpa descrito anteriormente.

Descargue el arranque de red.alquitrán.gz y extraerlo en /srv/tftp como la descripción anterior.

Problemas potenciales

Si el núcleo de la imagen de arranque de red no está sincronizado con los paquetes de módulos del núcleo, los módulos no se cargarán y la instalación fallará, los síntomas habituales son que los mensajes sobre «símbolos faltantes» aparecen en la consola ctrl-alt-f4.

Para solucionar esto, actualice el kernel e initrd en el servidor netboot.

Probablemente haya un problema de Debian BTS abierto para esto, pero no puedo encontrarlo ahora.

Véase También

  • http://www.debian.org/releases/stable/amd64/ch04s05 Guía de Instalación de Debian – 4.5. Preparación de archivos para el arranque de red TFTP

  • di-netboot-assistant automatiza la mayoría de los pasos descritos anteriormente: DebianInstaller/NetbootAssistant

  • El instalador de Lenny en netboot.alquitrán.gz NO admite la instalación mediante la consola serie de forma predeterminada ahora. Puede encontrar más información sobre este problema y un parche para habilitar el acceso a la consola en serie en 309223.

  • https://networkboot.org/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *