PXE
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PXE相关的知识,希望对你有一定的参考价值。
搭建DHCP服务 批量装机装系统,自动获得入网参赛,很少拿一台服务器做DHCP服务,一般都是在路由器网络设备上去搭建。DHCP概述及原理
? Dynamic Host Configuration Protocol
– 动态主机配置协议,由 IETF(Internet 网络工程师任
务小组)组织制定,用来简化主机地址分配管理
? 主要分配以下入网参数
– IP地址/子网掩码/广播地址
– 默认网关地址、DNS服务器地址
? DHCP地址分配的四次会话,通过广播的方式,先到先得 谁先发送回应,就用谁的DHCP
一个网络中不能有多台DHCP 如果有两台,客户机会非常不稳定,每次启动交换机的状态不一定,网络紊乱,另外产生广播包比较多,影响交换机速度,信息传播速度慢。
discover(客户端)-offer(服务端)-request(客户端)-ask(服务端)
虚拟机A:
1.安装软件包
[[email protected] /]# yum -y install dhcp
2.修改主配置文件
[[email protected] /]# vim /etc/dhcp/dhcpd.conf
末行模式 :r /usr/share/doc/dhcp*/dhcpd.conf.example 读入其他文本文件
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.7;
option routers 192.168.4.254; 路由器在网络中充当网关设备
default-lease-time 600;
max-lease-time 7200;
}
[[email protected] /]# systemctl restart dhcpd
################################################
什么是PXE网络
? PXE,Pre-boot eXecution Environment
– 预启动执行环境,在操作系统之前运行
– 可用于远程安装
? 工作模式
– PXE client 集成在网卡的启动芯片中
– 当计算机引导时,从网卡芯片中把PXE client调入内存
执行,获取PXE server配置、显示菜单,根据用户选
择将远程引导程序下载到本机运行
? 网络装机服务端需要哪些服务组件?
– DHCP服务,分配IP地址、定位引导程序
– TFTP服务,提供引导程序下载
– HTTP服务,提供yum安装源
网络装机服务器虚拟机A
一、dhcp配置,指定next-server下一个服务器
1.修改配置文件
[[email protected] /]# vim /etc/dhcp/dhcpd.conf
.......
next-server 192.168.4.7;
filename "pxelinux.0"; #指定网卡引导文件名
}
2.重起dhcpd服务
[[email protected] /]# systemctl restart dhcpd
pxelinux.0:安装说明书,二进制文件,安装一个软件自动生成
pxelinux.0-----》读取菜单文件
/var/lib/tftpboot/pxelinux.cfg/default /pxelinux.cfg 是个空目录,红帽官方规定菜单文件要放在此目录
二、搭建tftp服务,传输引导文件
tftp:简单的文件传输协议 端口:69
默认共享路径:/var/lib/tftpboot
1.安装软件包tftp-server
2.重起tftp服务
[[email protected] /]# systemctl restart tftp
[[email protected] /]# systemctl enable tftp
3.部署pxelinux.0文件
#查询仓库中软件生成pxelinux.0
yum provides */pxelinux.0 查询只要有这个文件的就列出来,然后 就知道是哪个包提供的这个文件,最后就安装这个包
yum -y install syslinux(查出来的)
rpm -ql syslinux #查看软件包安装清单
rpm -ql syslinux | grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 将查找出的文件复制到默认共享路径
ls /var/lib/tftpboot/
就像装系统时候出现的黑屏界面,就是菜单文件决定了有哪些选项(联想)
- 部署菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg必须叫这个名字
ls /var/lib/tftpboot/
把光盘中提供菜单的文件拷贝过来,光盘中有装系统的菜单,有提供菜单的文件或者软件,作为模板
mount /dev/cdrom /mnt/ 光盘的东西展现在linux系统中,要先把光盘放到光驱里面。
ls /mnt/isolinux/ 这个里面是光盘引导文件的存放地
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default复制这个模板改名成菜单文件
ls -l /var/lib/tftpboot/pxelinux.cfg/default
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default 给权限,至少保证root修改的权限,改对文件的权限,不是目录,
ls -l /var/lib/tftpboot/pxelinux.cfg/default
- 部署启动内核 启动驱动程序
vmlinuz 启动内核
initrd.img 启动驱动程序
cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/
ls /var/lib/tftpboot/
- 部署 图形的模块 背景图片
vesamenu.c32 图形的模块
splash.png 背景图片
[[email protected] /]# cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /var/lib/tftpboot/
[[email protected] /]# ls /var/lib/tftpboot/
initrd.img pxelinux.cfg vesamenu.c32
pxelinux.0 splash.png vmlinuz
7.修改菜单文件内容
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 #加载图形的模块
timeout 60 #读秒的时间
.......
menu background splash.png #指定背景图片
menu title PXE Server NSD1803 #指定标题
.......
label linux
menu label Install RHEL7 #显示选项内容
kernel vmlinuz #指定启动内核
append initrd=initrd.img #指定启动驱动程序
################################################
总结:
dhcp----》IP、next-server、pxelinux.0
tftp----》pxelinux.0
pxelinux.0----》default
default----》vesamenu.c32 、vmlinuz、initrd.img
简单测试: 新建一台虚拟机 选择 PXE网络引导 安装
网络类型选择为 private1
################################################
三、搭建Web服务,共享光盘所有内容
1.安装软件包
[[email protected] /]# yum -y install httpd
2.创建目录
[[email protected] /]# mkdir /var/www/html/rhel7
[[email protected] /]# ls /var/www/html/rhel7
[[email protected] /]# mount /dev/cdrom /var/www/html/rhel7
[[email protected] /]# ls /var/www/html/rhel7
[[email protected] /]# systemctl restart httpd
[[email protected] /]# systemctl enable httpd
3.测试
[[email protected] /]# firefox 192.168.4.7/rhel7
四、部署应答文件,无人值守安装
1.图形生成应答文件的工具 system-config-kickstart 自动选择装系统的步骤,比如时区,分区,语言,当客户机问他怎样装的时候,此文件就给他提供步骤
yum -y install system-config-kickstart
2.修改Yum仓库标识
[[email protected] /]# vim /etc/yum.repos.d/rhel7.repo
[development] rhel7的bug.红帽指定要改成此名字
[[email protected] /]# system-config-kickstart
查看软件包是否可以选择 会弹出一个图形界面,然后做许多勾选
3.查看应答文件 保存到root下边,方便看到
[[email protected] /]# ls /root/ks.cfg
/root/ks.cfg
4.利用Web服务,共享应答文件
[[email protected] /]# cp /root/ks.cfg /var/www/html
[[email protected] /]# ls /var/www/html
5.修改菜单文件指定应答文件
vim /var/lib/tftpboot/pxelinux.cfg/default
........
label linux
menu label Install RHEL7
menu default #读秒之后默认的选择
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.4.7/ks.cfg 加载完所有的内核和驱动就去读这个文件
########################################################
以上是关于PXE的主要内容,如果未能解决你的问题,请参考以下文章
[PXE] linux(centos)PXE服务器搭建,安装,启动及pxe协议详解
戴尔笔记本电脑无法开机,出现这一串代码PXE-MOF,请问有没有哪位高手解救?
shell脚本之一键部署PXE远程安装服务,将解放双手进行到底!