现在许多管理人员在网络管理中,很头疼的问题就是为用户进行安装操作系统。笔者曾在多家企业任职,许多企业为客户端所配置的基本上很少有带CD-ROM并且也不可能任何的客户端都存在着操作系统安装光盘。由此笔者经常发现许多维护人员经常手拿光驱、光盘来为用户重新进行或升级操作系统。

为此笔者为了解决MIS人员的枯燥而又重复的工作曾为任何服务过的企业都建立了Windows远程安装服务器和Linux远程安装服务器。在这里笔者主要和各位电脑爱好者探讨一下关于Linux方面的远程安装过程及实现。


一:Linux安装工作原理

众所周知,在安装过程中Linux首先需要一个引导程式来让安装光盘启动,再实行配置和安装。但现在转化为远程网络安装那么就需要我们的安装程式能够远程地通过网络传送给客户端。因此在搭建远程Linux安装服务器时候首先要值得注意以下几个问题:

1.远程客户端属于裸机。在这里所定义的裸机是除了标准硬件之外没有任何的操作系统和软件程式。当然也能够拥有操作系统或是软件,之所以告诉大家是裸机是主要说明最简单的一种思维方式。

2.远程客户端必须能够支持网络启动。在这里所说明的问题是远程客户端为了能够发送安装请求必须能够通过网络的方式进行,将安装请求发送给服务器端。因此客户端必须存在网卡,并且网卡上拥有PXE ROM[预引导执行环境]芯片而且BIOS能够支持网络启动。

3.在远程电脑启动后将会出现初始化配置,此时因客户端没有进入操作系统或处于在裸机状态下,不可能绑定我们所熟悉TCP/IP地址或其他网络协议地址。因此他们之间的沟通必须通过IP地址自动分配服务----DHCP来为客户端进行分发IP地址,从而实现Client-Server端之间的链接和沟通。

4.在远程安装客户端得到IP地址之后,将请求远程安装服务器给客户端一个Linux引导程式以便于引导Linux并在客户端上实现安装界面。但是在TCP/IP协议栈中假如采用TCP协议进行传送服务,那么将会出现著名的TCP三次握手过程,从而导致远程客户端等待超时而无法完成引导过程。因此就需要采用UDP协议进行快速传递,确保远程客户端的引导。因此笔者在这里所采用的程式为TFTP[琐碎文档传输协议]服务作为远程传输服务器传送Linux引导程式的服务器。

5.虽然UDP速度很快速(这是本身结构有关),但是其仍然属于不可靠协议之一不具备纠错、确保数据到达目的地等保障机制,因此在传输大量文档或是大文档时候还是需要采用TCP方式,这样将不会出现因UDP协议传输丢包而导致安装无法进行。

在这里有多种方式供大家选择:
1)NFS[网络文档系统]
2)HTTP
3)FTP等
笔者在这里选择采用FTP方式,主要原因在于FTP的方式比较简单。

因此准备建立远程安装服务器至少需要三个服务:DHCP、TFTP、FTP,三个服务能够再三台不同的电脑上,也能够在同一台电脑上进行实现。

原理归纳:
远程客户端电脑启动,由于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 {

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!