Menu Close
Settings Close

Language and Page Formatting Options

14.3. 为基于 UEFI 的客户端配置 TFTP 服务器

使用这个流程配置 TFTP 服务器和 DHCP 服务器,并为基于 UEFI 的 AMD64、Intel 64 和 64 位 ARM 系统的 PXE 服务器启动 TFTP 服务。

重要
  • 本节中的所有配置文件都是示例。配置详情会根据架构和具体要求的不同而有所不同。
  • Red Hat Enterprise Linux 8 UEFI PXE 引导支持基于 MAC 的 grub 菜单文件的小写文件格式。例如,grub2 的 MAC 地址文件格式为 grub.cfg-01-aa-bb-cc-dd-ee-ff

步骤

  1. 作为 root 用户安装以下软件包。如果您已在网络中配置了 DHCP 服务器,请排除 dhcp-server 软件包。

    # yum install tftp-server dhcp-server
  2. 允许到防火墙中的 tftp 服务的传入连接:

    # firewall-cmd --add-service=tftp
    注意
    • 这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加 --permanent 选项。
    • 根据安装 ISO 文件的位置,您可能需要允许 HTTP 或者其他服务的进入连接。
  3. 将您的 DHCP 服务器配置为使用 shim 打包的引导镜像,如下面的 /etc/dhcp/dhcpd.conf 文件所示。请注意,如果您已经配置了 DHCP 服务器,在 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. shim 软件包获得 BOOTX64.efi 文件,从 DVD ISO 镜像文件中的 grub2-efi 软件包中获得 grubx64.efi 文件,其中 my_local_directory 是您创建的目录的名称:

    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -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. 解压软件包:

    # rpm2cpio shim-version-architecture.rpm | cpio -dimv
    # rpm2cpio grub2-efi-version-architecture.rpm | cpio -dimv
  6. 从您的引导目录中复制 EFI 引导镜像。将 ARCH 替换为 shim 或 grub,后跟架构,例如 grubx64

    # mkdir /var/lib/tftpboot/uefi
    # cp my_local_directory/boot/efi/EFI/redhat/ARCH.efi /var/lib/tftpboot/uefi/
  7. tftpboot/ 目录中添加名为 grub.cfg 的配置文件,如下例所示:

    set timeout=60
    menuentry 'RHEL 8' {
      linuxefi images/RHEL-8.x/vmlinuz ip=dhcp inst.repo=http://10.32.5.1/RHEL-8.x/x86_64/iso-contents-root/
      initrdefi images/RHEL-8.x/initrd.img
    }
    注意
    • 安装程序在没有运行时镜像的情况下无法引导。使用 inst.stage2 引导选项指定镜像的位置。另外,您可以使用 inst.repo= 选项指定镜像和安装源。
    • inst.repo 一起使用的安装源位置必须包含有效的 .treeinfo 文件。
    • 当您选择 RHEL8 安装 DVD 作为安装源时,.treeinfo 文件会指向 BaseOS 和 AppStream 软件仓库。您可以使用单个 inst.repo 选项来加载这两个软件仓库。
  8. 创建一个子目录,以将引导镜像文件存储在 /var/lib/tftpboot/ 目录中,并将引导镜像文件复制到 目录。在这个示例中,目录为 /var/lib/tftpboot/images/RHEL-8.x/

    # mkdir -p /var/lib/tftpboot/images/RHEL-8/
    # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-8/
  9. 在 DHCP 服务器上,启动并启用 dhcpd 服务。如果您已在 localhost 上配置了 DHCP 服务器,请在 localhost 上启动并启用 dhcpd 服务。

    # systemctl start dhcpd
    # systemctl enable dhcpd
  10. 启动并启用 tftp.socket 服务:

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

    PXE 引导服务器现在可以提供 PXE 客户端。您可以启动客户端,即您要安装 Red Hat Enterprise Linux 的系统,在提示指定引导源时选择 PXE 引导,并启动网络安装。

其他资源