2.6. 准备使用 PXE 从网络安装
这部分论述了如何在 PXE 服务器中配置 TFTP 和 DHCP 来启用 PXE 引导和网络安装。
2.6.1. 网络安装概述
网络安装允许您将 Red Hat Enterprise Linux 安装到可访问安装服务器的系统。网络安装至少需要两个系统:
- Server
- 运行 DHCP 服务器的系统、HTTP、HTTPS、FTP 或 NFS 服务器以及 PXE 引导情况下的 TFTP 服务器。虽然每个服务器可以运行在不同的物理系统上,但本节中的流程假设一个系统运行所有服务器。
- 客户端
- 要安装 Red Hat Enterprise Linux 的系统。安装启动后,客户端会查询 DHCP 服务器,从 HTTP 或 TFTP 服务器接收引导文件,并从 HTTP、HTTPS、FTP 或者 NFS 服务器下载安装镜像。与其它安装方法不同,客户端不需要任何物理引导介质来启动安装。
要从网络引导客户端,请在固件或客户端上的快速引导菜单中启用网络引导。在某些硬件上,从网络引导的选项可能被禁用了,或者不可用。
准备使用 HTTP 或 PXE 从网络安装 Red Hat Enterprise Linux 的工作流步骤如下:
步骤
- 将安装 ISO 镜像或者安装树导出到 NFS、HTTPS、HTTP 或者 FTP 服务器中。
- 配置 HTTP 或 TFTP 服务器和 DHCP 服务器,并在服务器上启动 HTTP 或 TFTP 服务。
- 引导客户端并开始安装。
您可以在以下网络引导协议之间进行选择:
- HTTP
- 如果您的客户端 UEFI 支持,红帽建议使用 HTTP 引导。HTTP 引导通常更可靠。
- PXE (TFTP)
- 客户端系统更广泛地支持 PXE 引导,但通过此协议发送引导文件可能会很慢,并导致超时失败。
2.6.2. 为 HTTP 和 PXE 引导配置 DHCPv4 服务器
在您的服务器上启用 DHCP 版本 4 (DHCPv4)服务,以便它可以提供网络引导功能。
先决条件
您通过 IPv4 协议准备网络安装。
对于 IPv6 ,请参阅 为 HTTP 和 PXE 引导配置 DHCPv6 服务器。
查找服务器的网络地址。
在以下示例中,服务器有具有此配置的网卡:
- IPv4 地址
- 192.168.124.2/24
- IPv4 网关
- 192.168.124.1
流程
安装 DHCP 服务器:
dnf install dhcp-server
设置 DHCPv4 服务器。在
/etc/dhcp/dhcpd.conf
文件中输入以下配置。替换地址以匹配您的网卡。option architecture-type code 93 = unsigned integer 16; subnet 192.168.124.0 netmask 255.255.255.0 { option routers 192.168.124.1; option domain-name-servers 192.168.124.1; range 192.168.124.100 192.168.124.200; class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; next-server 192.168.124.2; if option architecture-type = 00:07 { filename "redhat/EFI/BOOT/BOOTX64.EFI"; } else { filename "pxelinux/pxelinux.0"; } } class "httpclients" { match if substring (option vendor-class-identifier, 0, 10) = "HTTPClient"; option vendor-class-identifier "HTTPClient"; filename "http://192.168.124.2/redhat/EFI/BOOT/BOOTX64.EFI"; } }
启动 DHCPv4 服务:
# systemctl enable --now dhcpd
2.6.3. 为 HTTP 和 PXE 引导配置 DHCPv6 服务器
在您的服务器上启用 DHCP 版本 6 (DHCPv4)服务,以便它可以提供网络引导功能。
先决条件
您通过 IPv6 协议准备网络安装。
对于 IPv4,请参阅为 HTTP 和 PXE 引导配置 DHCPv4 服务器。
查找服务器的网络地址。
在以下示例中,服务器有具有此配置的网卡:
- IPv6 地址
- fd33:eb1b:9b36::2/64
- IPv6 网关
- fd33:eb1b:9b36::1
流程
安装 DHCP 服务器:
dnf install dhcp-server
设置 DHCPv6 服务器。在
/etc/dhcp/dhcpd6.conf
文件中输入以下配置。替换地址以匹配您的网卡。option dhcp6.bootfile-url code 59 = string; option dhcp6.vendor-class code 16 = {integer 32, integer 16, string}; subnet6 fd33:eb1b:9b36::/64 { range6 fd33:eb1b:9b36::64 fd33:eb1b:9b36::c8; class "PXEClient" { match substring (option dhcp6.vendor-class, 6, 9); } subclass "PXEClient" "PXEClient" { option dhcp6.bootfile-url "tftp://[fd33:eb1b:9b36::2]/redhat/EFI/BOOT/BOOTX64.EFI"; } class "HTTPClient" { match substring (option dhcp6.vendor-class, 6, 10); } subclass "HTTPClient" "HTTPClient" { option dhcp6.bootfile-url "http://[fd33:eb1b:9b36::2]/redhat/EFI/BOOT/BOOTX64.EFI"; option dhcp6.vendor-class 0 10 "HTTPClient"; } }
启动 DHCPv6 服务:
# systemctl enable --now dhcpd6
如果 DHCPv6 数据包被防火墙中的 RP 过滤器丢弃了,请检查其日志。如果日志包含
rpfilter_DROP
条目,请使用/etc/firewalld/firewalld.conf
文件中的以下配置禁用过滤器:IPv6_rpfilter=no
2.6.4. 为基于 BIOS 的客户端配置 TFTP 服务器
使用这个步骤配置 TFTP 服务器和 DHCP 服务器,并为基于 BIOS 的 AMD 和 Intel 64 位系统在 PXE 服务器中启动 TFTP 服务。
本节中的所有配置文件都是示例。配置详情会根据架构和具体要求的不同而有所不同。
流程
以 root 用户身份,安装以下软件包:
# dnf install tftp-server
允许到防火墙中的
tftp 服务
的传入连接:# firewall-cmd --add-service=tftp
注意-
这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加
--permanent
选项。 - 根据安装 ISO 文件的位置,您可能需要允许 HTTP 或者其他服务的进入连接。
-
这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加
从 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/AppStream/Packages/syslinux-tftpboot-version-architecture.rpm /my_local_directory
# umount /mount_point
解压软件包:
# rpm2cpio syslinux-tftpboot-version-architecture.rpm | cpio -dimv
在
tftpboot/
中创建pxelinux/
目录,并将该目录中的所有文件复制到pxelinux/
目录中:# mkdir /var/lib/tftpboot/pxelinux
# cp /my_local_directory/tftpboot/* /var/lib/tftpboot/pxelinux
在
pxelinux/
目录中创建pxelinux.cfg/
目录:# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
创建名为
default
的配置文件,并将其添加到pxelinux.cfg/
目录中,如下例所示:default vesamenu.c32 prompt 1 timeout 600 display boot.msg label linux menu label ^Install system menu default kernel images/RHEL-9/vmlinuz append initrd=images/RHEL-9/initrd.img ip=dhcp inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ label vesa menu label Install system with ^basic video driver kernel images/RHEL-9/vmlinuz append initrd=images/RHEL-9/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ label rescue menu label ^Rescue installed system kernel images/RHEL-9/vmlinuz append initrd=images/RHEL-9/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
文件。 -
当您选择 RHEL9 安装 DVD 作为安装源时,
.treeinfo
文件会指向 BaseOS 和 AppStream 存储库。您可以使用单个inst.repo
选项来加载这两个软件仓库。
-
安装程序在没有运行时镜像的情况下无法引导。使用
创建一个子目录,以将引导镜像文件存储在
/var/lib/tftpboot/
目录中,并将引导镜像文件复制到 目录。在这个示例中,目录为/var/lib/tftpboot/pxelinux/images/RHEL-9/
:# mkdir -p /var/lib/tftpboot/pxelinux/images/RHEL-9/ # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/images/RHEL-9/
启动并启用
tftp.socket
服务:# systemctl enable --now tftp.socket
PXE 引导服务器现在可以提供 PXE 客户端。您可以启动客户端,即您要安装 Red Hat Enterprise Linux 的系统,在提示指定引导源时选择 PXE 引导,并启动网络安装。
2.6.5. 为基于 UEFI 的客户端配置 TFTP 服务器
使用这个流程配置 TFTP 服务器和 DHCP 服务器,并为基于 UEFI 的 AMD64、Intel 64 和 64 位 ARM 系统的 PXE 服务器启动 TFTP 服务。
- 本节中的所有配置文件都是示例。配置详情会根据架构和具体要求的不同而有所不同。
-
Red Hat Enterprise Linux 9 UEFI PXE 引导支持基于 MAC 的 grub 菜单文件的小写文件格式。例如,grub2 的 MAC 地址文件格式为
grub.cfg-01-aa-bb-cc-dd-ee-ff
流程
以 root 用户身份,安装以下软件包:
# dnf install tftp-server
允许到防火墙中的
tftp 服务
的传入连接:# firewall-cmd --add-service=tftp
注意-
这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加
--permanent
选项。 - 根据安装 ISO 文件的位置,您可能需要允许 HTTP 或者其他服务的进入连接。
-
这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加
访问 DVD ISO 镜像中的 EFI 引导镜像文件:
# mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
复制 DVD ISO 镜像中的 EFI 引导镜像:
# mkdir /var/lib/tftpboot/redhat # cp -r /mount_point/EFI /var/lib/tftpboot/redhat/ # umount /mount_point
修复复制的文件的权限:
# chmod -R 755 /var/lib/tftpboot/redhat/
使用以下示例替换
/var/lib/tftpboot/redhat/EFI/BOOT/grub.cfg
的内容:set timeout=60 menuentry 'RHEL 9' { linuxefi images/RHEL-9/vmlinuz ip=dhcp inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ initrdefi images/RHEL-9/initrd.img }
注意-
安装程序在没有运行时镜像的情况下无法引导。使用
inst.stage2
引导选项指定镜像的位置。另外,您可以使用inst.repo=
选项指定镜像和安装源。 -
与
inst.repo
一起使用的安装源位置必须包含有效的.treeinfo
文件。 -
当您选择 RHEL9 安装 DVD 作为安装源时,
.treeinfo
文件会指向 BaseOS 和 AppStream 存储库。您可以使用单个inst.repo
选项来加载这两个软件仓库。
-
安装程序在没有运行时镜像的情况下无法引导。使用
创建一个子目录,以将引导镜像文件存储在
/var/lib/tftpboot/
目录中,并将引导镜像文件复制到 目录。在这个示例中,目录为/var/lib/tftpboot/images/RHEL-9/
:# mkdir -p /var/lib/tftpboot/images/RHEL-9/ # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-9/
启动并启用
tftp.socket
服务:# systemctl enable --now tftp.socket
PXE 引导服务器现在可以提供 PXE 客户端。您可以启动客户端,即您要安装 Red Hat Enterprise Linux 的系统,在提示指定引导源时选择 PXE 引导,并启动网络安装。
其它资源
2.6.6. 为 IBM Power 系统配置网络服务器
使用 GRUB2 为 IBM Power 系统配置网络引导服务器。
本节中的所有配置文件都是示例。配置详情会根据架构和具体要求的不同而有所不同。
流程
以 root 用户身份,安装以下软件包:
# dnf install tftp-server dhcp-server
允许到防火墙中
tftp
服务的进入连接:# firewall-cmd --add-service=tftp
注意-
这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加
--permanent
选项。 - 根据安装 ISO 文件的位置,您可能需要允许 HTTP 或者其他服务的进入连接。
-
这个命令启用了临时访问,直到下次服务器重启为止。若要启用永久访问权限,可在 命令中添加
在 TFTP root 中创建一个 GRUB2 网络引导目录:
# grub2-mknetdir --net-directory=/var/lib/tftpboot Netboot directory for powerpc-ieee1275 created. Configure your DHCP server to point to /boot/grub2/powerpc-ieee1275/core.elf
注意命令输出会告诉您 DHCP 配置中需要配置的文件名,如下所述。
如果 PXE 服务器运行在 x86 机器上,则必须在 tftp root 中创建
GRUB2
网络引导目录前安装grub2-ppc64-modules
:# dnf install grub2-ppc64-modules
创建一个 GRUB2 配置文件:
/var/lib/tftpboot/boot/grub2/grub.cfg
,如下例所示:set default=0 set timeout=5 echo -e "\nWelcome to the Red Hat Enterprise Linux 9 installer!\n\n" menuentry 'Red Hat Enterprise Linux 9' { linux grub2-ppc64/vmlinuz ro ip=dhcp inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ initrd grub2-ppc64/initrd.img }
注意-
安装程序在没有运行时镜像的情况下无法引导。使用
inst.stage2
引导选项指定镜像的位置。另外,您可以使用inst.repo=
选项指定镜像和安装源。 -
与
inst.repo
一起使用的安装源位置必须包含有效的.treeinfo
文件。 -
当您选择 RHEL8 安装 DVD 作为安装源时,
.treeinfo
文件会指向 BaseOS 和 AppStream 软件仓库。您可以使用单个inst.repo
选项来加载这两个软件仓库。
-
安装程序在没有运行时镜像的情况下无法引导。使用
使用以下命令挂载 DVD ISO 镜像:
# mount -t iso9660 /path_to_image/name_of_iso/ /mount_point -o loop,ro
创建一个目录,并将
initrd.img
和vmlinuz
文件从 DVD ISO 镜像复制到其中,例如:# cp /mount_point/ppc/ppc64/{initrd.img,vmlinuz} /var/lib/tftpboot/grub2-ppc64/
将您的 DHCP 服务器配置为使用与
GRUB2
打包的引导镜像,如下例所示。请注意,如果您已经配置了 DHCP 服务器,在 DHCP 服务器中执行这个步骤。subnet 192.168.0.1 netmask 255.255.255.0 { allow bootp; option routers 192.168.0.5; group { #BOOTP POWER clients filename "boot/grub2/powerpc-ieee1275/core.elf"; host client1 { hardware ethernet 01:23:45:67:89:ab; fixed-address 192.168.0.112; } } }
-
调整示例参数
subnet
、netmask
、routers
、fixed-address
和hardware ethernet
以适合您的网络配置。记录file name
参数 ; 这是grub2-mknetdir
命令在此流程前面输出的文件名。 在 DHCP 服务器上,启动并启用
dhcpd
服务。如果您已在 localhost 上配置了 DHCP 服务器,请在 localhost 上启动并启用dhcpd
服务。# systemctl enable --now dhcpd
启动并启用
tftp.socket
服务:# systemctl enable --now tftp.socket
PXE 引导服务器现在可以提供 PXE 客户端。您可以启动客户端,即您要安装 Red Hat Enterprise Linux 的系统,在提示指定引导源时选择 PXE 引导,并启动网络安装。