什么是PXE:
PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000,linux等。
为什么使用PEX:
从CD-ROM安装Linux这种最便捷、最直接的操作方法,但是,如果一旦遭遇需要同时安装linux系统到多台计算机上,那么我们应该选择一种更高效的安装方式。PXE是其中的一种选择。
PEX—Pre-boot Execution Environment协议可以使计算机通过网络引导启动。把安装盘的内容复制到某台服务器,欲安装linux的计算机通过网络实现多机同时安装。
PEX启动原理:
PXE是RPL的升级品,它是Preboot Execution Environment的缩写。它们的不同之处在于RPL是静态路由,而PXE是动态路由。其通信协议采用TCP/IP,与Internet连接高效而可靠,PXE无盘工作站的启动过程分析如下:
¨ 客户端个人电脑开机后, 在 TCP/IP Bootrom 获得控制权之前先做自我测试。
¨ Bootprom 送出 BOOTP/DHCP 要求以取得 IP。
¨ 如果服务器收到个人电脑所送出的要求, 就会送回 BOOTP/DHCP 回应,内容包括
客户端的 IP 地址, 预设网关, 及开机影像文件。否则, 服务器会忽略这个要求。
¨ Bootprom 由 TFTP 通讯协议从服务器下载开机影像文件。
¨ 个人电脑通过这个开机影像文件开机, 这个开机文件可以只是单纯的开机程式也可
以是操作系统。
¨ 开机影像文件将包含 kernel loader 及压缩过的 kernel, 此 kernel 将支持NTFS root
系统。
¨ 远程客户端根据下载的文件启动机器。
在这里,我做一个用PXE安装LINUX的案例:
环境:VMWARE虚拟机
要求:用RedHat LINUX配置PXE服务器,实现无人值守无盘安装LINUX
配置静态IP地址:
输入命令:[root@localhost ~]# setup
出现如下界面:
选择Network configuration
选择编辑设备
选择eth0网卡
设置以上参数。
挂载REDHAT光盘:
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
配置YUM客户端:
[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
配置命令如下:直接粘贴进去就行了
[rhel-Server]
name=Red Hat Enterprise Server $releasever – $basearch – Debug
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release
[rhel-VT]
name=Red Hat Enterprise VT $releasever – $basearch – Debug
baseurl=file:///mnt/cdrom/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-Cluster]
name=Red Hat Enterprise Cluster $releasever – $basearch – Debug
baseurl=file:///mnt/cdrom/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-ClusterStorage]
name=Red Hat Enterprise ClusterStorage $releasever – $basearch – Debug
baseurl=file:///mnt/cdrom/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
然后保存,退出。
安装FTP服务器:
[root@localhost cdrom]# yum install -y vsftpd
安装DHCP服务器:
[root@localhost cdrom]# yum install -y dhcp
安装TFTP服务器:
[root@localhost cdrom]# yum install -y tftp
把安装文件放到FTP服务器上:
[root@localhost /]# cd /mnt/cdrom/
[root@localhost cdrom]# cp -r . /var/ftp/pub/
配置DHCP配置文件:
[root@localhost cdrom] # vim /etc/dhcpd.conf
进入底行模式输入:-r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
在VIM编辑器的插入模式做以上修改。
配置TFTP:
[root@localhost ~]# vim /etc/xinetd.d/tftp
创建目录
[root@localhost /]# mkdir -pv /tftpboot/pxelinux.cfg
复制文件:
[root@localhost /]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@localhost /]# cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot/
[root@localhost /]# cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/
[root@localhost /]# cp /mnt/cdrom/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
修改/tftpboot/pxelinux.cfg/default文件:
[root@localhost /]# vim /tftpboot/pxelinux.cfg/default
在插入模式做如上图修改:代码如下
Timeout的值改为6
12行修改为:append ks=ftp://192.168.10.1/pub/ks.cfg ksdevice=eth0 initrd=initrd.img
重启ftp dhcp xinetd服务:
[root@localhost ~]# service vsftpd restart
[root@localhost ~]# service dhcpd restart
[root@localhost ~]# service xinetd restart
安装kickstart:
[root@localhost ~]# yum install -y system-config-kickstart
配置kickstart:
[root@localhost cdrom]# system-config-kickstart
配置默认语言,键盘类型,root用户密码,安装后是否重新引导,在文本或图形模式安装。
选择新安装,从FTP安装,以及FTP地址和路径
磁盘分区信息。
配置网卡信息。
选择需要安装的安装包
写入安装后执行的脚本以及解释器。
保存ks.cfg 文件。保存路径为:/var/ftp/pub/
因为我们的目的是无人值守安装LINUX,我们在安装的时候,会提示输入KEY。在此,我们编辑ks.cfg文件跳过key的选择。
[root@localhost cdrom]# vim /var/ftp/pub/ks.cfg
在里面加入一行: key –skip
我们来新建一个虚拟机,测试一下:
设置虚拟机网络连接。(注意,新建的虚拟机一定要和做PXE服务器的虚拟机在同一个虚拟LAN里面)
PXE客户端从DHCP服务器获取IP地址。
获取地址成功,并加载安装信息。
载入驱动。
为eth0网卡发送请求IP信息。
决定主机名和域名。
开始安装系统文件。
安装完成,输入刚才在kickstart里面预设的root密码,登陆成功。
PS:江山烟若柳原创,转载请注明出处。因本人水平有限,不足之处在所难免,敬请批评指正,共同学习,共同提高。