前记:
有同学请教我了PXE的相关问题,一方面好多朋友还不太懂,另一方面记不住,所以决定连夜赶制此文,讲解下小技巧助想学会的同学一臂之力,也为自己巩固一下知识
本文总共分六个部分,理论概述,环境准备,思维关系,实验,验证,常见错误
RHEL6.2-PXE+DHCP+FTP+TFTP+Kickstart
〇·基本技能
配置yum仓库:(不懂的同学先去学习,后文不再提及其原理)
mount /dev/cdrom /mnt
vim /etc/yum.repos.d/rhel-source.repo
[St1skbase]
name=This is base of pxe to use for
baseurl=file:///mnt/
enabled=1
gpgcheck=0
一·理论概述
启动安装--要求pxe网卡和主板的支持
PXE不是一种安装方式,是一种引导的方式。pxe方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导,PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
PXE协议通过client来server上下载文件
PXE协议分为 client 和 server 端,PXE client 在网卡Rom中,
当计算机引导时,cpu通过加载bios映射到内存中的片段,然后检查计算机的健康状况(如cpu风扇,网卡等)继而 把网卡Rom中的PXE client 调入内存引导执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行
client通过tftp协议下载server上的文件,前提是必须有相应的dhcp为其分发ip地址
PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。
DHCP 服务器用来给 PXE client分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的设置。
在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
注:一方面tftp可以达到32M,对于系统内核,引导程序等小文件,足以达到
另一方面tftp使用udp协议69号端口,速度也快
足以满足要求速度也可以,何乐而不为
Kickstart简介:kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置;
二·环境准备
客户端:要获得ip
传输文件需要tftp客户端(网卡rom内置有)
服务端:提供ip(安装dhcp服务器)--》并引导告诉其tftp所在位置
传输文件需要tftp服务端(安装tftp服务器)
提供引导程序默认为pxelinux.0 (安装syslinux软件包)
存放安装的压缩包需要ftp服务端(安装ftp服务器)
总共需要安装4个软件包:我们可以yum安装下
三·思维关系:
本人擅长看图说话,所以,许多要说的话都在图中仔细看图
不论做什么实验,思维最重要,最反对的就是没思路就去乱做了,即使做出来也不知道什么意思和没做一样,浪费时间和力气,你所要做的就是读懂下面4项含义
1、dhcp-->配置文件指定了为计算机分配的信息,tftp-server及boot loader(pxelinux.0)
只需在配置文件中加入俩行如下所示:
只留一个subnet多余的去掉,以免出错
只有安装了syslinux软件包,才会有/usr/share/syslinux目录及目录中的文件
pxelinux.0位于此目录中,后期需要拷贝
2、tftp-->配置文件指定了根目录,及开关选项,重启服务后生效,或直接chkconfig tftp on 启动
3、pxelinux.0中定义了/tftpboot/pxelinux.cfg/default为默认的启动菜单文件,及内核,如何加载初始化镜像等,所以后期需要创建pxelinux.cfg目录,并拷贝或手动创建default文件
注:后期生成了kickstart文件后,在/tftpboot/pxelinux.cfg/default中指定了kickstart文件的网络位置(可以ftp,http,nfs等形式指定)
只需在append后面加上ks=如:
append initrd=initrd.imgdevfs=nomount ramdisk_size=8192 linux ks=ftp://192.168.10.220/ks.cfg或append ks=http://192.168.10.220/ks.cfg initrd=initrd.img
append ks=nfs:192.168.200.104:/pub/ks.cfg initrd=initrd.img
4、 ks.cfg文件提供ftp所在的位置
四·实验
知道了如上的思维关系后,我们即可以开始真正的实验了
创建目录并拷贝文件
确定一共创建俩个目录并拷贝4个文件
要知道为什么创建这俩目录,以及拷贝哪些文件,哪些文件需要修改,添加配置
chmod 644 /tftpboot/pxelinux.cgf/default 修改为读写权限,默认只读
先指定ks.cfg及安装包所在位置,随后我们生成ks.cfg和挂载镜像到ftp下对应的目录
1、我们先挂载光盘到/var/ftp/pub下作为我们的安装程序
目录在生成ks.cfg时候注意一下安装方法处的填写即可:看下面的ks.cfg安装方法图
经过实验,此处挂载也可以用bind -o命令把/mnt 目录挂过来,方法很多,达到目的即可
2、修改ks.cfg的路径,并在保存的时候,指定放在路径下这里放在ftp的根目录
并修改配置加入思维关系3中所述的append ks=ftp://192.168.10.220/ks.cfg
更改default 为linux,如图第1行和第22行
生成ks.cfg
用于生成ks.cfg自动化配置文件(system-config-kickstart工具)
yum -y install system-config-kickstart
system-config-kickstart &
基本配置
安装方法(与前面挂载到ftp目录一致)
引导装载程序选项
分区信息
网络配置
验证省略
防火墙selinux关闭
显示配置
软件包选择
安装后程序执行的脚本,这里配置一个yum仓库,注意单引号不要丢了
保存(ctrl+s),注意保存到的目录
重启所有服务
五·验证结果
以下为安装界面:
进入系统后查看yum源是否配置好:
六·我的错误总结
1、配置错误
经常装机的时候一开始就提示找不见dhcp,经过三反五次的犯错发现,基本是由于自己在配置dhcp.conf的时候有没有删干净的比如subnet上面的一堆子,如果不删掉会进行报错,
而且每次都是,经常找错误就找好长时间,所以尽量没用的一定都删除掉,只留一个subnet即可,所以盆友们一定要注意这种类型的错误
2.获得ip后获取不到tftp上的文件,有服务没有启动或被防火墙拦截,通常重新启动守护进程即可,所以做完实验服务要同一重启(这里包括xinetd vspd dhcpd)
下面是常出现的其他错误:
问题:使用system-config-kickstart来配置ks.cfg文件时,在软件包选择栏中提示
"由于下载软件包信息失败,软件包选择被禁止"
解决方法:
创建一个yum仓库名字一定要是“base”
[base]
name=Red Hat Enterprise Linux 6
baseurl=ftp://192.168.19.254/rhel6
gpgcheck=0
结语:实验要多做,孰能生巧,预祝大家实验成功。