Red Hat Training

A Red Hat training course is available for RHEL 8

14.3. Configuración de un servidor TFTP para clientes basados en UEFI

Utilice este procedimiento para configurar un servidor TFTP y un servidor DHCP e iniciar el servicio TFTP en el servidor PXE para sistemas AMD64, Intel 64 y ARM de 64 bits basados en UEFI.

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.
  • El arranque UEFI PXE de Red Hat Enterprise Linux 8 soporta un formato de archivo en minúsculas para un archivo de menú grub basado en MAC. Por ejemplo, el formato de archivo de dirección MAC para grub2 es grub.cfg-01-aa-bb-cc-dd-ee-ff

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 shim 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 "BOOTX64.efi";
    	  } else {
    	    filename "pxelinux/pxelinux.0";
    		}
      }
    }
  4. Acceda al archivo BOOTX64.efi del paquete shim, y al archivo grubx64.efi del paquete grub2-efi 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/shim-version-architecture.rpm /mi_directorio_local
    # cp -pr /punto_de_montaje/BaseOS/Packages/grub2-efi-version-architecture.rpm /mi_directorio_local
    # umount /mount_point
  5. Extrae los paquetes:

    # rpm2cpio shim-version-architecture.rpm | cpio -dimv
    # rpm2cpio grub2-efi-version-architecture.rpm | cpio -dimv
  6. Copie las imágenes de arranque EFI de su directorio de arranque. Sustituye ARCH por shim o grub seguido de la arquitectura, por ejemplo, grubx64.

    # cp mi_directorio_local/boot/efi/EFI/redhat/ARCH.efi /var/lib/tftpboot/uefi/
    # cp mi_directorio_local/boot/efi/EFI/redhat/ARCH.efi /var/lib/tftpboot/uefi
  7. Añada un archivo de configuración llamado grub.cfg al directorio tftpboot/ como se muestra en el siguiente ejemplo:

    set timeout=60
    menuentry 'RHEL 8' {
      linuxefi images/RHEL-8.1/vmlinuz ip=dhcp inst.repo=http://10.32.5.1/RHEL-8.1/x86_64/iso-contents-root/
      initrdefi images/RHEL-8.1/initrd.img
    }
    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.
  8. 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/images/RHEL-8.1/:

    # mkdir -p /var/lib/tftpboot/images/RHEL-8.1/
    # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-8.1/
  9. 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
  10. 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.

Recursos adicionales

  • Para obtener más información sobre shim, consulte la documentación de la versión anterior: Uso del programa Shim.