当前位置:网站首页>Pxe原理和概念
Pxe原理和概念
2022-07-26 08:36:00 【a_b_e_l_】
Pxe原理和概念
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 上下载所需的文件。
优点:规模化:同时装配多台服务器;
自动化:安装系统、配置各种服务;
远程实现:不需要光盘、U 盘等安装介质。
前提条件
客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。 Ø网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。 Ø服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。 其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。vlan:虚拟局域网
思路:
1、dhcp 分配IP
2、ftp (tftp vsftp )tftp :引导镜像文件的下载vsftp:系统安装文件自定义的引导方式 pxelinux.cfg/default ——》如何引导 定义内核引导、安全模式、测试
3、镜像文件
4、无人值守 kickstart 服务
Kickstart概念
KickStart 是一种无人职守安装方式。KickStart 的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件;在其后的安装过程中(不只局限于生成 KickStart 安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果 KickStart 文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启系统,并结束安装。
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搭建
1.安装并启用 DHCP 服务
yum -y install dhcpcp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
这里需要重新设置一张网卡
这里将新添加的网卡设置成仅主机模式,使用本地vmnet1网卡,然后观察此网卡的地址段为多少
这里的本地vmnet1网卡的ip地址设置为192.168.31.2,作为dhcp服务的网关。
配置文件里做如下设置:
vim /etc/dhcp/dhcpd.conf
systemctl start dhcpd
systemctl enable dhcpd
2、安装并启用 TFTP 服务
TFTP:(Trivial File Transfer Protocol)是一个小而易于实现的文件传送协议。TFTP是基于UDP数据报,需要有自己的差错改正措施。TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别。但它的代码所占内存较小,不需要硬盘就可以固化TFTP代码,很适合较小的计算机和特殊用途的设备。
TFTP和FTP一个主要的区别就是它没有交互式,且不进行身份验证。
TFTP一般用于传输小文件
yum -y install tftp-server
yum -y install xinetd
vim /etc/xinetd.d/tftp //tftp被xinet所托管,xinetd默认没有安装,配置文件
xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全
disable 设置 no
用于 PXE 网络安装的 Linux 内核、驱动文件可以从 CentOS 7 系统光盘/镜像获得, 分别为 vmlinuz 和 initrd.img,位于光盘目录 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。
initrd是“initial ramdisk”的简写(系统初始化文件)。 initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd.img主要是用于加载ext4等文件系统及scsi设备的驱动。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱 动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。
#准备 tftp 需要共享出去的文件
mount /dev/cdrom /mnt
cd /mnt/images/pxeboot/ #内核文件 内核初始化镜像文件 /var/lib/tftpboot/ 站点
cp initrd.img vmlinuz /var/lib/tftpboot/
systemctl start xinetd
systemctl enable xinetd
systemctl start tftp
systemctl enable tftp
以上就是为了将镜像中的内核文件+系统的初始化文件 丢到tftp的默认共享的目录中,以便后续pxe-client来下载
3、准备 PXE 引导程序pxelinux.0
pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
yum provides */pxelinux.0 //查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用/
Yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝到tftp的根目录下,系统引导文件
4.配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。 至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的
mkdir /var/lib/tftpboot/pxelinux.cfg //默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾
纯手工配置default菜单文件 vim /var/lib/tftpboot/pxelinux.cfg/default
5.安装ftp服务,准备centos安装源
yum -y install vsftpd
mount /dev/cdrom /mnt
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 #将镜像复制其中
systemctl start vsftpd
6.设置引导安装程序
part / --fstype="xfs" --grow --size=1 //分区配置
part swap --fstype="swap" --size=2048
part /boot --fstype="xfs" --size=17000
这里可以给参数例如boot分区,/分区,swap分区单位为MB
最小安装
%packages
@base //安装基础软件包
@^gnome-desktop-environment //安装桌面环境
%end
如果需要自己配置软件包,需要编辑ks.cfg文件 vim ks.cfg 添加至最后
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11 chrony
%end
7.添加ks进行优化
vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.31.1/ks.cfg
label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.31.1/centos7 ks=ftp://192.168.31.1/ks.cfg
label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.31.1/centos7 ks=ftp://192.168.31.1/ks.cfg
8.图形界面引导配置
system-config-kickstart
在虚拟机中输入以上命令打开配置界面
边栏推荐
- The data read by Flink Oracle CDC is always null. Do you know
- Date and time function of MySQL function summary
- [GUI] GUI programming; AWT package (interface properties, layout management, event monitoring)
- 2022/7/18 exam summary
- 6、 Pinda general permission system__ pd-tools-log
- Automation and disconnection monitoring of video addition
- A summary of practical websites that won't brighten people's eyes
- Memory management based on C language - Simulation of dynamic partition allocation
- Flutter custom player progress bar
- 基于C语言的内存管理-动态分区分配方式模拟
猜你喜欢
2022-7-5 personal qualifying 2 competition experience
[abstract base class inheritance, DOM, event - learning summary]
Uninstallation of dual systems
Memory management based on C language - Simulation of dynamic partition allocation
利用模m的原根存在性判断以及求解
Basic music theory rhythm connection problem, very important
File management file system based on C #
2022-7-8 personal qualifying 5 competition experience (supplementary)
Vscode utility shortcut
Mycat2 sub database and sub table
随机推荐
23.2 customizing the banner control display hidden banner modify banner
请问现在flinkcdc支持sqlserver实例名方式连接吗?
Redis advanced
Condition judgment function of MySQL function summary
Flitter imitates wechat long press pop-up copy recall paste collection and other custom customization
Daily Note (11) -- word formula input arbitrary matrix
Number of briquettes & Birthday Candles & building blocks
日常一记(11)--word公式输入任意矩阵
Kotlin中room数据库的使用
Excel find duplicate lines
Oracle 19C OCP 1z0-082 certification examination question bank (13-18)
Dear teachers, how can sqlserver get DDL in flinkcdc?
Code cloud change remote warehouse command
Shell homework the next day
Day 3 homework
2022-7-6 personal qualifying 3 competition experience
OA项目之我的会议(查询)
【FreeSwitch开发实践】自定义模块创建与使用
[GUI] GUI programming; AWT package (interface properties, layout management, event monitoring)
Oracle 19C OCP certification examination software list