PXE手动安装CentOS是一种高效的方式,尤其适合需要在多台计算机上部署操作系统的场景,PXE(Preboot Execution Environment)允许计算机通过网络启动,而无需依赖本地存储设备,CentOS作为一款稳定可靠的Linux发行版,广泛应用于服务器环境,手动安装过程虽然需要一些技术知识,但能够提供更大的灵活性和控制力。

在开始之前,确保您具备基本的网络知识,并准备好一台支持PXE的计算机,安装过程涉及设置DHCP服务器、TFTP服务器以及配置引导文件,以下步骤将引导您完成整个流程。
准备一台服务器作为PXE引导服务器,这台服务器需要运行Linux系统,例如CentOS本身,安装必要的软件包,包括DHCP服务器和TFTP服务器,使用yum或dnf命令安装这些工具,运行以下命令来安装dhcp和tftp-server:
yum install dhcp tftp-server -y 安装完成后,配置DHCP服务器,编辑DHCP配置文件,通常位于/etc/dhcp/dhcpd.conf,在文件中添加以下内容,确保替换网络参数以适应您的环境:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
filename "pxelinux.0";
next-server 192.168.1.10;
} 这里,subnet定义您的网络范围,range指定IP地址池,filename指向PXE引导文件,next-server是TFTP服务器的IP地址,保存文件后,启动DHCP服务并设置为开机自启:
systemctl start dhcpd
systemctl enable dhcpd 配置TFTP服务器,TFTP用于传输引导文件和内核镜像,启用TFTP服务,编辑/etc/xinetd.d/tftp文件,将disable选项改为no:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
} 创建TFTP根目录,并设置权限:
mkdir -p /var/lib/tftpboot
chmod 755 /var/lib/tftpboot 启动TFTP服务:
systemctl start xinetd
systemctl enable xinetd 需要准备CentOS的安装文件,下载CentOS的ISO镜像,并挂载到本地目录,将ISO文件挂载到/mnt/cdrom:

mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom 复制必要的文件到TFTP目录,复制PXE引导文件:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 从挂载的ISO中复制内核和初始RAM磁盘:
cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/ 创建PXE引导菜单,在TFTP目录中创建pxelinux.cfg目录:
mkdir /var/lib/tftpboot/pxelinux.cfg 在pxelinux.cfg目录中创建一个默认配置文件,命名为default,编辑该文件,添加以下内容:
default menu.c32
prompt 0
timeout 300
label centos7
menu label Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.1.10/centos7 inst.ks=http://192.168.1.10/ks.cfg 这里,menu.c32是引导菜单程序,prompt和timeout控制引导行为,kernel指定内核文件,append行添加参数,其中inst.repo指向CentOS安装源的URL,inst.ks指向Kickstart文件用于自动化安装,如果您不使用Kickstart,可以省略inst.ks参数,但手动安装时建议使用它以简化过程。
设置HTTP或FTP服务器来提供安装文件,使用Apache HTTP服务器,安装Apache:
yum install httpd -y 将CentOS ISO中的文件复制到Web根目录:
cp -r /mnt/cdrom/* /var/www/html/centos7/ 启动HTTP服务:

systemctl start httpd
systemctl enable httpd 如果需要使用Kickstart自动化安装,创建一个Kickstart文件,示例文件内容如下,保存为ks.cfg并放置在Web服务器可访问的位置:
#version=DEVEL
install
url --url=http://192.168.1.10/centos7
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp
rootpw --plaintext yourpassword
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr
clearpart --all --initlabel
part / --fstype="ext4" --size=10240
part swap --size=2048
%packages
@base
@core
%end
%post
echo "Installation complete."
%end 这个文件定义了安装参数,如语言、网络设置和分区方案,替换yourpassword为实际密码,并确保URL正确。
完成以上配置后,测试PXE引导,将目标计算机设置为从网络启动,在BIOS或UEFI设置中,启用网络引导选项,重启计算机,它应该从PXE服务器获取IP地址,并加载引导菜单,选择“Install CentOS 7”选项,系统将开始安装过程,安装过程中,可能会提示您确认设置,如果您使用Kickstart文件,安装将自动进行。
在整个过程中,可能会遇到一些问题,如果DHCP服务未启动,检查防火墙设置,确保端口67和68开放,如果TFTP传输失败,验证文件权限和路径,使用日志文件,如/var/log/messages,来诊断问题。
手动PXE安装CentOS虽然步骤较多,但能够帮助您深入理解网络引导机制,这种方法特别适合企业环境,可以大幅提高部署效率,从我的经验来看,提前测试每个环节至关重要,尤其是在复杂网络环境中,确保所有服务配置正确,避免因小错误导致安装失败,定期更新CentOS镜像和软件包,以保持系统安全性和稳定性。
PXE安装不仅节省时间,还减少了物理介质的依赖,如果您是系统管理员,掌握这一技能将大大提升工作效率,耐心和细心是成功的关键,尤其是在处理网络配置时。
