前言
关于ipxe和pxe的介绍这里我就不多进行介绍了,直接搬运了知乎大佬的文章
某乎大佬介绍ipxe/pxe流程
这介绍巨屌,对于ipxe/pxe的介绍、支持的网络协议、框架模型图、client/server端介绍、启动流程介绍、启动流程图、主要用到的DHCP服务、TFTP服务、HTTP服务均有介绍。有需要的铁子们可以直接传送门过去学习
关于PXE的部署及介绍,后面另外再写一篇
正文
俺这里简单的介绍一下IPXE环境部署、IPXE关于Virtio 1.0 虚拟化网卡驱动的IO流程做一下介绍
多bb一句,IPXE装系统是真的巨快,叼德一
IPXE官网
ipxe git code link
这里需要说明一下
1-ipxe应该是包含ipxe客户端、网卡driver、支持的各种网络协议如TCP/IP/UDP/ICMP/dhcp/http/等,甚至还支持ISCSI,功能是极其丰富的,具体支持协议可以在官网查询
2-编译问题 //默认ipxe支持您使用的网卡,且提供legacy mode和uefi mode的驱动
编译目录在ipxe/src/
a. 网卡存在option rom
:legacy mode : make bin/808610de.rom //这里的编译文件名称可以在官网连接里搜到,一般是device id
:uefi mode : make bin-x86_64-efi/808610de.rom
:uefi mode 且支持uefi shell时可编译efi文件“:make bin-x86_64-efi/ipxe.efi
这种efi文件可以通过u盘插入server,进入uefi 的fs目录下,直接运行”./ipxe.efi“即可启动ipxe server
3- ipxe client有shell环境的
ipxe shell command
| 操作系统 | 安装组件 |
|---|---|
| Centos 8 | DHCP服务 |
| TFTP服务 | |
| xinetd组件 | |
| HTTP服务 |
一、环境部署
注意:dhcp server 、 tftp server 、 http server 这些server的功能都是可以单独验证的,百度都有很多资料,如果是新手可以部署一个服务,验证一个服务好吧。
1- dhcp 服务
## 下载安装
yum install dhcp-server
##查看应用状态
systemctl status dhcpd
##启动应用
systemctl start dhcpd
接下来需要修改dhcp配置文件
##path /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.254 {
range 192.168.1.1 192.168.1.30; //dhcp server支持配置的子网ip范围
option domain-name-servers ns1.internal.example.org;
default-lease-time 600;
max-lease-time 7200;
## TFTP client server ip ,因为dhcp/tftp可以部署同一台server,所以这里写本机服务的ip即可
next-server 192.168.1.5
## [配置install.ipxe方式](https://ipxe.org/howto/rh_san)
next-file install.ipxe //这个文件官网有,不同操作系统需要配置不同的内容
//这个文件就是tftp 需要提供给ipxe client 的配置文件
}
配置完DHCP配置文件后就可以启动DHCP服务了,但是同网段不要配多个DHCP SERVER会有冲突,导致DHCP服务有问题
2- TFTP服务
## 下载xinetd
yum install xinetd
## 下载tftp server
yum install tftp-server
## 配置xinetd 配置文件
## path /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
# 并发
wait = no
# 启动tftpd的用户
user = root
# 启动命令
server = /usr/sbin/in.tftpd
# 启动参数, -s指定tftpd的文件目录, -c表示允许上传文件
## 这个目录是tftp client通过tftp访问的目录,后续install.ipxe文件要放在这里
server_args = -s /var/lib/tftpboot -c
# 允许启动
disable = no ##这里改成 no即可
per_source = 11
cps = 100 2
flags = IPv4
}
接下来可以启动服务
## 启动服务
systemctl start xinetd
systemctl start tftpd
## 查看状态
systemctl status xinetd
systemctl status tftpd
3-http server
## 安装和启动
yum install httpd
systemctl start httpd
## 这里需要注意,http server要监听的是80 port,如果httpd 服务没有起来,可以查看一下80 port是否被别的应用
## 占用了
netstat -antlp |grep 80 ##这个指令可以查看80 port 的被应用使用的状态
注意httpd服务被访问时,访问的目录路径
/var/www/html/
4-挂载操作系统
这里我们假设操作系统名字就叫centos8
直接挂载到httpd 提供的访问目录下新建Centos目录
mkdir /var/www/html/Centos/
## 挂载操作系统
mount -o loop centos8 /var/www/html/Centos/
5-配置ipxe.install 文件
这个文件就是要告诉ipxe client要下载啥东西,最小系统需要的vmlinuz、initrd.img
这个文件在上文已经说过了,我就说下centos下的怎么搞
vim /var/lib/tftpboot/install.ipxe
## 内容
#!ipxe ## 这个前缀参数巨TM重要!!!!!!!!!不加的话ipxe client无法识别这个文件的
## 设置http访问链接的变量,就是我们挂载操作系统的目录
set base http:192.168.1.5/Centos
kernel ${base}/images/pxeboot/vmlinuz initrd=initrd.img inst.repo=${base}
initrd ${base}/images/pxeboot/initrd.img
boot
到此为纸吧!ipxe server端的环境就算搭好了!
virtio1.0 1af41041 driver解析
今天就到这吧,明天再写
本文简要介绍了IPXE环境的部署,包括DHCP、TFTP和HTTP服务器的配置,并提到了IPXE支持的网络协议。重点讲解了Virtio 1.0虚拟化网卡驱动的IO流程,强调了IPXE在安装系统时的速度优势。
5263

被折叠的 条评论
为什么被折叠?



