1.PXE原理及流程
html
严格来讲,PXE 并非一种安装方式,而是一种引导的方式。当计算机引导时,BIOS把 PXE Client 调入内存中执行,而后由 PXE Client 将放置在远端的文件经过网络下载到本地运行。linux
流程:支持PXE的电脑开机(预先打开网卡PXE功能,网络引导)---> DHCP给该电脑一个IP地址,并指明下一跳tftp文件服务器 ---> 服务器去tftp服务器上(/tftpboot 文件夹下面)下载到一个叫作pxelinux.0的文件,并拿到pxelinux.cfg文件夹下的default配置文件 ---> 根据该配置文件加载内核等操做,同时该配置文件中能够指明ks.cfg文件的地址,这样实现全程无人化安装!windows
2.PXE+Kickstart所须要安装的服务及其做用
centos
DHCP:为PXE客户端配置网络并指明tftp服务器的地址;
bash
TFTP:为PXE客户端提供系统启动所需文件;
服务器
文件服务器:为客户端提供系统安装所须要文件,如FTP、NFS、HTTP等;
网络
3.安装配置DHCP服务app
yum install dhcp -y cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
修改/etc/dhcp/dhcpd.conf配置文件为一下内容:dom
ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 192.168.202.0 netmask 255.255.255.0 { option routers 192.168.202.2; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.202.2; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.202.60 192.168.202.100; default-lease-time 21600; max-lease-time 43200; next-server 192.168.202.129; #指定tftp server服务器的地址 filename "pxelinux.0"; #指定Bootstrap文件 }
启动DHCP服务并添加开机自启动:
socket
service dhcpd start chkconfig dhcpd on
4.安装配置tftp服务
yum install tftp* -y
修改/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 #将yes改成no便可 per_source = 11 cps = 100 2 flags = IPv4 }
启动tftp服务并添加开机自启动:
service xinetd start chkconfig xinetd on
5.设置PXE启动文件
安装syslinux获取PXE引导安装主程序文件pxelinux.0:
yum install syslinux -y cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
挂载镜像文件并辅助PXE启动文件:
mount /dev/cdrom /mnt #挂载镜像文件 mkdir /var/lib/tftpboot/pxelinux.cfg cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #开机引导菜单 cp /mnt/p_w_picpaths/pxeboot/initrd.img /var/lib/tftpboot/ cp /mnt/p_w_picpaths/pxeboot/vmlinuz /var/lib/tftpboot/ cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot #图形化安装菜单
修改/var/lib/tftpboot/pxelinux.cfg/default文件:
#default vesamenu.c32 default ks #更改默认启动的是label ks标记的内核 prompt 1 #显示'boot:'提示符,为0时不显示,直接启动default参数指定的内容 timeout 600 #设置超时时间 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.5! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label ks kernel vmlinuz append ks=ftp://192.168.202.129/pub/ks/ks.cfg initrd=initrd.img #告诉系统从哪里获取ks文件 label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
注意:若是ISO镜像文件直接经过解压复制到系统中,安装过程当中将会出现如下错误:
Unable to read package metadata, This may be due ro a missing repodata directory.Please ensure that your install tree has bee correctly generated.
出现这个错误的主要缘由是repodata文件夹下的那些文件缺乏扩展名,因此必须使用UltraISO等专业工具提取iso镜像文件内容。
6.安装配置FTP服务
yum install vsftpd -y
拷贝系统安装镜像文件到文件服务器:
cp -rf /mnt/* /var/ftp/pub
注意:iso镜像文件也能够在windows中用UltraISO等工具提取文件在复制到文件服务器中来。
启动ftp服务器并添加开机自启动:
service vsftpd start chkconfig vsftpd on
7.生成ks文件
安装system-config-kickstart软件包:
yum install system-config-kickstart -y system-config-kickstart &> /dev/null & #开始进行图形化配置
配置完成后将ks.cfg文件保存至/var/lib/tftpboot/pxelinux.cfg/default文件中指定的ks文件路径下。
注:system-config-kickstart界面不支持LVM的建立,若是须要建立LVM,能够直接手动编辑生成的配置文件。
8.测试无人值守方式安装系统
配置一台新的虚拟机,修改BIOS设置为从网络启动系统便可。
参考资料:
http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html
http://jiechao2012.blog.51cto.com/3251753/1153353
http://instance.iteye.com/blog/1687413
http://blog.csdn.net/Andy_YF/article/details/7749282
http://www.linuxidc.com/Linux/2013-07/87456p2.htm