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

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

重要

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

流程

  1. 以 root 用户身份,安装以下软件包:

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

    # firewall-cmd --add-service=tftp
    注意
    • 这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加 --permanent 选项。
    • 根据安装 ISO 文件的位置,您可能需要允许 HTTP 或者其他服务的进入连接。
  3. 从 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
  4. 解压软件包:

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

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

    # mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
  7. 创建名为 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://192.168.124.2/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://192.168.124.2/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 inst.rescue
      inst.repo=http:///192.168.124.2/RHEL-8/x86_64/iso-contents-root/
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    注意
    • 安装程序在没有运行时镜像的情况下无法引导。使用 inst.stage2 引导选项指定镜像的位置。另外,您可以使用 inst.repo= 选项指定镜像和安装源。
    • inst.repo 一起使用的安装源位置必须包含有效的 .treeinfo 文件。
    • 当您选择 RHEL8 安装 DVD 作为安装源时,.treeinfo 文件会指向 BaseOS 和 AppStream 软件仓库。您可以使用单个 inst.repo 选项来加载这两个软件仓库。
  8. 创建一个子目录,以将引导镜像文件存储在 /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/
  9. 启动并启用 tftp.socket 服务:

    # systemctl enable --now tftp.socket

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