PXE的原理与配置方式

目录

系统装机的三种引导方式

系统安装过程

什么是pxe

实现过程讲解

优点

搭建过程中服务详解

PXE服务器和客户机的工作过程:

搭建 PXE 远程安装服务器

安装并启用 DHCP 服务

 安装并启用 TFTP 服务

安装ftp服务,准备 CentOS 7 安装源 

 ​编辑

 实现Kickstart无人值守安装


系统装机的三种引导方式

1.硬盘

2.光驱(u盘)

3.网络

系统安装过程

  • 加载boot loader

Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境

  • 加载启动安装菜单

  • 加载内核和initrd系统(文件才能使用文件)

  • 加载根系统()

  • 运行anaconda的安装向导

Linux安装光盘的安装相关文件

在系统光盘的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系统,文件系统驱动等)

什么是pxe

开机自检 ——》 MBR引导——》grub2菜单——》内核初始化——》init初始化

PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

协议分为 Client 端 和 Server 端,PXE Client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE Client 调入内存执行,由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。

此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

实现过程讲解

1.网卡需要查找相关的dhcp服务器(获取地址时间)

2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

3.网卡使用tftp客户端吧引导程序加载到内存中来

4.bios执行引导程序

5.引导程序会去TFTP去查找配置文件

6.根据配置文件去引导安装系统

7.系统安装过程

优点

规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U 盘等安装介质

搭建过程中服务详解

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

PXE服务器和客户机的工作过程:

1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。 2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到系统安装主界面。
6.PXE客户机向文件共享服务器(“ftp”、http、nfs等)发起获取centos或windows系统安装文件的请求。
7.(vsftp)文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作
 

搭建 PXE 远程安装服务器

注:做本次实验之前 已经提前安装好了需要的软件。

安装并启用 DHCP 服务

cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

 vim /etc/dhcp/dhcpd.conf

 启动DHCP服务 systemctl start dhcpd

 安装并启用 TFTP 服务

TFTP:(Trivial File Transfer Protocol)是一个小而易于实现的文件传送协议。TFTP是基于UDP数据报,需要有自己的差错改正措施。TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别。但它的代码所占内存较小,不需要硬盘就可以固化TFTP代码,很适合较小的计算机和特殊用途的设备。
TFTP和FTP一个主要的区别就是它没有交互式,且不进行身份验证。
TFTP一般用于传输小文件


vim /etc/xinetd.d/tftp
tftp被xinet所托管,xinetd默认没有安装,配置文件

service tftp
{
        socket_type             = dgram
        protocol                   = udp
        wait                         = yes    //wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则要等待
        user                        = root
        server                     = /usr/sbin/in.tftpd
        server_args            = -s /var/lib/tftpboot    //指定TFTP根目录(引导文件的存储路径) -c允许上传
        disable                   = no   //修改 disable no表示开启TFTP服务 
        per_source            = 11    //通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个
        cps                      = 100 2   //表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求
        flags                    = IPv4
}

 

pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
yum provides */pxelinux.0   //查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用*/
yum -y install syslinux
rpm -ql syslinux | grep pxelinux   #查找pxe引导程序的位置
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/   #拷贝到tftp的根目录下,系统引导文件
注,只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件

 以上就是为了将镜像中的内核文件+系统的初始化文件 丢到tftp的默认共享的目录中,以便后续pxe-client来下载

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。
至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的

mkdir /var/lib/tftpboot/pxelinux.cfg //默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾

default auto         //指定默认入口名称 ,对应下面的label auto
prompt 1            //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式
label auto      //默认的图形安装
      kernel vmlinuz 
      append initrd=initrd.img method=ftp://192.168.23.10/centos7            //method必须指定网络路径

label linux text               //文本安装模式,出现boot:时输入linux text
      kernel vmlinuz 
      append text initrd=initrd.img method=ftp://192.168.23.10/centos7 

label linux rescue              //救援模式,出现boot:时输入linux rescue
      kernel vmlinuz 
	  append rescue initrd=initrd.img method=ftp://192.168.23.10/centos7

安装ftp服务,准备 CentOS 7 安装源 

mount /dev/sr0 /mnt
mkdir /var/ftp/centos7
systemctl start vsftpd

 

 实现Kickstart无人值守安装

准备安装应答文件
安装system-config-kickstart工具yum install -y system-config-kickstart

 打开"Kickstart配置程序”窗口
通过桌面菜单"应用程序"–>“系统工具”–>"Kickstart”打开或执行"system-config-kickstart”命令打开

 

 

 

vim /var/lib/tftpboot/pxelinux.cfg/default

到这里,服务器端配置完成。

然后去虚拟机新安装一台Linux系统的机器,查看是否可以自动安装

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值