使用PXE安装CentOS
什么是PXE?
PXE(Preboot Execution Environment,预启动执行环境)是由Intel公司开发的一种技术,允许计算机通过网络启动,它主要用于在没有本地存储设备的情况下,通过网络从服务器加载操作系统进行安装或运行,PXE广泛应用于大规模部署和系统恢复等场景。
PXE的工作原理
1、初始化阶段:客户端计算机通过其网络接口发送广播请求,寻找可以提供PXE服务的DHCP服务器。
2、获取IP地址和引导文件位置:DHCP服务器响应请求,分配一个ip地址给客户端,并告知PXE引导文件的位置。
3、下载引导文件:客户端根据DHCP提供的地址信息,向TFTP服务器请求下载pxelinux.0文件。
4、执行引导程序:pxelinux.0文件被下载到内存中并执行,它负责加载Linux内核和初始的RAM盘映像(initrd.img)。
5、安装过程:一旦内核和initrd.img被加载,系统进入实际的安装或运行阶段,此时可以通过HTTP、FTP等方式获取所需的操作系统镜像和软件包。
配置步骤
1. 准备环境
两台虚拟机,一台作为服务端,一台作为客户端。
CentOS 7.6的ISO镜像文件。
2. 服务端配置
2.1 设置静态IP地址
编辑/etc/sysconfig/networkscripts/ifcfgens33
文件,设置静态IP地址。
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.10 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=114.114.114.114
2.2 关闭防火墙和SELinux
systemctl stop firewalld.service systemctl disable firewalld.service sed i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0
2.3 安装必要的软件包
yum install y dhcp xinetd tftpserver httpd syslinux
2.4 配置DHCP服务
创建/etc/dhcp/dhcpd.conf
文件,添加以下内容:
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; option routers 192.168.1.1; option broadcastaddress 192.168.1.255; nextserver 192.168.1.10; filename "pxelinux.0"; }
启动DHCP服务:
systemctl start dhcpd.service systemctl enable dhcpd.service
2.5 配置TFTP服务
编辑/etc/xinetd.d/tftp
文件,取消注释并修改为:
disable = no per_source = 11 server_args = s /var/lib/tftpboot
创建目录并复制文件:
mkdir p /var/lib/tftpboot cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
启动TFTP服务:
systemctl restart xinetd.service systemctl enable xinetd.service
2.6 配置HTTP服务
将CentOS ISO镜像挂载到/mnt
目录下,并将ISO中的文件复制到/var/www/html
下:
mount o loop /root/CentOS7x86_64DVD1511.iso /mnt cp r /mnt/* /var/www/html/
编辑/var/www/html/isolinux/isolinux.cfg
文件,添加以下内容到label centos
部分:
kernel vmlinuz initrd=initrd.img repo=http://192.168.1.10/centos7.repo
启动HTTP服务:
systemctl start httpd.service systemctl enable httpd.service
2.7 配置PXE引导菜单
编辑/var/lib/tftpboot/pxelinux.cfg/default
文件,添加以下内容:
DEFAULT centos LABEL centos MENU LABEL ^Install CentOS 7^ KERNEL vmlinuz APPEND /initrd.img
常见问题解答(FAQs)
Q1: 为什么客户端无法获取IP地址?
A1: 确保DHCP服务器已启动,并且配置文件中的范围与客户端的MAC地址匹配,同时检查网络连接是否正常。
Q2: TFTP服务器无法提供文件怎么办?
A2: 确保TFTP服务已启动,并且/var/lib/tftpboot
目录下包含正确的pxelinux.0文件,如果问题仍然存在,请检查TFTP服务的日志文件以获取更多错误信息。