PXE网络装机及kickstart无人值守自动装机技术
PXE简介
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。
- 表现形式
PXE最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。
- 原理
当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。
实验过程
实验准备
一台Linux系统虚拟机(具备yum仓库且光盘挂载好)、一台win7系统虚拟机
实验详细
- 安装tftpserver和dhcpserver及syslinux。
[root@linux6-1 ~]# yum install tftp-server dhcp vsftpd syslinux -y
- 配置tftp服务器
[root@linux6-1 ~]# vim /etc/xinetd.d/tftp
disable = no //表示开启tftp服务
3.配置DHCP服务器
[root@linux6-1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf //复制DHCP配置文件的模板
[root@linux6-1 ~]# vim /etc/dhcp/dhcpd.conf //对复制过来的配置文件进行修改
#ddns-update-style none; //删除#表示开启DNS动态更新
next-server 192.168.100.4; //指定tftp服务器的地址
filename "/pxelinux.0"; //引导文件在tftp上的位置
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.150 192.168.100.200;
option routers 192.168.100.1;
}
- 将光盘挂载到ftp的站点目录下
[root@linux6-1 ~]# mount /dev/sr0 /var/ftp/pub/
- 复制网络启动所需要的文件到tftp服务器的目录下
[root@linux6-1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@linux6-1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@linux6-1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //安装菜单
[root@linux6-1 ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot //Linux引导加载模块
[root@linux6-1 ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ //压缩内核
[root@linux6-1 ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot //图形化安装菜单
- 启动所有服务器(记得关闭防火墙及增强性安全功能)
[root@linux6-1 ~]# service dhcpd start
正在启动 dhcpd: [确定]
[root@linux6-1 ~]# service vsftpd start
为 vsftpd 启动 vsftpd: [确定]
[root@linux6-1 ~]# service xinetd start
正在启动 xinetd: [确定]
[root@linux6-1 ~]# chkconfig --level 35 xinetd on //在35模式下开机自启动
[root@linux6-1 ~]# chkconfig --level 35 tftp on //在35模式下开机自启动
[root@linux6-1 ~]# service iptables stop
[root@linux6-1 ~]# setenforce 0
- win7使用PXE启动就可以进行装机操作了
kickstart无人值守自动装机
首先安装kickstart工具
[root@linux6-1 ~]# yum install system-config-kickstart -y
在桌面环境配置kickstart并生成ks.cfg文件
生成ks.cfg文件后我们可以在ftp目录下创建一个新的目录,将ks.cfg文件复制到该目录下,然后修改下安装菜单(default)文件
[root@linux6-1 ~]# cd /var/ftp/
[root@linux6-1 ftp]# mkdir rhel6
[root@linux6-1 ftp]# cp /root/ks.cfg rhel6/
[root@linux6-1 ftp]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@linux6-1 pxelinux.cfg]# vim default
#prompt 1
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append ks=ftp://192.168.100.102/rhel6/ks.cfg initrd=initrd.img
然后重新启动所有服务器,关闭防火墙及SELinux
[root@linux6-1 ~]# service dhcpd restart
[root@linux6-1 ~]# service xinetd restart
[root@linux6-1 ~]# service vsftpd restart
[root@linux6-1 ~]# service iptables stop
[root@linux6-1 ~]# setenforce 0
此时在win7系统上重新启动并且启动时按F12进入kickstart无人值守自动装机