Red Hat Training

A Red Hat training course is available for RHEL 8

14.3. Configuração de um servidor TFTP para clientes baseados em UEFI

Use este procedimento para configurar um servidor TFTP e DHCP e iniciar o serviço TFTP no servidor PXE para sistemas AMD64, Intel 64 e ARM de 64 bits baseados em UEFI.

Importante
  • Todos os arquivos de configuração nesta seção são exemplos. Os detalhes de configuração variam e dependem da arquitetura e dos requisitos específicos.
  • A inicialização do Red Hat Enterprise Linux 8 UEFI PXE suporta um formato de arquivo em minúsculas para um arquivo de menu grub baseado em MAC. Por exemplo, o formato de arquivo de endereço MAC para o grub2 é grub.cfg-01-aa-bb-cc-dd-ee-ff

Procedimento

  1. Como raiz, instale os seguintes pacotes. Se você já tem um servidor DHCP configurado em sua rede, exclua os pacotes dhcp-server.

    # yum instalar tftp-server dhcp-server
  2. Permitir conexões de entrada para o tftp service no firewall:

    # firewall-cmd --add-service=tftp
    Nota
    • Este comando permite o acesso temporário até o próximo reinício do servidor. Para permitir o acesso permanente, adicione a opção --permanent ao comando.
    • Dependendo da localização do arquivo ISO de instalação, você pode ter que permitir conexões de entrada para HTTP ou outros serviços.
  3. Configure seu servidor DHCP para usar as imagens de inicialização empacotadas com shim como mostrado no arquivo /etc/dhcp/dhcpd.conf do exemplo a seguir. Observe que se você já tiver um servidor DHCP configurado, então execute esta etapa no 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. Acesse o arquivo BOOTX64.efi do pacote shim, e o arquivo grubx64.efi do pacote grub2-efi no arquivo de imagem ISO do DVD Binário onde my_local_directory é o nome do diretório que você cria:

    # montagem -t iso9660 /caminho_para_imagem/nome_da_imagem.iso /ponto_de_montagem -o loop,ro
    # cp -pr /mount_point/BaseOS/Packages/shim-version-architecture.rpm /my_local_directory
    # cp -pr /mount_point/BaseOS/Packages/grub2-efi-version-architecture.rpm /my_local_directory
    # umount /mount_point
  5. Extrair as embalagens:

    # rpm2cpio shim-version-architecture.rpm | cpio -dimv
    # rpm2cpio grub2-efi-version-architecture.rpm | cpio -dimv
  6. Copie as imagens de inicialização da EFI a partir de seu diretório de inicialização. Substitua ARCH por calço ou grub seguido da arquitetura, por exemplo, grubx64.

    # cp my_local_directory/boot/efi/efi/EFI/redhat/ARCH.efi /var/lib/tftpboot/uefi/
    # cp my_local_directory/boot/efi/EFI/redhat/ARCH.efi /var/lib/tftpboot/uefi
  7. Adicione um arquivo de configuração chamado grub.cfg ao diretório tftpboot/, como mostrado no exemplo a seguir:

    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
    • O programa de instalação não pode inicializar sem sua imagem em tempo de execução. Use a opção de inicialização inst.stage2 para especificar a localização da imagem. Alternativamente, você pode usar a opção inst.repo= para especificar a imagem, bem como a fonte de instalação.
    • O local da fonte de instalação utilizado com inst.repo deve conter um arquivo .treeinfo válido.
    • Quando você seleciona o DVD de instalação RHEL8 como fonte de instalação, o arquivo .treeinfo aponta para os repositórios BaseOS e AppStream. Você pode usar uma única opção inst.repo para carregar os dois repositórios.
  8. Criar um subdiretório para armazenar os arquivos de imagem de inicialização no diretório /var/lib/tftpboot/, e copiar os arquivos de imagem de inicialização para o diretório. Neste exemplo, o diretório é /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. No servidor DHCP, inicie e habilite o serviço dhcpd. Se você tiver configurado um servidor DHCP no localhost, então inicie e ative o serviço dhcpd no localhost.

    # systemctl start dhcpd
    # systemctl enable dhcpd
  10. Inicie e habilite o serviço tftp.socket:

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

    O servidor de inicialização PXE está agora pronto para atender os clientes PXE. Você pode iniciar o cliente, que é o sistema para o qual você está instalando o Red Hat Enterprise Linux, selecionar PXE Boot quando solicitado a especificar uma fonte boot, e iniciar a instalação da rede.

Recursos adicionais