PXE+kickstart无人值守安装CentOS
PXE是什么
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址(dhcp服务),再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。 此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
PXE的工作过程:
PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
进入安装画面,此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;
案例流程:
操作环境:
centos 6.5
1)安装tftp服务
#yum -y install tftP*
#vim /etc/xinetd.d/tftp
servicetftp { disable =no socket_type =dgram protocol =udp wait =yes user =root server =/usr/sbin/in.tftpd server_args =-s/var/lib/tftpboot per_source =11 cps =1002 flags =IPv4 } #只需将disable=yes换为no
2)安装dhcp服务
#yum -y install dhcp*
#vim /etc/dhcp/dhcpd.conf
ddns-update-styleinterim; ignoreclient-updates; next-server192.168.1.20;#tftpserver的IP地址 filename"pxelinux.0";#pxelinux启动文件位置 allowbooting; allowbootp; subnet192.168.1.0netmask255.255.255.0{ #---defaultgatewayoption routers192.168.1.1; optionsubnet-mask255.255.255.0; rangedynamic-bootp192.168.1.100192.168.1.200; hostns{#可根据mac地址分配固定的IP hardwareethernet00:1a:a0:2b:38:81; fixed-address192.168.1.101;} }#直接复制以上的配置文件修改相应IP即可
#/etc/init.d/dhcpd start
3)配置支持PXE的启动文件
#mount /dev/cdrom /mnt/ #挂载光盘。
#ln -s /var/lib/tftpboot / #将tftpboot链接到根下
#cp /usr/share/syslinux/pxelinux.0 /tftpboot/
#yum install syslinux syslinux-devel -y
#cp /mnt/images/pxeboot/{initrd.img,vmlinuz} /tftpboot/ #拷贝内核到该目录下
#mkdir -p /tftpboot/pxelinux.cfg
#cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
#拷贝isolinux.cfg配置文件重命名为default,系统安装的时候会根据这个文件的配置启动相应的选项。
修改参数如下:
#vim /tftpboot/pxelinux.cfg/default
defaultlinux#默认启动下面labellinux标记的内核 prompt1timeout10#用户输入之前的超时时间 displayboot.msg F1boot.msg F2options.msg F3general.msg F4param.msg F5rescue.msg labellinux kernelvmlinuz appendks=nfs:192.168.1.20:/centosinstall/ks.cfgksdevice=eth0initrd=initrd.img#告诉系统从哪里获取ks.cfg文件 labeltext kernelvmlinuz appendinitrd=initrd.imgtext labelks kernelvmlinuz appendksinitrd=initrd.img labellocal localboot1labelmemtest86 kernelmemtest append�C
4)nfs+kickstart配置
#yum -y install nfs* #安装nfs
#mkdir -p /centosinstall
#echo "/centosinstall *(rw,sync)" >>/etc/exports
#vim /centosinstall/ks.cfg
#Kickstartfileautomaticallygeneratedbyanaconda. install text nfs--server=192.168.1.20--dir=/centosinstall指明nfs服务器地址,及文件位置 key--skip langzh_CN.UTF-8 keyboardus network--deviceeth0--bootproto=dhcp--noipv6 rootpwjiajie#设置root密码 firewall--disabled authconfig--enableshadow--enablemd5 selinux--disabled timezoneAsia/Shanghai bootloader--location=mbr--driveorder=sda--append="rhgbquiet" zerombr clearpart--all--initlabel part/boot--fstypeext3--size=200#指明/boot分区大小。下同 partswap--size=1024 part/--fstypeext3--size=10240 part/data--fstypeext3--size=200--grow#余下的全给/data reboot %packages @base @core @chinese-support
5)启动服务
#setenforce 0
#iptables -L
#/etc/init.d/xinetd restart
#/etc/init.d/rpcbind restart
#/etc/init.d/nfs restart
#/etc/init.d/dhcpd restart
至此就大功告成了。设置BIOS为网卡启动就可以实现自动安装系统了。
注意:新服务器跟kickstart最好独立在一个网络,不要跟办公环境或者服务器机房网络混在一起,否则别的机器的以太网卡就会把它的系统重装成Linux系统。