大家好,又见面了,我是你们的朋友全栈君。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。 PXE协议的成功运行需要解决以下两个问题: 既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置; 通过什么协议下载Linux内核和根文件系统 对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。 至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。 这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。 工作过程 在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。 PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。 步骤 有了前面的背景知识,接下来就可以正式操作了,下面按照顺序给出了操作步骤: 配置DHCP Server 选用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的内容如下:
option space PXE; 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; # At least one of the vendor-specific PXE options must be set in # order for the client boot ROMs to realize that we are a PXE-compliant # server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM # that we can’t provide multicast TFTP (address 0.0.0.0 means no # address). option PXE.mtftp-ip 0.0.0.0; # This is the name of the file the boot ROMs should download. filename “pxelinux.0”; # This is the name of the server they should get it from. next-server 192.168.0.1; } 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 192.168.0.255; option routers 192.168.0.254; option domain-name-servers 192.168.0.1,192.168.0.2; option domain-name “mydomain.org”; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.100; } host q10 { hardware ethernet 00:00:F0:6B:38:5B; fixed-address 192.168.0.22; }
dhcpd.conf配置文件中几个关键部分说明如下:host q10{…}定义了笔记本Q10网卡的MAC地址与IP地址的对应关系,表明DHCP Server为Q10分配一个固定的IP:192.168.0.22;filename “”指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置请读者参考DHCP Server的手册。
配置TFTP server
选用tftp-hpa,TFTP Server的配置文件是/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 disable = no per_source = 11 cps = 100 2 }
这里制定了/tftpboot为TFTP Server的根目录位置。
配置bootstrap
bootstrap文件在dhcpd.conf中被指定为pxelinux.0文件,放置在/tftpboot。Linux内核以及Linux根文件系统也放置在/tftpboot。pxelinux.0在执行过程中,要读配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目录下。由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以要通过不同的配置文件名来区分出不同的PXE Client的需求。比如一个PXE Client由DHCP Server分配的IP地址为192.168.0.22,那么相对应的配置文件名为/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016为IP地址192.168.0.22的十六进制表示)。如果找不到,就按照顺序C0A80016->; C0A8001->; C0A800->; C0A80->; C0A8->; C0A->; C0->; C->;default查找配置文件。
/tftpboot/pxelinux.cft/C0A80001配置文件的具体内容如下:
DEFAULT install PROMPT 1 LABEL install KERNEL vmlinuz APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
此配置文件指定了Linux内核以及根文件系统的名称,并给内核传递了一些参数,其中ramdisk_size参数要非常注意,它指定Linux内核启动后建立ramdisk的大小,如果设置太小,Linux的安装过程就可能无法进行。
制作Linux内核/根文件系统
因为需要通过网络安装,所有选择Redhat Linux 8.0安装盘(disk #1)中E:imagesbootnet.img(光驱的盘符为E:)。bootnet.img包括Linux内核、Linux根文件系统(有安装程序在内)。用bootnet.img制作一张引导软盘,方法在DOS命令行运行E:dosutilsrawrite E:imagesbootnet.img,根据提示制作。制作完毕后,将引导软盘中的vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到Linux Server的/tftpboot下。
启动DHCP Server/TFTP Server
在Linux Server上,运行service dhcpd start和service xinetd restart。
启动Q10
Q10加电后,在出现Samsung公司徽标时,在左下角会提示用户按F12进入网络引导。按F12后,Q10进入网络引导过程。首先通过DHCP Server获得了IP地址,然后下载并执行bootstrap文件pxelinux.0;在执行中,读入配置文件/tftpboot/pxelinux.cfg/C0A80016。此时屏幕上出现boot:,敲入install,就进入了Redhat Linux 8.0的网络安装界面,一切OK!
计算机的网卡中必须要有BootROM–PXE Client。同时,PXE协议也可作为无盘Linux技术,用于引导放置在远程的Linux。实际上,只要根据需要,在Pxelinux的配置文件的APPEND选项中,为Linux内核传进需要mount的文件系统的位置参数即可。 PXE无盘站的启动原理简介:
当客户机启动后,通过网卡bootrom程序广播一个引导请求帧,包含客户机的网卡号如:00E04C500234。 服务器接到请求帧便调用BOOTP(boot protocol/启动协议)或者DHCP( Dynamic Host Configuration Protocol/动态主机配置协议),分配给工作站端的机器名字、IP地址、服务器端的IP地址、以及启动时的映像文件等。工作站分配到IP地址后,利用服务器提供的TFTP ( Trivial File Transfer Protocol/小文件传输协议),接收到完整的启动文件后,就开始执行文件中的启动程序,将执行点转向启动块的入口,启动工作站。接着是不同的OS有不同的引导方式了,要启动无盘win98,需要往服务器上上传win98文件,并制作启动影像文件,工作站才能读取win98的启动影像文件,进一步读取win98安装目录,启动win98。
二、安装PXE无盘站所需的软件:
根据以上的原理解释,我们知道启动无盘win98需要网卡PXE bootrom程序(写入主板bios,如果网卡已有PXE bootrom则不需要),DHCP服务器软件,PXE服务软件,TFTP服务软件,工作站上传工具,当然,还要有WIN98操作系统软件。 我筛选的软件:8139网卡写入主板的bootrom程序8139pxe.lom,cbrom606.exe,awdflash.exe,Vicomsoft DHCP Server,3COM Dabs101(包含TFTP服务与PXE服务等),litenet115上传工具,Win98se操作系统,litenet所需英文win98软件包(如果有英文win98则忽略)。
三、安装PXE无盘站所需的硬件:
如果只是做实验,硬件只需要两台普通的能装WIN98的PC电脑(含网卡并联网)。 我的试验环境: 服务器:k6-2-350, 128m,硬盘46G Ibm 7200转,8139网卡 工作站(一台):C333, 主板via691(Award Bios),64m,tnt2 m64/16m显卡, 4235声卡,8139网卡 联网方式:双绞线直连
四、服务器端软件安装及配置
1、普通方式安装WIN98操作系统(如果已经是,忽略这一步),安装好网卡驱动程序、协议及服务(协议可以安装IPX/SPX兼容协议,NETBEUI,TCP/IP,Microsoft 网络上的文件与打印机共享)。
2、在“TCP/IP属性”中,指定IP地址,例如:
IP地址:192.168.0.1 子网掩码:255.255.255.0 默认网关:192.168.0.1
3、假定计算机名称为:pxeserver,工作组名为pxedomain。
4、安装3Com Dabs,序列码为:0111151111111111,安装类型:SERVER ,可使用缺省路径即C:Program Files3ComDynamicAccess boot services。 运行开始菜单中“程序”——3Com Boot Services中的PXE Server,如果在打开3COM PXE对话框时出现警告框,请点击“是”跳过。在3COM PXE Server对话框的Options标签中去掉“Proxy DHCP”前面的勾,在“File”菜单中的“Open Boot File”选中C:Program Files3ComDynamicAccess boot services中的Bootptab,然后点击“打开(O)”按钮退出。
5、安装Vicomsoft DHCP Server并运行,在菜单中的“Network”下的“DHCP Setup”中的“Boot Server IP”设定为192.168.0.1,“Boot File”设定为C:Program Files3ComDynamicAccess boot serviceswin98.pxe (3Com Dabs中的启动文件路径,win98.pxe的制作方法见下文),在菜单中的“Ports”下的“New Port”中把“Ip Address”由缺省的192.168.181.254改为192.168.0.1,在“Router Address”中填入“192.168.0.1”(此为工作站网关),点OK确定退出。如果需要用sygate之类的软件共享上网,还需要在菜单中的“Edit”下的“Preferences”中的“Network”选项中设定“DNS Addresses”为192.168.0.1,“Default Domain Name”设定为pxedomain。
6、在服务器上建立一个文件夹“pxeboot”并设为完全共享,在PXEBOOT文件夹下,为各用户建立个人目录并完全共享,例如:user01、user02、user03……
五、工作站软件安装上传及设置
1、 在有盘工作站上正常安装Win98并安装好需要的应用软件,假定为缺省安装路径c:windows,安装好网卡驱动程序、协议及服务,协议可以安装IPX/SPX兼容协议,NETBEUI,TCP/IP,并且可以安装Microsoft 网络上的文件与打印机共享(注意这里与NT下的PXE-PDK无盘不同),将网络登录设置为“Microsoft友好登录”,设定计算机工作组为pxedomain。
2、 复制实模式下驱动程序 将keyb.com、ndishlp.sys、net.exe、net.msg、protman.dos、protman.exe、protocol.ini、RTL8139.sys、rtsnd.dos、snapshot.exe复制到c:Windows目录下,全部替代;将第一版的ndis.vxd复制到c:WindowsSystem 目录下,这里可用提供的e98files.exe解压到Windows文件夹中。
如果不知道还需要复制什么文件,可以运行litenet中的instnic.exe看提示一一复制。
3、 运行litenet115安装程序setup.exe,出现“Step 0”界面,单击“Next”。
4、 关闭“license.txt”文本,单击“Yes”按钮,出现“Step 1”界面,在“NetBIOS Server Name”文本框中输入服务器名,如pxeserver。在“NetBIOS Share Name”文本框中输入共享目录名,如pxeboot,单击“Next”。 出现“Comfirm”对话框,要求驱动网卡实模式,单击“Yes”,出现“Real Mode Net”对话框,在“Nic Type”选择框中选取“RTL8139”,单击“Install”,而后单击“Finish”。
5、 出现“Step 2”界面,单击“Next”, 出现“Step 3”界面,提示Windows目录、System目录、TEMP目录位置,若无误则单击“Next”。
6、 出现“Step 4”界面,在“Location of MS Windows files”文本框中,输入英文版的Win98安装文件所在路径(其实只需要输snapshot.exe所在目录就行,可能还需要base4.cab,如果已经拷贝了e98files到c:windows,则只需输入c:windows即可),单击“Next”。
7、 出现“Step 5”界面,按默认值设置,单击“Next”。 出现“Comfirm”对话框,单击“OK”,出现另一对话框,选择“No”,使工作站自动登录,再次出现对话框,提示计算机是否重启,选择“Yes”。
8、 重启出现“Step 6”界面,放入一张质量较好的软盘,用于制作启动映象盘,单击“Next”,出现格式化对话框,将其全面格式化,并可选中“复制系统文件”。
9、 出现“Step 7”界面,制作引导软盘,单击“Next”,复制相关文件。
10、 出现“Step 8”界面,系统提示安装Litenet实用工具,按默认值设置,单击“Next”,再三次单击“Yes”。
11、 出现“Step 9”界面,单击“Next”,再单击“OK”,出现“Synchroniaer”界面,选择“From Local Driver”,如果是第一次上传,单击“Complete Copy”(完全上传),开始上传文件。 上传完成后,系统自动检测WIN98SE,若为SE则提示你替换NDIS.VXD或运行FTuner进行PATCH,此处有个选项说是否建立虚拟盘,可以去掉前面的勾以节省工作站内存。
12、 出现“Step 10”,单击“Finish”完成。
13、 上传文件后,在服务器端作以下改动: 1) 拷贝服务器或工作站中c:windowssystemsysdm.cpl到共享文件夹中的windowssystem中如D:pxebootwindowssystem中(解决工作站打不开控制面板的系统属性问题);
2) 进入PXEBOOTWINDOWS文件夹,将3COM DABS安装目录中的FREEMEE.COM拷贝到此目录下, 找到并打开USERCMD.BAT做如下修改: 将QRESTALL命令前的rem去掉(可不改),并在其下添加以下一行: c:windowsfreemem.com (解决作站运行到最后一步时,光标在左上角闪动几秒种后重启或起动到win98的蓝色界面, 出现鼠标后定住或重启的问题) 在WIN.COM命令之前插入以下面这条语句: QVMEM S: %SERVER% %USERNAME% (设定虚拟盘符)
3) 找到并打开SYSTEM.INI,在[386Enh]小节添加以下三条语句: PagingDrive=S (S为前面用QVMEM映射的虚拟盘符) MinPagingFileSize=65535 MaxPagingFileSize=65535 这样无盘WIN98就可以使用虚拟内存了。如果工作站运行游戏或其它软件出现内存不足提示,可以适当把值设大!
4)为了屏蔽启动信息: 在PxebootwindowsUsercmd.bat第一行加入ctty con(生成软盘中的autoexec.bat也要做相应修改,见下文)
14、修改生成软盘中的文件:
1) 如果不能同时启动多台工作站,有的工作站启动的时候死机,将RANDELAY.EXE文件复制到A:WINBOOT 目录下,在A:WINBOOTSTARTNET.BAT中的QUALCNX命令前加入RANDELAY 5 60。
2)为了屏蔽启动信息: 修改autoexec.bat,加入: @echo off cls ctty nul … …
15、 在服务器端“PXEBOOTWindows”目录下,找到Netnames.db文件并打开它,删除其所有信息,输入机号及网卡地址,例如: user01 00E04C500234 user02 00E04C500235 …… …… 若不知道网卡地址,Litenet可自动添加网卡记录到Netnames.db文件中。其方法为:在工作站启动出现: Enter the name for this computer (Hardware Address 00E04C500234): 时,输入机号,例如:user01。系统提示: Confirm that Hardware address 00E04C500234 is assicpned the name user01(Y/N) Y 系统提示重启计算机,注意此时只能修改一台,不然会出现文件共享出错。
16、给工作站加入PXE bootrom启动代码,如果网卡有PXE启动芯片则跳过这一步,如果没有,重新启动计算机并切换到MS-DOS方式: 1)读出BIOS文件 AWDFLASH /sy a b.bin 保存为b.bin,有找不到源文件的提示属于正常现象。 把b.bin复制一份以便可以恢复原来的状态 2)写8139pxe.lom到b.bin里面 CBROM606 b.bin /pci 8139pxe.lom 8139pxe.lom大小为52k,是专用写入主板Bios的,不要错把写入网卡的写入bios! 3)把b.bin写入主板BIOS AWDFLASH b.bin /py /sn /r 4)OK! 不成功的原因可能有以下几个: 1)BIOS容量不够用 CBROM b.bin /d 找REMAIN COMPRESS CODE SPACE一行,看是否够64KB不够的话可以用CBROM删除一些LOGO之类的东西. 2)bios类型是AMI的或不是标准AWDARD的,比如华硕和皇朝的一些主板就都不行,但是可以用其它工具,这里不一一介绍了。
六、建立并配置WIN98无盘启动影像文件
1、运行服务器上开始菜单的“程序”——“3Com Boot Services”——“Boot Image Editor”,按提示执行“下一步”直到“完成”,并出现3Com Boot Image Edito对话框。
2、将安装工作站litenet115生成的软盘插入服务器软驱,选择3Com Boot Image Editor窗口中Create a TCP/IP or PXE image file选项,在“image file name”栏中使用缺省路径并加入文件名win98.img:“C:Program Files3ComDynamicAccess boot serviceswin98.img”,选中options中的Writeable和Pre-OS两个选项,点击”ok”按钮建立启动影像文件。
3、选择3Com Boot Image Editor窗口中的Create a PXE menu boot file选项,点击”add”图标进入Edit Entry对话框,在image file文本框中输入win98.img,然后点击”ok”按钮返回Create menu file对话框,在此对话框中点击”save”按钮进入Save menu file对话框,在文件名文本框中输入win98.pxe,点击“OK”,然后点击“Save”保存返回,退出3Com Boot Image Edito对话框。
4、运行开始菜单中“程序”——“3Com Boot Services”——“Bootptab Editor”,在出现的对话框中选择“PXE”、“Open an existing”单选按钮,并在下面的文本框中输入C:Program Files3ComDynamicAccess boot servicesBootptab,确定后进入BOOTPTAB Editor窗口。在窗口中选择”Edit”菜单下的”Add Host”菜单项,进入Edit Host窗口。在“Name”中输入 “user01”,在“Node”中输入网卡的MAC地址如:00E04C500234,在“Image”文本框中输入win98.pxe。点击“确定”按钮返回BOOTPTAB Editor窗口。选择“File”菜单下的“Save”保存设置,然后关闭BOOTPTAB Editor窗口。
七、在服务器上运行Vicomsoft DHCP Server,并在Status View窗口中点击按钮使其启动服务(按钮状态为On),运行3Com TFTP Server并使其启动服务(状态为 Server started)。可以不运行3Com PXE Server。
八、关闭工作站,取掉工作站的硬盘、软驱、光驱。 重启进行工作站主板Bios设置,在STANDARD CMOS SETUP中,将硬盘设置为无,将软驱设置为1.44M(软驱设置为无会重启),在BIOS FEATURES SETUP中把Boot Up Floppy Seek(开机软驱寻道)设为Disable,有些主板还需要设置Boot First Lan(或者相似选项):Enable。 重新启动,按Shift F10键出现PXE启动设置框,选择 Network Boot Protocol:PXE Boot Order: Int 19h Show Config Message: Disable (不出现提示信息,Enable为有提示信息) 按F4保存退出。
九、安装完成,工作站启动进入无盘Win98。
十、优缺点 优点: 1、不用安装winnt server4.0 service park 6或win2000 server,减少安装时间,如果使用正版,不用买昂贵的软件及服务协议; 2、没有cannot find or load required file krnl386.exe问题; 3、没有tnt系列显卡16色问题; 4、没有添加了文件和打印共享就出错的问题; 5、没有修改工作站时间死机问题; 6、没有无法正常关机与重启的问题;
缺点: 1、win98做服务器资源分配效率低,比如: 工作站启动时,服务器偶尔停顿; 工作站运行大型游戏如红警2、diablo2容易死机(不过还好,星际、帝国没问题); 工作站数量不能太多。 此缺点无法弥补,可能使用高配置的电脑做服务器会好一点点(期望值别太高哟)。 2、工作站用户权限设置功能弱,容易造成系统被破坏。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148088.html原文链接:https://javaforall.cn