Red Hat Training

A Red Hat training course is available for RHEL 8

14.2. Configuración de un servidor TFTP para clientes basados en BIOS

Utilice este procedimiento para configurar un servidor TFTP y un servidor DHCP e iniciar el servicio TFTP en el servidor PXE para sistemas AMD e Intel de 64 bits basados en BIOS.

Importante

Todos los archivos de configuración de esta sección son ejemplos. Los detalles de la configuración varían y dependen de la arquitectura y los requisitos específicos.

Procedimiento

  1. Como root, instale los siguientes paquetes. Si ya tiene un servidor DHCP configurado en su red, excluya los paquetes dhcp-server:

    # yum install tftp-server dhcp-server
  2. Permitir las conexiones entrantes a la tftp service en el cortafuegos:

    # firewall-cmd --add-service=tftp
    Nota
    • Este comando permite el acceso temporal hasta el próximo reinicio del servidor. Para habilitar el acceso permanente, añada la opción --permanent al comando.
    • Dependiendo de la ubicación del archivo ISO de instalación, es posible que tenga que permitir las conexiones entrantes para HTTP u otros servicios.
  3. Configure su servidor DHCP para utilizar las imágenes de arranque empaquetadas con SYSLINUX como se muestra en el siguiente archivo de ejemplo /etc/dhcp/dhcpd.conf. Tenga en cuenta que si ya tiene un servidor DHCP configurado, entonces realice este paso en el servidor DHCP.

    option space pxelinux;
    option pxelinux.magic code 208 = string;
    option pxelinux.configfile code 209 = text;
    option pxelinux.pathprefix code 210 = text;
    option pxelinux.reboottime code 211 = unsigned integer 32;
    option architecture-type code 93 = unsigned integer 16;
    
    subnet 10.0.0.0 netmask 255.255.255.0 {
    	option routers 10.0.0.254;
    	range 10.0.0.2 10.0.0.253;
    
    	class "pxeclients" {
    	  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    	  next-server 10.0.0.1;
    
    	  if option architecture-type = 00:07 {
    	    filename "uefi/shim.efi";
    	    } else {
    	    filename "pxelinux/pxelinux.0";
    	  }
    	}
    }
  4. Acceda al archivo pxelinux.0 desde el paquete SYSLINUX en el archivo de imagen ISO del DVD Binario, donde my_local_directory es el nombre del directorio que se crea:

    # mount -t iso9660 /ruta_de_la_imagen/nombre_de_la_imagen.iso /punto_de_montaje -o loop,ro
    # cp -pr /punto_de_montaje/BaseOS/Packages/syslinux-tftpboot-version-architecture.rpm /mi_directorio_local
    # umount /mount_point
  5. Extrae el paquete:

    # rpm2cpio syslinux-tftpboot-version-architecture.rpm | cpio -dimv
  6. Cree un directorio pxelinux/ en tftpboot/ y copie todos los archivos del directorio en el directorio pxelinux/:

    # mkdir /var/lib/tftpboot/pxelinux
    # cp mi_directorio_local/tftpboot/* /var/lib/tftpboot/pxelinux
  7. Cree el directorio pxelinux.cfg/ en el directorio pxelinux/:

    # mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
  8. Añada un archivo de configuración por defecto al directorio pxelinux.cfg/ como se muestra en el siguiente ejemplo:

    default vesamenu.c32
    prompt 1
    timeout 600
    
    display boot.msg
    
    label linux
      menu label ^Install system
      menu default
      kernel images/RHEL-8.1/vmlinuz
      append initrd=images/RHEL-8.1/initrd.img ip=dhcp inst.repo=http://10.32.5.1/RHEL-8.1/x86_64/iso-contents-root/
    label vesa
      menu label Install system with ^basic video driver
      kernel images/RHEL-8.1/vmlinuz
      append initrd=images/RHEL-8.1/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/RHEL-8.1/x86_64/iso-contents-root/
    label rescue
      menu label ^Rescue installed system
      kernel images/RHEL-8.1/vmlinuz
      append initrd=images/RHEL-8.1/initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    Nota
    • El programa de instalación no puede arrancar sin su imagen de ejecución. Utilice la opción de arranque inst.stage2 para especificar la ubicación de la imagen. Alternativamente, puede utilizar la opción inst.repo= para especificar la imagen así como el origen de la instalación.
    • La ubicación de origen de la instalación utilizada con inst.repo debe contener un archivo .treeinfo válido.
    • Cuando se selecciona el DVD de instalación de RHEL8 como fuente de instalación, el archivo .treeinfo apunta a los repositorios de BaseOS y AppStream. Puede utilizar una única opción inst.repo para cargar ambos repositorios.
  9. Cree un subdirectorio para almacenar los archivos de imagen de arranque en el directorio /var/lib/tftpboot/, y copie los archivos de imagen de arranque en el directorio. En este ejemplo, el directorio es /var/lib/tftpboot/pxelinux/images/RHEL-8.1/:

    # mkdir -p /var/lib/tftpboot/pxelinux/images/RHEL-8.1/
    # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/images/RHEL-8.1/
  10. En el servidor DHCP, inicie y habilite el servicio dhcpd. Si ha configurado un servidor DHCP en el host local, inicie y habilite el servicio dhcpd en el host local.

    # systemctl start dhcpd
    # systemctl enable dhcpd
  11. Inicie y active el servicio tftp.socket:

    # systemctl start tftp.socket
    # systemctl enable tftp.socket

    El servidor de arranque PXE está ahora listo para servir a los clientes PXE. Puede iniciar el cliente, que es el sistema en el que está instalando Red Hat Enterprise Linux, seleccione PXE Boot cuando se le pida que especifique una fuente de arranque y comience la instalación en red.