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/

  就像装系统时候出现的黑屏界面,就是菜单文件决定了有哪些选项(联想)
  1. 部署菜单文件

    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

  1. 部署启动内核 启动驱动程序
    vmlinuz 启动内核
    initrd.img 启动驱动程序

cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/

ls /var/lib/tftpboot/

  1. 部署 图形的模块 背景图片
    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远程安装服务,将解放双手进行到底!

pxe(预启动执行环境)

PXE基础装机环境 案例2:配置并验证DHCP服务 案例3:配置PXE引导

PXE基础装机环境