目录
频道首页
PXE高效批量网络装机
收藏
0
xy20118 最近修改于 2024-05-09 19:23:21

前言

简单阐述:通过网卡启动 将准备的好的 4大文件 下载本地内存 ,然后利用kikstart 应答文件 完成一键装机。

image

什么是PXE?

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统。

通俗理解:就是通过网卡将远端服务器上镜像操作系统至本机硬盘。计算机在启动时,通过PXE协议与DHCP服务器通信获取IP地址,然后通过TFTP协议从TFTP服务器下载镜像文件,最后通过网络引导加载镜像文件来安装或启动操作系统。

老生常谈:系统装机的三种引导方式 硬盘
光驱 网络(网卡)pxe

系统安装过程

  • 加载boot loader
  • Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
  • 加载启动安装菜单
  • 加载内核和initrd系统(文件才能使用文件)
  • 加载根系统()
  • 运行anaconda的安装向导

在系统光盘的isolinux目录下有和安装相关的文件

  • boot.cat: 相当于grub的第一阶段
  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单
  • memtest:内存检测程序
  • splash.png:光盘启动菜单界面的背景图
  • vmlinuz:是内核映像
  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

工作原理

当计算机引导时,BIOS把PXEClient调入内存中执行,然后由PXEClient将放置在远端的文件通过网络下载到本地运行。

实现过程

硬性条件

  • BIOS支持
  • 网卡支持(目前基本上都已经支持)
  • 在bios中开启开关 ,服务器一本没打开 bmc界面打开 image#463px #234px
  • 网络需要有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 。 网卡自带DHCP功能 dhcp 分配的具体ip地址。
  • 服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 (udp协议 )网卡自带这个功能(不支持其他的远程共享服务)

实现具体流程

1.计算机启动时,网卡通过dhcp服务器获取具体的IP地址和和引导程序(boot loader)的地址 tftpserver地址(dhcp本身不提供tftp服务) 2.网卡使用tftp 把引导程序加载到内存中来 3.bios执行引导程序 4.引导程序会根据tftp地址,去查找配置文件 5.根据配置文件引导系统安装 6.系统开始安装

通俗:PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

实现过程需要4个服务

  • tftp 提供内核和引导文件
  • vsftp 安装系统镜像文件的获取方式
  • syslinux
  • syslinux启动盘就可以引导各种基于DOS的工具
  • pxelinux.0 启动pxe
    -dhcp 可以提供具体ip地址 给网卡。

实验操作

文字阐述大概过程:

  1. dhcp 分配地址 给同一局域网内新加机器的(配置文件)指明tftp 服务器的地址
  2. tftp服务端开启 (udp协议) 配置 默认关闭
  3. 安装syslinux 取得 pxelinux.0 文件
  4. 安装vsftpd服务挂载软件安装源
  5. 将四大文件拷入 tftp的配置文件中
  • initrd.img
  • pxelinux.0 (centos7中类似grub2)
  • pxelinux.cfg/default (手写)
  • vmlinuz 6.将服务开启,关闭防火墙,selinux

具体操作: !!#ffff00 安装dhcp 设置地址池 指定ftp服务器地址 启动文件!!

[root@xyy1 yum.repos.d]# yum install dhcp -y  #安装dhcp 
[root@xyy1 yum.repos.d]# rpm -qc dhcp 
/etc/dhcp/dhcpd.conf   #配置文件位置 
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd 
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@xyy1 yum.repos.d]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example #需要到指定位置查看对应配置文件模板
#   see dhcpd.conf(5) man page
[root@xyy1 yum.repos.d]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf  #复制模板文件到配置文件 替换掉
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@xyy1 yum.repos.d]# vim /etc/dhcp/dhcpd.conf  #修改dhcp配置文件
subnet 192.168.64.0 netmask 255.255.255.0 {
  range 192.168.64.30 192.168.64.50;  #ip地址范围
  option routers 192.168.64.16;  #路由
  next-server 192.168.64.16;  指定ftp服务器地址
  filename "pxelinux.0";   #指定启动文件
}
[root@xyy1 yum.repos.d]# systemctl start dhcpd #启动dhcpd服务
[root@xyy1 yum.repos.d]# systemctl status dhcpd #查看dhcpd状态

2.安装tftp 配置文件 修改为开启状态

[root@xyy1 yum.repos.d]# yum install tftp-server -y  #安装
[root@xyy1 yum.repos.d]# rpm -ql  tftp-server 
/etc/xinetd.d/tftp #配置文件 可以使用rpm -qc 查看
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot #站点 

[root@xyy1 yum.repos.d]# vim /etc/xinetd.d/tftp #修改配置文件
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no   #默认yes 修改为no 
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

3.安装syslinux 引导程序文件 取得pxelinux.0

[root@xyy1 yum.repos.d]# yum install syslinux -y #安装
[root@xyy1 yum.repos.d]# rpm -ql syslinux |grep pxelinux.0 
                         #筛选出pexlinux.0 找到文件地址
/usr/share/syslinux/gpxelinux.0 
/usr/share/syslinux/pxelinux.0  #这个地址为寻找地址
[root@xyy1 yum.repos.d]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/  #复制pexlinux.0 文件只站点文件下 站点文件最后会存有四大基础文件。
[root@xyy1 tftpboot]# ls  
pxelinux.0

4.安装vsftpd 需要通过此服务获取安装源

[root@xyy1 tftpboot]#  yum install vsftpd -y #安装
[root@xyy1 tftpboot]# rpm -ql vsftpd #文件列表
# 需要的文件是/var/ftp 
[root@xyy1 /]# ls /var/ftp/ 
pub 
[root@xyy1 ftp]# mkdir centos7  #在此目录下 新建安装源 名称自定义 
[root@xyy1 ftp]# mount /dev/sr0  /var/ftp/centos7/ #iso文件挂载到安装源。 临时挂载 
mount: /dev/sr0 is write-protected, mounting read-only
[root@xyy1 ftp]# ls centos7/ #查看安装源内文件 
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@xyy1 ftp]# ls centos7/images/pxeboot/ #第二个文件vmlinuz的位置 
initrd.img  TRANS.TBL  vmlinuz
[root@xyy1 ftp]# cp centos7/images/pxeboot/vmlinuz  /var/lib/tftpboot/  #复制到站点文件 
[root@xyy1 ftp]# cd /var/lib/tftpboot/ #切换到站点文件
[root@xyy1 tftpboot]# mkdir pxelinux.cfg  #建文件目录 规定
[root@xyy1 isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default  #修改配置文件 
default linux
timeout=600

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.64.16/centos7
        ks=ftp://192.168.64.16/ks.cfg  #指定位置文件
label linux text
        kernel vmlinuz
        append text initrd =initrd.img method=ftp://192.168.64.16/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.64.16/centos7

[root@xyy1 isolinux]# cp /var/ftp/centos7/isolinux/initrd.img  /var/lib/tftpboot/  #复制initrd.img至站点文件  
[root@xyy1 isolinux]# ls /var/lib/tftpboot/  #查看四大文件已经配置完成。
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
  1. 安装kickstart 无人值守安装软件 (图形化工具)
[root@xyy1 isolinux]# yum install system-config-kickstart -y #安装 

操作界面在虚拟机 image#424px #207px 基本配置 image 安装方法 image 安装新引导 引导文件设置 image 分区信息 image image image image image 关闭防火墙 image 配置网卡 image 取消图形界面 image 安装后脚本设置 image 保存文件 image image

返回xshell 操作界面 将vsftpd dhcpd tftp 三种服务。

新建一个虚拟机 正常创建 调整内存和 处理器 开启启动即可。

内容大纲
批注笔记
PXE高效批量网络装机
ArticleBot
z
z
z
z
主页
会议室
Git管理
文章
云文档
看板