PXE
1. 什么是pxe?
预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
2. pxe的优势是什么?
1. 你现在有1台电脑需要装系统,那么很简单,你拿上一个U盘安装盘插在这台电脑上,然后从U盘启动,之后就可以手动安装系统了;但如果你现在有100台电脑,如果你在拿着一个U盘安装盘一台台安装,那效率肯定是太低了,这个时候PXE就派上用场了。
2. 某公司对信息安全要求比较高,需要使用无盘系统(系统不在本地电脑上,而在公司特定的服务器上),这个时候也需要使用PXE。
3. 你想要一台远程的电脑运行你手上特定的系统,这个时候你就可以在本地布置一个你手上的系统,然后通过PXE启动你本地的系统(这个可能需要额外的支持,比如BMC,因为要远程)。
3. pxe环境的组成?
简化的组成
4. pxe工作的流程
版本一:
1. 服务器将环境搭建好
2. 裸机器选择从网卡启动,此时由于逻机器没有ip,就会在局域网里面广播,问别人要IP。
3. 如果局域网里面有DHCP服务器,收到消息后,就会分配一个IP给逻机器。此时逻机器和DHCP服务器都知道了彼此的Ip,这就为通信奠定了基础。其实,拥有server服务器除了能将ip发给逻机器,还能发送其他内容给逻机器。例如将后续需要安装的文件信息发给裸
机器。
4. 逻机器通过文件信息可以发送我们提前设置好的请求,然后server服务器的apache接收到请求,将指定目录下的文件发送给裸机器,裸机器就拿到了安装系统需要的文件和引导程序,根据引导程序去引导安装对应的系统。
裸机器的网卡一般是Intel公司开发的,具备pxe网络引导模块的,这是个硬件功能,因此启动网卡后,会自动的向局域网的DHCP服务器要IP。
版本二:
1. 客户端从自己的pxe网卡启动,向本网络中的DHCP服务器要IP,并搜寻引导文件的位置,
2. DHCP服务器返给客户机IP以及bootstrap文件的存放位置(该文件一般是放在一台TFTP服务器上)
3. 客户机向本网络中的TFTP服务器索要bootstrap文件。
4. TFTP服务器同意后,客户机下载到bootstrap文件。
5. 客户机获得bootstrap文件后执行该文件。
6. 根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统。
7. 进入安装画面,此时可以选择FTP, HTTP, NFS方式之一进行安装。
5. pxe服务器的搭建
除了3中提供的apache可以搭建共享服务器,通过http请求过去文件,还可以搭建ftp服务,也可以用于需要pxe服务器的主题下载引导程序以及系统文件。
6. 裸机器的启动过程
启动后进入bios,调整启动模式,以 legacy为例
看到pxe选项,选择对应的模式
ATA SSD:系统从固态硬盘启动。
ATA HDD:系统从硬盘启动,大家一般都是用得这种普通硬盘,固态硬盘市场价很贵。
ATAPI CD:系统从光驱启动。
USB CD:系统从外接光驱启动。
USB HDD:系统从外接存储器启动,硬盘,U盘等。
PCI LAN:系统从局域网启动。 图中就是这种模式启动。
选择PXE启动之后进入如下的界面
向局域网广播要ip,下图表明向DHCP服务器要到了IP。
7. 网上实战方法
1. 配置dhcp服务器
由于PXE客户机通常是尚未装系统的裸机,因此为了如服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件的位置。
[root@localhost /]#yum -y install dhcp
[root@localhost /]#vim /etc/dhcp/dhcp.conf
ddns-update-style none;
default-lease-time 21600;
max-lease-time 43200;
option domain-name "benet.com";
option domain-name-servers 8.8.8.8;
subnet 192.168.122.0 netmask 255.255.255.0 {
option routers 192.168.122.1;
option subnet-mask 255.255.255.0;
range 192.168.122.100 192.168.122.200;
next-server 192.168.122.1; # 指定TFTP服务器的地址,告诉客户机,要找bootstrap引导文件就到这里来。这些信息会和ip一起发送给客户机。
filename "pxelinux.0"; # 指定PXE引导程序的文件名
}
2. 配置tftp服务器
TFTP服务的配置文件是/etc/xinetd.d/tftp,RedHat9 默认安装已经生成了该文件
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
注明:这个文件基本上不用改动,但是需要注意的的是server_args= -s /tftpboot这一行,它的含义是将/tftpboot作为root目录,这样在dhcpd.conf中的filename一行就应该写bootstrap的相对路径: filename “pxelinux.0”,这是出于安全方面考虑的.如果你去掉了-s这个参数,那幺就要在filename一行指出bootstrap的绝对路径: filename “/tftpboot/pxelinux.0”.注意,这里-s的内容会因为发行版的内容不同而不同,一般不用改动。
剩下的步骤键链接
实战一总结:
1)网卡的client --->网卡rom---> 寻找dhcp服务器,由/etc/dhcp.conf得到ip和引导程序所在地点
2)有dhcp.conf(引导程序文件名)和tftp的配置(tftp跟路径,里面有引导程序和系统初始化程序),得到引导程序pxelinux启动文件的绝对路径,运行引导程序,读取启动配置文件pxelinux.cfg/default,得到操作系统初始化的两个相关文件
3)选择安装方式
客户端广播dhcp请求——服务器相应请求,建立链接——由dhcp和tftp配置得到ip还有引导程序所在地点——客户端下载引导程序并开始运行——引导程序读取