首先,需要确保系统已安装 dhcp
、tftp-server
和 httpd
等软件包。可以使用以下命令进行安装:
yum install -y dhcp tftp-server httpd syslinux-tftpboot xinetd
接下来,需要配置 DHCP 服务器以向客户端分配 IP 地址。在 /etc/dhcp/dhcpd.conf
文件中添加以下内容:
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; filename "pxelinux.0"; }
这将启用 DHCP 服务器,并设置子网,IP 范围,子网掩码,网关和 DNS 服务器。还需要设置 PXELinux 引导程序文件(pxelinux.0
)。
注意:确保将 interface
参数设置为正确的网络接口名称,例如 eth0
。
现在,需要配置 TFTP 服务器以下载和传输 PXE 引导程序和内核文件。为此,请编辑 /etc/xinetd.d/tftp
文件并使用以下内容:
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
接下来,在 /var/lib/tftpboot/
目录中创建一个 pxelinux.cfg
子目录,并在其中创建名为 default
的文件,其内容如下:
default menu.c32 prompt 0 timeout 300 MENU TITLE Custom PXE Boot Menu LABEL centos7_x86_64 MENU LABEL CentOS 7 x86_64 KERNEL images/CentOS-7-x86_64/vmlinuz APPEND initrd=images/CentOS-7-x86_64/initrd.img inst.repo=http://mirror.centos.org/centos/7/os/x86_64/ LABEL centos7_i386 MENU LABEL CentOS 7 i386 KERNEL images/CentOS-7-i386/vmlinuz APPEND initrd=images/CentOS-7-i386/initrd.img inst.repo=http://mirror.centos.org/centos/7/os/i386/
这里将创建一个菜单,让用户可以选择要安装的操作系统版本。默认情况下,菜单超时时间为 5 分钟。
注意:确保在 TFTP 根目录(即 /var/lib/tftpboot/
)中创建名为 images/CentOS-7-x86_64
和 images/CentOS-7-i386
的目录,并将 CentOS 7 实际内核和 initrd 文件放置在正确的目录中。
最后,需要启用 HTTP 服务器以提供操作系统安装映像。可以使用默认配置启用 Apache HTTP 服务器:
systemctl enable httpd systemctl start httpd
接下来,在 /var/www/html/
目录中创建一个名为 centos
的子目录,并挂载 CentOS 安装映像(ISO):
mkdir /var/www/html/centos/ mount -o loop /path/to/CentOS-7-x86_64-DVD.iso /var/www/html/centos/
现在,PXE 安装环境已准备就绪。在客户端启动时,需要将其配置为使用网络引导(PXE)。可以通过按照计算机制造商提供的说明或在 BIOS 中查找“网络引导”选项来完成此操作。一旦设置完毕,系统将从 PXE 引导程序启动,并显示操作系统安装菜单。