BootStraping 系统提供
PXE
简介
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器中的终端操作系统
原理图
依赖环境
-
dhcp server:用来获取网关和地址,以及dns;指明要加载的文件所在位置(tftp的地址)。(ip/nemask, gw, dns; filename, next-server)
-
tftp server:提供系统内核等 (bootloader, kernel, initrd)
TFTP(trivial file transfer protocol),一种开销很小的简单文件传输协议,语法类似ftp.因简单、高效,常用于网络设备的OS和配置更新.
-
yum repository :应用程序服务器构建(ftp, http, https, nfs)
-
kickstart
运行步骤
整个安装的过程是这样的:PXE网卡启动 => DHCP获得IP地址 => 从TFTP上下载 pxelinux.0、vmlinuz、initr.img 等 => 引导系统进入安装步骤 => 通过PEX linux 下载ks.cfg文件并跟据ks.cfg自动化安装系统 => 完成。
PXE和Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。(redhat的版本是通过anaconda读取kickstart文件来获取所有需要参与的安装配置就能无人值守的安装。这里要指明安装文件所在的路径)
PXE+Kickstart 无人值守安装操作系统完整过程如下:
准备工作
环境
centos 7.2为dhcp和tftp的server 地址10.1.6.72
1、tftp server安装配置
安装
# yum install tftp-server tftp
启动
CentOS 7:
systemctl start tftp.socket
CentOS 6:
chkconfig tftp on service xinetd restart
端口及配置文件
69/udp 默认的文件根目录:/var/lib/tftpboot/
客户端为tftp
可以cp
一个文件到/var/lib/tftpboot/
然后用tftp
连上去下载测试。
注意用tftp是不支持ls这种命令的。
2、dhcp的安装及简要配置
安装
# yum install dhcp -y
配置
复制模板文件
]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf
修改模板文件
service dhcpd configtest
检查测试
启动服务
3、提供pxelinux.0
这个文件由 syslinux
安装包提供
安装syslinux
]# yum install syslinux
由这个文件包提供的文件可以找到
复制此文件到tftp
的主目录中
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
测试:新建一个虚拟机是否能用
这时可以在服务端看到有没有租约信息
这时加载pxelinux.0
是没有问题的
4.提供内核文件和内存引导文件(和initrd相似的启动)到tftp
主目录
内核文件
内存引导文件syslinux
包提供
-
mboot.c32 :此文件表示从内存来引导,用内存当磁盘引导
-
menu.c32 :给用户提供一个可选的菜单
-
memdisk :使内存模拟成磁盘用的文件
-
chain.c32:基于链式引导(即bootloader引导)操作系统的文件
提供pxelinux.cfg
目录创建菜单加载时用到的配置文件信息
编辑这个配置文件提供菜单信息
含义
5、安装vsftp
用来当做yum仓库
# yum install vsftpd
配置光盘挂载地址
#mkdir /var/ftp/pub/7
启动vsftp
测试安装
OK!
基于Kickstart来一件安装
用Kickstart生成ks.cfg文件,修改好文件内容
重新配置/var/lib/tftpboot/pxelinux.cfg/default
文件
重启客户端主机就可以安装了
Centos 6的安装
CentOS 6: yum -y install syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/ mkdir /var/lib/tftpboot/pxelinux.cfg/ cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default mount -o bind /media/cdrom /var/www/html/centos6
内容如下所示:这个是图形化显示的菜单^是快捷键的方式
default vesamenu.c32 timeout 600 prompt 5 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.7 MageEdu! 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 autoinst menu label ^Auto Install CentOS menu default kernel vmlinuz append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg label linux menu label ^Install or upgrade an existing system kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/57747