回顾:
dhcp包有两个:dhcpd和dhcrelay
dhcpd的配置文件:/etc/dhcp/dhcpd.conf
option routers GW;
option domain-name-servers IP,IP,IP;
default-lease-time;
max-lease-time;

subnet NET netmask MASK {range ;...
}
host HOST_ID {hardware ethernet MAC;fixed-address IP;
}分配信息库:/var/lib/dhcp/dhcpd.leases~
客户端命令:dhclient-d:运行在前台;
其他配置选项:filename:指明引导文件名称;可以理解为bootloader文件next-server:指明引导所在的服务主机的IP地址;这个server一般为tftp server示例:filename "pxelinux.0";next-server 172.18.100.6;tftp:trivial ftp琐碎简单ftp 使用udp协议

pxe:
PXE:preboot excution environment,Intel牵头
流程:
没有安装操作系统的主机能够完成基于网络引导的安装或者启动操作
1、客户端的网卡必须支持网络引导机制,并且调整为第一启动引导设备
2、主机唤醒之后,开始加载网络引导应用时,网卡会在本地局域网络中广播一个rarp协议,获得一个IP地址,同时还会获得要加载的文件名称和文件serverIP
2、文件会在内存中展开,基于此文件去加载一个内核文件(也是从server获取),内核还需要依赖于initrd这样的虚根来完成对真实根所在的设备的驱动的加载,内核文件通常是专为系统安装所设定的,因此如果给它配置了网络属性的话,接着这个内核文件还需要基于网络把自己扮演成某种协议的客户端,去启动能加载安装程序的程序包,在本地完成安装并启动应用程序,而此程序在另一个基于http、ftp、nfs提供的yum仓库服务器上,读取kickstart文件,基于kickstart解决依赖关系,基于基础镜像仓库完成后续的所有安装过程。
网络引导安装会依赖于一个基础镜像仓库(可以理解为一个yum仓库)

CentOS:dhcp(ip/netmask,gw,dns;filename,next-server)tftp server(bootloader,kernel,initrd)yum repository(ftp,http,nfs)kickstart文件:自动完成操作tftp server:centos6:chkconfig tftp onservice xinetd restartcentos7:systemctl start tftp.socketsystemctl enable tftp.socket---设置为开机自动启动默认的文件根目录:/var/lib/tftpboot/

配置PXE环境:
CentOS 7:
yum -y install syslinux

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpbootcp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpbootmkdir /var/lib/tftpboot/pxelinux.cfg/vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault menu.c32---以菜单方式显示安装界面或者引导界面prompt 5---菜单界面显示给用户5秒钟timeout 30---菜单界面显示超时,如果不选择就超时MENU TITLE CentOS 7 PXE Menu---MENU TITLE是固定的,后边的字符串可以随便写,指定一个菜单项LABEL linux---标签MENU LABEL Install CentOS 7 x86_64---菜单中显示的是什么install后边的字符串随便写,这是菜单某一个条目的标题KERNEL vmlinuz---这个菜单项的内核APPEND initrd=initrd.img---向内核附加的参数 inst.repo=http://192.168.10.9/centos/7/x86_64LABEL linux_autoinst---标签MENU LABEL Install CentOS 7 x86_64 auto---菜单中显示的是什么install后边的字符串随便写,这是菜单某一个条目的标题KERNEL vmlinuz---这个菜单项的内核APPEND initrd=initrd.img---向内核附加的参数 inst.repo=http://192.168.10.9/centos/7/x86_64 ks=http://192.168.10.9/kickstarts/centos7.cfg---kickstart文件CentOS 6:yum -y install syslinuxcp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpbootcp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.png} /var/lib/tftpbootmkdir /var/lib/tftpboot/pxelinux.cfg/cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default---编辑这个文件不需要指定inst.repo,只需要指定ks文件即可内容如下所示:display boot.msgmenu background splash.jpgmenu title Welcom to CentOS 6.7!menu color border 0 #ffffffff #00000000menu color sel 7 #ffffffff #ff000000menu color title 0 #ffffffff #00000000menu color tabmsg 0 #fffffff #00000000menu color unsel 0 #ffffffff #00000000menu color hotsel 0 #ff000000 #00000000menu color hotkey 7 #ffffffff #ff000000menu color scrollbar 0 #ffffffff #00000000label zutoinstmenu label ^Auto Install CentOS---^表示ctrl,表示一个控制符,表示按A快速定位menu defaultkernel vmlinuzappend initrd=initrd.imglabel linuxmenu label ^Install or upgrade an existing systemkernel vmlinuzappend initrd=initrd.imglabel vesamenu lebel Install system with ^basic video driverkernel vmlinuzappend initrd=initrd.img nomodeset---不做模式设定,启动时使用600×480的基本显卡驱动label rescuemenu label ^Rescue installed systemkernel vmlinuzappend initrd=initrd.img rescuelabel localmenu label Boot from ^local drivelocalboot 0xfffflabel memtest86menu label ^Memory testkernel memtestappend ~

下面演示tftpserver---文件路径在/var/lib/tftpboot/
yum -y install tftp tftp-server---同时安装客户端和服务端
systemctl start tftp.socket
systemctl enable tftp.socket
ss -unl---udp协议的69端口
然后就可以使用客户端连接上去了

然后把这台server配置成dhcp服务器,
vim /etc/dhcp/dhcpd.conf
option domain-name "magedu.com";
option routers 192.168.10.9;
option domain-name-servers 172.18.0.1;

default-lease-time 43200;
max-lease-time 86400;

log-facility local7;

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.101 192.168.10.120;
filename "pxelinux.0";
next -server 192.168.10.9;
}
配置完成后
systemctl restart dhcpd.service
ss -unl---67端口

然后创建一个仓库:通过http协议来访问
mkdir -pv /var/www/html/centos/7/x86_64
mount -r /dev/cdrom /var/ww/html/centos/7/x86_64---把cdrom中的文件挂载到http server中,当作yum仓库
systemctl start httpd.service
然后创建一个kickstart文件
mkdir -pv /var/www/html/kickstarts
vim /var/www/html/kickstarts/centos7.cfg
install
xconfig --startxonboot
keyboard --vckeymap=cn --xlayouts='cn'
reboot
rootpw --iscrypted $HDHf2v4i$LMo.xGHfxQDOf8e043C.g/
timezone Asia/Shanghai
url --url="http://192.168.10.9/centos/7/x86_64"
lang zh_CN
user --groups=wheel --name=mageedu --password=$6$1eWr0etY$DfLZgqu... --isrypted --gecos="MageEdu"
firewall --disabled
network --bootproto=dhcp --device=eth0
auth --useshadow --passalgo=sha512
text
firstboot --disable
selinux --permissive
ignoredisk --only-use=sda
bootloader --location=mbr --boot-drive=sda
zerombr
clearpart --all --initlabel
part /boot --asprimary --fstype="xfs" --size=512
part swap --fstype="swap" --size=2048
part /usr --fstype="xfs" --size=20480
part / --fstype="xfs" --size=20480

%packagesbr/>@base
@core
lftp
screen
wget
tree

%end
kickstart文件准备好了以后,
vim /etc/yum.repos.d/CentOS-Base.repo
把baseurl替换为本地挂载的光盘文件路径
baseurl=file:///var/www/html/centos/7/x86_64

yum -y install syslinux
rpm -ql syslinux---可以看到有一个pxelinux.o文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
此时还需要内核文件(一定要与当前系统版本保持一致)和initrd文件
在/var/www/html/centos/7/x86_64/images/pxeboot下有initrd.img文件和vmlinuz内核文件
cp /var/www/html/centos/7/x86_64/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/---还需要一些启动菜单,centos7系统下选择这些:menu.c32字符界面用到,vesamenu.c32图形界面会用到,memdisk把内存当成磁盘,方便initrd需要
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cd /pxelinux.cfg
vim default
default menu.c32---以菜单方式显示安装界面或者引导界面
prompt 5---菜单界面显示给用户5秒钟
timeout 30---菜单界面显示超时,如果不选择就超时
MENU TITLE CentOS 7 PXE Menu---MENU TITLE是固定的,后边的字符串可以随便写,指定一个菜单项

LABEL linux---标签
MENU LABEL Install CentOS 7 x86_64---菜单中显示的是什么install后边的字符串随便写,这是菜单某一个条目的标题
KERNEL vmlinuz---这个菜单项的内核
APPEND initrd=initrd.img---向内核附加的参数 inst.repo=http://192.168.10.9/centos/7/x86_64
LABEL linux_autoinst---标签
MENU LABEL Install CentOS 7 x86_64 auto---菜单中显示的是什么install后边的字符串随便写,这是菜单某一个条目的标题
KERNEL vmlinuz---这个菜单项的内核
APPEND initrd=initrd.img---向内核附加的参数 inst.repo=http://192.168.10.9/centos/7/x86_64 ks=http://192.168.10.9/kickstarts/centos7.cfg---kickstart文件

systemctl start httpd.service

然后找一个客户端就可以用pxe网络引导了,但是只能到加载内核这一步,因为没有指定安装路径,安装程序,这里能看到IP只是网卡的IP,不是内核的IP,因为没有系统
在网络引导出现菜单的时候,按table键,指定参数

vmlinuz initrd=initrd.img ip=192.168.10.11 netmask=255.255.255.0 inst.repo=http://192.168.10.9/centos/7/x86_64/---指定之前要配置内核的IP地址
但是每次安装系统时指定IP等参数太麻烦了,所以可以在default配置文件中添加

客户端
tftp 192.168.10.9---就可以连接,出现tftp的命令行提示符,可以使用help显示帮助信息

转载于:https://blog.51cto.com/13852573/2408166

6-2pxe应用入门相关推荐

  1. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  2. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  3. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  4. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  5. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  6. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  7. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  8. 5 分钟入门 Google 最强NLP模型:BERT

    BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: ...

  9. 命名实体识别入门教程(必看)

    关于开发自己的命名实体识别先期思路: 虽然网上有很多相关代码,但实际如何入门材料较少,故整理下: CRF:先期可以用人民日报语料库去做,步骤如下: https://blog.csdn.net/hude ...

  10. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

最新文章

  1. ssh遇到port 22:No route to host问题的解决方法
  2. zabbix 3.2.2 server端(源码包)安装部署 (一)【转】
  3. Markdown 五分钟速成
  4. C# GDI+ 实现图片分隔
  5. 前端学习(1430):ajax封装五
  6. 里程碑式突破!我国量子计算原型机“九章”问世
  7. .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)
  8. POJ1741 点分治模板
  9. 模板引擎工作原理_zuma致:新手SEO须知搜索引擎工作原理
  10. 前端页面调试、抓包工具——spy-debugger
  11. Keil 5安装教程
  12. 云开发打工人必备上班摸鱼划水微信小程序源码
  13. 基因结构图的0_TBtools | 只有序列,怎么做基因结构图?
  14. 卡片游戏 (Throwing cards away I)(队列+模拟)
  15. jQuery 已经落幕了~
  16. 页面相似度检测,对SEO起到什么作用?
  17. 春风十里,不如见到你
  18. iOS开发 - 类似美团选商品页,从按钮上往上滑动,tableview依然响应,点击按钮,按钮也可响应
  19. Encoding History with Context-aware Representation Learning for Personalized Search(2020SIGIR)
  20. 基于SpringBoot的小说网站

热门文章

  1. hihoCoder挑战赛29
  2. 【白话设计模式二】外观模式(Facade)
  3. ffmpeg源码分析——av_register_all
  4. loadrunner关联点总结
  5. opengl 模板测试 glStencilOp glStencilFunc
  6. 黑马程序员_Java解析网络数据流的三种特殊方法
  7. 最小字典序问题java版
  8. 一场稳定、高清、流畅的大型活动直播是怎么炼成的?
  9. 《Linux嵌入式实时应用开发实战(原书第3版)》——3.5 Linux文件系统
  10. fpm定制化RPM包之nginx rpm包的制作