1、PXE 简介
linux
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工做于Client/Server的网络模式,支持工做站经过网络从远端服 务器下载映像,并由此支持经过网络启动操做系统,在启动过程当中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操做系统。vim
严格来讲,PXE 并非一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必需要有 PXE Client。PXE 协议可使计算机经过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,而后由 PXE Client 将放置在远端的文件经过网络下载到本地运行。运行 PXE 协议须要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,因为是给 PXE Client 分配 IP 地址,因此在配置 DHCP 服务器时须要增长相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就能够经过 TFTP 协议到 TFTP Server 上下载所需的文件了。bash
2、PXE的工做过程:服务器
1. PXE Client 从本身的PXE网卡启动,向本网络中的DHCP服务器索取IP(第一次获取ip),前提是BIOS开启pxe功能,本地网卡支持pxe功能;网络
2. DHCP 服务器返回分配给客户机的IP(第二次) 以及PXE文件的放置位置(该文件通常是放在一台TFTP服务器上) ;app
3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;dom
4. PXE Client 取得pxelinux.0 文件后之执行该文件;socket
5. 根据pxelinux.0 的执行结果,经过TFTP服务器加载内核和文件系统 ;ide
6. 进入安装画面, 此时能够经过选择HTTP、FTP、NFS 方式之一进行安装;网站
详细工做流程,请参考下面这幅图:
3、Kickstart 简介
Kickstart是一种无人值守的安装方式。它的工做原理是在安装过程当中记录典型的须要人工干预填写的各类参数,并生成一个名为ks.cfg的文件。如 果在安装过程当中(不仅局限于生成Kickstart安装文件的机器)出现要填写参数的状况,安装程序首先会去查找Kickstart生成的文件,若是找到 合适的参数,就采用所找到的参数;若是没有找到合适的参数,便须要安装者手工干预了。因此,若是Kickstart文件涵盖了安装过程当中可能出现的全部需 要填写的参数,那么安装者彻底能够只告诉安装程序从何处取ks.cfg文件,而后就去忙本身的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启 系统,并结束安装。
4、执行kickstart安装步骤
kickstart 安装可使用本地光盘,本地硬盘驱动器,或经过 NFS,FTP,HTTP 来执行.
要使用 kickstart,必须:
1.建立一个kickstart文件.
2.建立有kickstart文件的引导介质或者使这个文件在网络上可用.
3.筹备安装树.
4.开始kickstart安装.
流程图以下:
5、实验准备
物理机:redhat 6.4图形化
IP:10.0.0.1/16
实验环境:VMware Workstation 10
系统平台:redhat 6.4(最小化)
网络模式:NAT模式
DHCP / TFTP / FTP IP:10.0.0.2/16
全部服务器均支持PXE网络启动
实现目的:经过配置Kickstart服务器,全自动批量安装部署Linux系统
软硬件配置:网卡要支持pxe启动,操做系统也要支持pxe启动,另外有ftp服务器用于存储操做系统的安装文件,dhcp服务器用于分配ip。
6、具体部署步骤:
1.关闭防火墙和selinux
[root@rhel6 ~]# yum -y install dhcp* tftp* vsftpd* syslinux
2.安装完毕检查包组
[root@rhel6 /]# rpm -qa | grep dhcp dhcp-4.1.1-34.P1.el6.x86_64 dhcp-common-4.1.1-34.P1.el6.x86_64 [root@rhel6 /]# rpm -qa | grep vsftp vsftpd-2.2.2-11.el6.x86_64 [root@rhel6 /]# rpm -qa | grep xinetd xinetd-2.3.14-38.el6.x86_64
3.安装dhcp服务器
DHCP.conf介绍:
ddns-update-style interim:这个是动态获取IP地址啦。必须放在第一项哇。 ignore client-updates:服务端与客户端传输相关 Subnet:获取IP段,要配置正确。 Routers:是路由地址 Range:dhcp分配IP段。 next-server:是tftp地址。 Allow booting bootp:放行传输和协议。
4.具体步骤
[root@rhel6 /]# cp -rf /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf [root@rhel6 /]# vim /etc/dhcp/dhcpd.conf subnet 10.0.0.0 netmask 255.255.0.0 { range dynamic-bootp 10.0.0.100 10.0.0.200; --->此部分表明该DHCP服务器支持PXE next-server 10.0.0.2; filename "pxelinux.0"; -->最基本的启动文件 //指向的是tftp-server的根目录 option domain-name-servers 10.0.0.2; option domain-name "baidu.com"; #这两条是DNS,若是没有DNS就不要写,环境不支持反解,写着个安装起来会很慢 default-lease-time 600; max-lease-time 7200; }
5.启动服务
[root@rhel6 /]# service dhcpd start Starting dhcpd: [ OK ] [root@rhel6 /]# service dhcpd status dhcpd (pid 3490) is running... [root@rhel6 /]# chkconfig dhcpd on
6.检查syslinux包组
[root@rhel6 /]# rpm -ql syslinux| grep pxelinux.0 /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0 [root@rhel6 /]#
7.安装并配置pxelinux.cfg文件
[root@rhel6 /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 提供引导菜单所需的文件(从RHEL6光盘上的isolinux目录中找) [root@rhel6 cdrom]# cp -rf isolinux/* /var/lib/tftpboot/ [root@rhel6 cdrom]# ls /var/lib/tftpboot/ boot.cat grub.conf isolinux.bin memtest splash.jpg vesamenu.c32 boot.msg initrd.img isolinux.cfg pxelinux.0 TRANS.TBL vmlinuz [root@rhel6 cdrom]# [root@rhel6 tftpboot]# pwd /var/lib/tftpboot [root@rhel6 tftpboot]# mkdir pxelinux.cfg [root@rhel6 tftpboot]# cp isolinux.cfg pxelinux.cfg/default [root@rhel6 tftpboot]# [root@rhel6 tftpboot]# ls boot.cat initrd.img memtest splash.jpg vmlinuz boot.msg isolinux.bin pxelinux.0 TRANS.TBL grub.conf isolinux.cfg pxelinux.cfg vesamenu.c32 [root@rhel6 tftpboot]# mkdir rhel6 [root@rhel6 tftpboot]# cp vmlinuz initrd.img rhel6/ [root@rhel6 tftpboot]# ls rhel6/ initrd.img vmlinuz [root@rhel6 tftpboot]# [root@rhel6 tftpboot]# vim pxelinux.cfg/default label linux menu label ^Install RHEL6 <manual> menu default kernel rhel6/vmlinuz #kernel 参数指定要启动的内核。 append initrd=rhel6/initrd.img #append 指定追加给内核的参数,可以在grub 里使用的追加 给内核的参数,在这里也均可以使用。 注:若是是要安装多版本镜像源就在tftpboot下每一个版本建立一个目录,并在default下指定不一样的位置。
8.配置xinetd服务
TFTP配置文件介绍:
Default:用在于tftp创建传输入协议后会去tftpboot里找文件,啥都找不着以后就会找default。
tftp-server :这个是用来传送引导文件的,
Initrd.img/vmlinux: 看用来安装前的一些工做。但tftp是用来传输这些文件的协议。
9.具体步骤:
[root@rhel6 tftpboot]# vi /etc/xinetd.d/tftp service tftp { 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 = 100 2 flags = IPv4 }
10.启动服务:
[root@rhel6 tftpboot]# chkconfig xinetd on [root@rhel6 tftpboot]# umount /mnt/cdrom/ [root@rhel6 tftpboot]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only [root@rhel6 tftpboot]# cp -rf /mnt/cdrom/* /var/ftp/pub/ [root@rhel6 tftpboot]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@rhel6 tftpboot]# chkconfig vsftpd on [root@rhel6 tftpboot]# 访问ftp里是否有镜像源,若是有则尝试安装,若是能安到安装软件包界面,则pxe安装成功。
11.网络结构:
如图为网络安装环境的一个原理示意,安装环境由一个局域网和链接到该局域网的启动服务器、安装服务器和待安装客户端,其中启动服务器和安装服务器能够部署在同一台物理机上。
服务相关做用:
Dhcpd: 分发IP地址。
Tftpd: 分发启动文件安装。
vsftpd:分发系统文件安装。
1.安装kickstart
1.在10.0.0.1服务器上建立kickstart文件
[root@rhel6 ~]# yum -y install system-config-kickstart 如下选项必选: 基本配置密码 从新引导系统 文本安装 安装方法 ftp 分区 清除主引导记录 网络配置添加 禁用防火墙
2.配置最小化安装文件内容
[root@localhost ~]# vim /root/ks.cfg 找到packages部分添加@core,最小化安装 %packages @core %end reboot
3.将作好的ks.cfg文件放到pxe服务器内
[root@localhost ~]# scp /root/ks.cfg root@10.0.0.2:/var/ftp/pub root@10.0.0.2's password: ks.cfg 100% 975 1.0KB/s 00:00 [root@localhost ~]# [root@rhel6 /]# vim /var/lib/tftpboot/pxelinux.cfg/default label linux menu label ^Install RHEL6 <manual> menu default kernel rhel6/vmlinuz ks= #告诉系统,从哪里获取ks.cfg文件 append initrd=rhel6/initrd.img
kickstart到此安装完毕。
注:若是安装失败,则是服务没起或是生成kickstart有问题,须要从新生成,到此本次实验完满完成。
附:cobbler
在pxe和kickstart的基础上还能够增长cobbler功能,用图形化操做管理镜像源,可是图形化的支持不是很完善,可是这款软件的命令行很完善,在这里再次简单介绍一下大概的步骤(不涉及安装,由于很简单)。
网络安装服务器套件 Cobbler(补鞋匠)从前,咱们一直在作装机民工这份颇有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后咱们顿觉身价倍增。再也不须要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、 TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,咱们就能够像哈里波特同样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是通常人都能整明白的,没有大专以上学历,通不过英语四级, 根本别想玩转。总而言之,这是一份多么有前途,多么有技术含量的工做啊。很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功下降到初中如下,连补鞋匠都能学会。对于咱们这些在装机领域浸淫多年,经验丰富,老骥伏枥,志在千里的民工兄弟们来讲,不啻为一个晴天霹雳。
第一步 下载安装
去fedora.redhat 网站下载
第二步 配置文件
1. 配置tftp-server
2. 配置cobber
3. 配置DHCP模版文件
4. 修改rsync
5. 执行检查
6. 修改密码
7. 生成system-config-kickstart
8. 当 cobbler check 检测基本没问题后
9.修改启动文件路径
10. 导入系统安装DVD ISO中的文件
第三步 客户端启动