PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。
现代的网卡,一般都内嵌支持PXE的ROM芯片。当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,
经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
pxe服务端需要准备的环境如下
操作系统镜像CentOS-7-x86_64-Everything-1511.iso
tftp
dhcp
httpd
安装所需要的服务程序
yum -y install syslinux tftp-server httpd dchp
mount /dev/sr0 /data
cp -v /data/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
安装syslinux软件包后,我们需要将pxelinux.0文件复制到tftp默认的根目:/var/lib/tftpboot
cp -v /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt5timeout30MENU TITLECentOS7PXEMenuLABEL linux
MENU LABELInstallCentOS7x86_64
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://172.16.253.85/centos
LABEL linux_autoinst
MENU LABELInstallCentOS7x86_64 auto
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://172.16.253.85/centos ks=http://172.16.253.85/kickstart/ks.cfg
配置dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
#option domain-name "magedu.com";#option domain-name-servers 172.16.253.85;subnet172.16.0.0netmask255.255.0.0{range172.16.0.1172.16.0.100;filename"pxelinux.0";next-server172.16.253.85;指定tftp服务器的地址}
配置httpd
mount /dev/sr0 /var/www/centos
vim /etc/http/conf/httpd.conf
DocumentRoot"/var/www/"OptionsIndexesFollowSymLinksAllowOverrideNoneRequireall granted
制作kickstart文件
mkdir /var/www/kickstart
yum -y install system-config-kickstart
system-config-kickstart需在图形界面启动,生成配置文件ks.cfg,放在kickstart目录下
ks.cfg配置文件样例
#platform=x86, AMD64, or Intel EM64T#version=DEVEL# Install OS instead of upgradeinstall# Keyboard layoutskeyboard'us'# Root passwordrootpw--iscrypted $1$6/CtpwDu$I5sBDo0KeVe4zTprFkmkI.# System timezonetimezoneAfrica/Kinshasa# Use network installationurl--url="http://172.16.253.85/centos"# System languagelang en_US# Firewall configurationfirewall--disabled# System authorization informationauth--useshadow--passalgo=sha512# Use graphical installgraphical
firstboot--disable# SELinux configurationselinux--disabled# Halt after installationhalt# System bootloader configurationbootloader--location=mbr# Clear the Master Boot Recordzerombr# Partition clearing informationclearpart--all--initlabel# Disk partitioning informationpart/boot--fstype="xfs"--size=200part swap--fstype="swap"--size=1024part/--fstype="xfs"--grow--size=1%post
reboot%end%packages@base@core%end
检查kickstart文件是否有语法错误
ksvalidator ks.cfg
Systemctl enable tftp.socket httpd dhcpd
Systemctl start tftp.socket httpd dhcpd
如果安装过程中出现tftp open time out字样,请关闭pxe服务器的selinux,清空iptables规则。
setenforce 0
iptables -F
测试安装
选择自动安装
等待安装完成即可
测试安装
dhcp查看已分发的地址
安装完毕