1.PXE原理及流程
严格来说,PXE 并不是一种安装方式,而是一种引导的方式。当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。
流程:支持PXE的电脑开机(预先打开网卡PXE功能,网络引导)---> DHCP给该电脑一个IP地址,并指明下一跳tftp文件服务器 ---> 服务器去tftp服务器上(/tftpboot 文件夹下面)下载到一个叫做pxelinux.0的文件,并拿到pxelinux.cfg文件夹下的default配置文件 ---> 根据该配置文件加载内核等操作,同时该配置文件中可以指明ks.cfg文件的地址,这样实现全程无人化安装!
2.PXE+Kickstart所需要安装的服务及其作用
DHCP:为PXE客户端配置网络并指明tftp服务器的地址;
TFTP:为PXE客户端提供系统启动所需文件;
文件服务器:为客户端提供系统安装所需要文件,如FTP、NFS、HTTP等;
3.安装配置DHCP服务
yum install dhcp -y cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
修改/etc/dhcp/dhcpd.conf配置文件为一下内容:
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服务并添加开机自启动:
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/images/pxeboot/initrd.img /var/lib/tftpboot/ cp /mnt/images/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
http://petmaster.blog.51cto.com/5408825/1668940
http://cwtea.blog.51cto.com/4500217/834991/