扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
原理归纳:
远程客户端计算机启动,由于BIOS设置了网卡启动,所以网卡PXE ROM中的程序被调入内存执行。首先,客户端在网络中寻找DHCP服务器,然后请求一个IP地址;同时DHCP服务器联系到TFTP服务器为此客户端发送一个bootstrap(引导程序)。客户端收到bootstrap(文件pxelinux.0)后执行,bootstrap会请求TFTP传送bootstrap的配置文件(pxelinux.cfg)。收到后读配置文件。根据配置文件内容和客户情况,客户端请求TFTP传送内核映象文件(vmlinuz)和根文件系统文件(initrd.img)。最后启动内核。这就是一个完整的pxe构建过程。然而要使网卡启动后再继续网络安装系统,则最后还需要FTP服务将系统所需安装文件放置FTP相应目录中进行传输安装。
下面用图形来表述原理:
二:Linux安装实现步骤
这里实现中所使用的平台为RHEL4,您可以在FC系列、RH9、CenOS中都可以实现。
1、配置DHCP服务器
配置DHCP服务器主要用途是为了能够给客户端分配IP地址,从而让客户端与TFTP及FTP进行联系
1.1 DHCP的配置文件
DHCP的配置文件的位置在/etc目录下配置文件的名称为dhcpd.conf。如果您的系统中不存在dhcpd.conf同时您又确认您确实安装了DHCP程序,那么您可以手动建立dhcpd.conf文件。
1.2 配置文件的内容:
option space PXE; #DHCP对PXE的TFTP(琐碎文件传输协议)应答选项
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
filename "pxelinux.0"; #指定客户端所需要的的bootstrap(引导器)文件名
next-server 172.16.168.2; #指定TFTP服务器的IP地址
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 172.16.1680.255;
option routers 172.16.168.254;
option domain-name-servers 172.16.168.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 172.16.168.100 172.16.168.150;
}
上述所指明的pxelinux.0为网络远程安装引导程序bootstrap.其位置在/usr/lib/syslinux目录中。
1.3 启动DHCP服务
#service dhcpd restart
2、配置TFTP服务器
配置TFTP服务器主要用途是为了能够给客户端传送bootstrap程序[即pxelinux.0],这样才能够让客户端进行引导加载内核映象文件(vmlinuz)和根文件系统文件(initrd.img)以及启动内核(Kernel)
2.1 TFTP的配置文件
TFTP的配置文件的位置在/etc/xinetd.d目录下配置文件的名称为tftp。
配置内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /tftpboot #指定TFTP的根目录所在位置,允许任何用户可以进行访问
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
在这里主要修改的字段是 disable ,将yes改为no。以打开TFTP服务
2.2 启动TFTP服务
#service xinetd restart
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者