Menu Close
Settings Close

Language and Page Formatting Options

14.2. 为基于 BIOS 的客户端配置 TFTP 服务器

使用这个步骤配置 TFTP 服务器和 DHCP 服务器,并为基于 BIOS 的 AMD 和 Intel 64 位系统在 PXE 服务器中启动 TFTP 服务。

重要

本节中的所有配置文件都是示例。配置详情会根据架构和具体要求的不同而有所不同。

流程

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

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

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

    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    # cp -pr /mount_point/BaseOS/Packages/syslinux-tftpboot-version-architecture.rpm /my_local_directory
    # umount /mount_point
  5. 解压软件包:

    # rpm2cpio syslinux-tftpboot-version-architecture.rpm | cpio -dimv
  6. tftpboot/ 中创建 pxelinux/ 目录,并将该目录中的所有文件复制到 pxelinux/ 目录中:

    # mkdir /var/lib/tftpboot/pxelinux
    # cp my_local_directory/tftpboot/* /var/lib/tftpboot/pxelinux
  7. pxelinux/ 目录中创建 pxelinux.cfg/ 目录:

    # mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
  8. 创建名为 default 的配置文件,并将其添加到 pxelinux.cfg/ 目录中,如下例所示:

    default vesamenu.c32
    prompt 1
    timeout 600
    
    display boot.msg
    
    label linux
      menu label ^Install system
      menu default
      kernel images/RHEL-8/vmlinuz
      append initrd=images/RHEL-8/initrd.img ip=dhcp inst.repo=http://10.32.5.1/RHEL-8/x86_64/iso-contents-root/
    label vesa
      menu label Install system with ^basic video driver
      kernel images/RHEL-8/vmlinuz
      append initrd=images/RHEL-8/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/RHEL-8/x86_64/iso-contents-root/
    label rescue
      menu label ^Rescue installed system
      kernel images/RHEL-8/vmlinuz
      append initrd=images/RHEL-8/initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    注意
    • 安装程序在没有运行时镜像的情况下无法引导。使用 inst.stage2 引导选项指定镜像的位置。另外,您可以使用 inst.repo= 选项指定镜像和安装源。
    • inst.repo 一起使用的安装源位置必须包含有效的 .treeinfo 文件。
    • 当您选择 RHEL8 安装 DVD 作为安装源时,.treeinfo 文件会指向 BaseOS 和 AppStream 软件仓库。您可以使用单个 inst.repo 选项来加载这两个软件仓库。
  9. 创建一个子目录,以将引导镜像文件存储在 /var/lib/tftpboot/ 目录中,并将引导镜像文件复制到 目录。在本例中,目录为 /var/lib/tftpboot/pxelinux/images/RHEL-8/

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

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

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

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