需部署DHCP、TFTP、HTTP三服务:一、DHCP分配IP并指定TFTP地址与pxelinux.0;二、TFTP提供pxelinux.0、vmlinuz、initrd.img;三、HTTP提供安装源及ks.cfg;四、配置pxelinux.cfg/default启动菜单;五、可选Kickstart实现无人值守安装。
如果您希望在局域网内通过网络启动多台Linux主机,需依赖PXE(Preboot Execution Environment)机制,该机制要求DHCP分配IP并告知客户端TFTP服务器地址与启动文件名,TFTP提供引导程序(如pxelinux.0),HTTP或NFS提供完整安装环境。以下是完成此部署的具体步骤:
一、安装并配置DHCP服务
DHCP服务负责为客户端分配IP地址,并指定下一页启动所需的TFTP服务器地址及初始引导文件名(filename)。必须确保DHCP作用域未与其他网络设备冲突,且option 66与option 67正确指向后续部署的TFTP服务。
1、执行命令安装isc-dhcp-server:sudo apt install isc-dhcp-server(Ubuntu/Debian)或sudo yum install dhcp-server(CentOS 7)。
2、编辑主配置文件/etc/dhcp/dhcpd.conf,添加如下段落(假设局域网为192.168.10.0/24,TFTP服务器IP为192.168.10.5):subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option routers 192.168.10.1; option domain-name-servers 192.168.10.1; option tftp-server-name “192.168.10.5”; filename “pxelinux.0”; }。
3、指定监听接口,修改/etc/default/isc-dhcp-server中INTERFACESv4值为“ens33”(以实际网卡名为准)。
4、重启服务并检查状态:sudo systemctl restart isc-dhcp-server && sudo systemctl status isc-dhcp-server。
二、部署TFTP服务并放置引导文件
TFTP服务用于传输体积小但关键的初始引导组件,包括pxelinux.0、内核vmlinuz和初始化内存盘initrd.img。其根目录必须可被DHCP所声明的路径访问,且需启用tftpd-hpa的secure模式对应路径限制。
1、安装tftpd-hpa:sudo apt install tftpd-hpa(Ubuntu/Debian)或sudo yum install tftp-server(CentOS 7)。
2、创建TFTP根目录并赋权:sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg;sudo chmod -R 755 /var/lib/tftpboot;sudo chown -R nobody:nogroup /var/lib/tftpboot。
3、复制syslinux引导文件:下载syslinux软件包后提取pxelinux.0,或直接安装syslinux并拷贝:sudo apt install syslinux-common && sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot/。
4、将Linux发行版的vmlinuz与initrd.img放入/var/lib/tftpboot/centos8/(路径可自定义),例如:sudo cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/centos8/;sudo cp /mnt/isolinux/initrd.img /var/lib/tftpboot/centos8/。
三、配置HTTP服务提供安装源
HTTP服务替代传统NFS,用于向PXE客户端提供完整的安装树(如CentOS的AppStream、BaseOS目录),避免TFTP传输大文件的低效与失败风险。客户端在加载内核后,通过HTTP URL获取安装介质内容。
1、安装Apache:sudo apt install apache2(Ubuntu/Debian)或sudo yum install httpd(CentOS 7)。
2、挂载ISO镜像至Web根目录子路径:sudo mkdir -p /var/www/html/centos8;sudo mount -o loop /path/to/CentOS-8-x86_64-1905-dvd1.iso /var/www/html/centos8。