PXE安装CentOS
使用PXE(预启动执行环境)通过网络引导和安装操作系统是一种高效且灵活的方法,尤其适用于大规模部署和自动化管理,下面将详细介绍如何使用PXE技术在CentOS环境下进行网络安装。
准备工作
1、所需硬件和软件条件:
至少两台主机:一台作为PXE服务器,另一台作为客户端。
CentOS系统镜像文件(例如CentOS 7或CentOS 8)。
虚拟机软件(如VMware),用于创建和管理虚拟机。
2、服务端环境搭建:
确保服务器和客户端在同一局域网内,并且关闭虚拟机中的DHCP服务,以避免IP地址冲突。
设置静态IP地址,确保服务器的IP配置正确。
3、安装必要软件包:
在PXE服务器上安装dhcpd
、tftpserver
、syslinux
和httpd
软件包。
配置PXE服务器
1、配置DHCP服务:
编辑/etc/dhcpd.conf
文件,添加以下内容:
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; nextserver 192.168.0.1; filename "pxelinux.0"; }
重启DHCP服务:
systemctl restart dhcpd
2、配置TFTP服务:
确保TFTP服务的配置文件/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 }
启动TFTP服务:
systemctl start tftp
3、准备引导文件:
将CentOS系统镜像挂载到服务器上,并将vmlinuz
和initrd.img
文件复制到TFTP服务的根目录:
mkdir p /var/lib/tftpboot/centos7 cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/centos7/ cp /mnt/isolinux/initrd.img /var/lib/tftpboot/centos7/
4、配置PXE菜单文件:
在/var/lib/tftpboot
目录下创建pxelinux.cfg
子目录,并在其中创建default
如下:
default vesamenu.c32 label centos7 menu label ^ CentOS 7 x86_64 kernel /centos7/vmlinuz append initrd=/centos7/initrd.img ks=http://192.168.0.1/centos7/ks.cfg
配置HTTP服务
1、安装并配置httpd服务:
安装httpd服务:
yum install httpd y
将CentOS系统镜像文件挂载到/var/www/html/
目录下,并修改ks.cfg
文件以指向正确的安装源:
mount o loop /path/to/centos7.iso /var/www/html/centos7 vim /var/www/html/centos7/ks.cfg
启动并测试PXE安装
1、启动客户端并进行网络引导:
启动客户端计算机,并确保其BIOS设置为从网络引导。
客户端会向DHCP服务器请求IP地址,并通过TFTP服务下载PXE引导程序。
客户端加载PXE引导程序后,会根据菜单文件中的配置信息,通过HTTP服务下载CentOS系统的内核和初始RAM磁盘映像,并开始安装过程。
2、检查并解决问题:
如果遇到问题,检查DHCP和TFTP服务的日志,确保服务正常运行。
确保防火墙设置允许必要的端口通信。
相关问答FAQs
Q1:为什么PXE引导时提示找不到pxelinux.0文件?
A1:这个问题通常是由于DHCP服务器的配置文件/etc/dhcpd.conf
中没有正确指定pxelinux.0文件的位置,请确保配置文件中的filename
字段正确指向TFTP服务器上的pxelinux.0文件路径。
filename "pxelinux.0";
确保TFTP服务的根目录正确配置,并且pxelinux.0文件确实存在于该目录中。
Q2:如何配置无人值守安装?
A2:要实现无人值守安装,需要创建一个Kickstart应答文件(ks.cfg),在上述步骤中,我们已经提到了在HTTP服务器的根目录下放置ks.cfg文件,并在PXE菜单文件中通过append
选项指定ks.cfg文件的URL。
append initrd=/centos7/initrd.img ks=http://192.168.0.1/centos7/ks.cfg
在ks.cfg文件中,可以预先定义各种安装选项,如分区方式、软件包选择、网络配置等,从而实现全自动安装过程。