[这个贴子最后由雪狐在 2003/09/26 08:44am 第 1 次编辑]
Windows2000server 中安装PXE无盘98
W2K服务器的设置。
1、W2K服务器的网络配置。
在W2K服务器中,我们必须有以下协议:
Ipx/Spx协议;
NetBios协议;
NetBuei协议;
Tcp/Ip协议;
2、打开路由与远程服务(非常重要,我反复试验过)!!!!
3、其它设置与在NT服务器下做无盘98一样。(装好W2K服务器后一定要升级为域控服务器!!!务必!!!!)。
有盘工作站的网络配置。
在有盘工作站的WIN98中,安装的协议要与服务器的一致(见上)。
要在microsoft网络用户的属性中设为登录到NT域。
总之,在有盘WIN98环境中的保护模式下能够登录到W2K服务器 。
实模式下最小注册表的生成。
在下面我粘贴了我已生成的最小注册表的REG文件(但要注意,我的网卡是8029的,我的W2K服务器的域名是LDLJLZW,服务器名是SERVER,你们必须修改成你们对应的)。
REGEDIT4
[HKEY_LOCAL_MACHINE]
[HKEY_LOCAL_MACHINE\Software]
[HKEY_LOCAL_MACHINE\Software\Microsoft]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion]
"SystemRoot"="C:\\WINDOWS"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup]
"WinBootDir"="A:\\WINBOOT"
"WinDir"="C:\\WINDOWS"
"BootDir"="C:\\"
"BootHost"="C:\\"
"OldWinBootDir"="C:\\WINBOOT"
"AppsDir"="C:\\"
"HostWinBootDir"="C:\\WINDOWS"
"MachineDir"="C:\\"
"WinAdminDir"="C:\\WINDOWS"
"SharedDir"="C:\\WINDOWS"
"SysDir"="C:\\WINDOWS\\SYSTEM"
"SourcePath"="C:\\WIN98\\"
"OldWinDir"="C:\\WINDOWS"
"UninstallDir"="C:\\UNINSTAL.000"
"BackupDir"="C:\\UNINSTAL.000"
"SetupTempDir"="C:\\WININST0.400"
"SetupScratchDir"="C:\\WINDOWS\\INF"
"MemphisDetectedLastDrive"="Z"
"Wallpaper"="(无)"
"TileWallpaper"="1"
"Upgrade"=hex:01
"InstallClasses"="System,hdc,fdc,CDROM,PCMCIA,MultiFunction,SCSIAdapter,Adapter,USB,HID,Mouse,Keyboard"
"ConfigPath"="C:\\WINDOWS\\config"
"MediaPath"="C:\\WINDOWS\\media"
"ICMPath"="C:\\WINDOWS\\SYSTEM\\COLOR"
"OLSSrcPath"="C:\\WIN98\\OLS"
"SetupBinary"="sucatreg.exe"
"InstallPathType"=hex:08,00,00,00
"lastdrive"="Z"
"OldDosDir"="C:\\WINDOWS\\COMMAND"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\WinBootDir]
"DevDir"="a:\\winboot"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network\Real Mode Net]
"transport"="*nwlink,*netbeui,ndishlp.sys"
"netcard"="pcind.dos"
"LoadRMDrivers"=hex:00,00,00,00
"preferredredir"=""
"SetupNPath"="C:\\WINDOWS\\"
"StaticDrive"="C,c"
"SetupN"=hex:01
"Transition"=hex:01
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Network]
"HideSharePwds"=hex:01,00,00,00
[HKEY_LOCAL_MACHINE\Network]
[HKEY_LOCAL_MACHINE\Network\Logon]
"username"="LNGUEST"
"PolicyHandler"="GROUPPOL.DLL,ProcessPolicies"
"PrimaryProvider"="Microsoft 友好登录"
"LMLogon"=hex:01,00,00,00
"logonvalidated"=hex:01,00,00,00
"UserProfiles"=dword:00000001
[HKEY_LOCAL_MACHINE\System]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"ComputerName"="lzw"
"Workgroup"="LDLJLZW"
"Comment"="lzw_1"
"StaticVxD"="vnetsup.vxd"
"Start"=hex:00
"NetClean"=hex:01
"MaintainServerList"="2"
"LMAnnounce"="0"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32\NetworkProvider]
"AuthenticatingAgent"="LDLJLZW"
"LogonDisconnected"=hex:00,00,00,00
"Name"="Microsoft Network"
"ProviderPath"="msnp32.dll"
"Description"="Microsoft Network"
"NetID"=hex:00,00,01,00
"CallOrder"=hex:00,00,00,40
"DisableReLogin"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NWNP32]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NWNP32\NetworkProvider]
"GroupFcn"="GROUPPOL.DLL,NWGetUserGroups"
"AuthenticatingAgent"="LDLJLZW"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
"ComputerName"="lzw"
[HKEY_USERS]
[HKEY_USERS\.DEFAULT]
[HKEY_USERS\.DEFAULT\Software]
[HKEY_USERS\.DEFAULT\Software\Microsoft]
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows]
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion]
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer]
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams]
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\0]
"CabView"=hex:5c,00,00,00,02,00,00,00,03,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,\
ff,ff,ff,ff,ff,ff,ff,30,00,00,00,2c,00,00,00,d0,01,00,00,b0,01,00,00,01,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,76,04,00,00,07,00,00,00,e0,ff,84,\
59,d4,28,cf,11,ae,66,08,00,2b,2e,12,62,01,00,00,00,00,00,00,00
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\8]
"CabView"=hex:5c,00,00,00,02,00,00,00,03,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,\
ff,ff,ff,ff,ff,ff,ff,30,00,00,00,2c,00,00,00,d0,01,00,00,b0,01,00,00,01,00,\
00,00,00,00,00,00,90,51,00,00,00,00,00,00,b6,28,f7,bf,07,00,00,00,e0,ff,84,\
59,d4,28,cf,11,ae,66,08,00,2b,2e,12,62,01,00,00,00,00,00,00,00
大家必须做以下修改:
1、
"netcard"="pcind.dos"
这一行中的pcind.dos是8029在实模式下网卡驱动程序的文件名,大家必须修改为与自己网卡对应的实模式下的驱动程序的文件名。
2、
"ComputerName"="lzw"
"Workgroup"="LDLJLZW"
"Comment"="lzw_1"
这三行分别指明了工作站的计算机名、工作站的组名、工作站的计算机描述。大家特别要注意工作站的组名要改为W2K服务器的域名。
3、
"AuthenticatingAgent"="LDLJLZW"
这一行指明了工作站登录到NT域的域名,大家要特别注意改为自己对应的W2K服务器的域名。
在这个最小注册表的REG文件中,有两行这样的"AuthenticatingAgent"="LDLJLZW" ,要注意都做修改。
最后再用REGEDIT/L:SYSTEM.DAT /C MINI.REG生成最小的注册表文件SYSTEM.DAT。
cannot find or load required file krnl386.exe问题的解决。
经过一晚上的跟踪调试,我终于发现了这个问题的原因。是因为实模式转到保护模式的时候暂时脱了网,而正好这时候需要初始化几个比较重要的VXD模块,而这几个模块正好与保护模式的联网相关,所以,在保护模式下不能正常地联网而不能完成krnl386.exe的初始化。解决的办法是修改注册表。只要大家把我以下的reg文件导入到注册表中即可。(这是在W2K服务器环境下这个问题的原因,至于NT的,我从来没遇到过,我想大概也是这个原因吧。)。
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\TCPIP]
"StaticVxD"="vtdi.386,vip.386,vtcp.386,vdhcp.386,vnbt.386"
"Start"=hex:00
其实从上面可以看到这五个文件,是与TCP/IP协议有关的几个VXD模块。上面我这样做的原理是让在实模式转到保护模式而没有脱网之前让这几个模块首先静态地初始化,让它安全地在这个转化过程中能够初始化而保证这个保护模式联网的进行。
当然在这个转换过程中,除了要初始化这几个模块之外,还有一个非常重要的文件必须加载,这个文件就是保护模式下的网卡驱动程序。但这个文件不是VXD模块,我们不能用这种静态的初始化方式来加载它。只好用建立虚拟盘的方式来解决这个问题。也就是无盘98第二版中要生成2个虚拟磁盘的原因。你们注意到没有,第一个虚拟盘(64K)的盘符是C盘,而我们在实模式联网之后把那个共享目录映射到了C盘,此时,这个虚拟盘的C盘是不见了的,但在实模式转到保护模式的转换过程中,由于暂时脱网,此时这个虚拟C盘又可见了。而我们的做法是在实模式没有联网之前首先在这个虚拟C盘建立了一个WINDOWS目录,并且在这个WINDOWS目录下建立了一个SYSTEM目录,然后把保护模式下的网卡驱动程序先拷到SYSTEM目录下。所以,在这个暂时脱网的时候,它会自动地到这个虚拟C盘加载这个保护模式的网卡驱动程序,所以能够正常地加载这个驱动程序,度过难关。(当然要牺牲64K的扩展内存,被这个虚拟盘白白占用,但除此之外没有别的好的方法。至于第二个虚拟盘嘛,我们可以不做了)。详细做法见我以下的批处理文件。至于有人说第二版做无盘98时要把NDIS.VXD文件换成第一版98的,我看不至于了。
相应的批处理文件及CONFIG.SYS文件详见如下:
1、 CONFIG.SYS文件:
DOS=HIGH,UMB
DEVICE=A:\HIMEM.SYS /TESTMEMFF /V
DEVICE=A:\EMM386.EXE NOEMS /Y=C:\WINDOWS\EMM386.EXE /V
DEVICE=A:\IFSHLP.SYS
DEVICEHIGH=A:\RAMDRIVE.SYS 64 /E
REM DEVICE=A:\BPUTIL.SYS -F
REM DEVICE=A:\BPUTIL.SYS -X
SHELL=A:\COMMAND.COM A:\ /P
STACKS=9,256
2、 AUTOEXEC.BAT文件:
@echo off
cd \winboot
call setvars.bat
startnet.bat
3、 SETVARS.BAT文件:
SET WINDIR=C:\WINDOWS
SET DRIVE=C:
SET NETCARD=PCIDN.DOS
SET SERVER=SERVER
SET SHARE=WINDISK
CALL A:\WINBOOT\TUNING.BAT
这个文件必须做以下修改:
1、 SET NETCARD=PCIDN.DOS这一行中的PCIDN.DOS必须改为与自己对应的网卡实模式下的驱动程序文件名。
2、 SET SERVER=SERVER这一行指明了W2K服务器名,必须改为与自己对应的。
3、 SET SHARE=WINDISK这一行指明了共享目录名,必须改为与自己对应的。
4、 TUNING.BAT文件:
@ECHO OFF
IF EXIST %WINDIR%\SYSTEM\RTL8029.SYS GOTO COPY_END
MD %WINDIR% > NUL
MD %WINDIR%\SYSTEM > NUL
COPY A:\WINBOOT\RTL8029.SYS %WINDIR%\SYSTEM > NUL
:COPY_END
@ECHO ON
这个文件必须做以下修改:必须把其中的RTL8029.SYS文件改为与自己对应的网卡保护模式下的驱动程序文件名。
5、 STARTNET.BAT文件:
@ECHO OFF
SET COMSPEC=A:\COMMAND.COM
SET TEMP=A:\WINBOOT
SET NETBUFF=140
LH QUALCNX
SET PATH=%WINDIR%;%WINDIR%\COMMAND;%WINDIR%\LITENET
CALL %TEMP%\USERNAME.BAT
LH QNETNAME
CALL QNBNAME.BAT
SET TEMP=%DRIVE%\%USERNAME%
SET TMP=%TEMP%
SET HOME=%TEMP%
%DRIVE%
CD %HOME%
SET COMSPEC=%WINDIR%\COMMAND.COM
LH QUALREG %HOME%
MD %HOME%\TEMP > NUL
SET TEMP=%HOME%\TEMP
SET TMP=%HOME%\TEMP
SET COMSPEC=%WINDIR%\COMMAND.COM
SET WINBOOTDIR=%WINDIR%
%WINDIR%\USERCMD.BAT
在这个文件中,特别要注意的是SET NETBUFF=140这一行中指明了这个实模式下联网的缓冲内存数。默认是124K,用我的注册表文件必须改为140K,但如果运行到这一行死机的话就可以再加大这个数,在我机子上140K是不会死机的,但124K、130K我都试了,死机。务必注意!!!
6、 USERCMD.BAT文件:
PATH %PATH%;C:\WINDOWS\LITENET
QNetName.exe
call %TEMP%\QNBName.bat
QUserMan %HOME%
rem QSetBD %DRIVE%
if exist %WINDIR%\SYSTEM\TweakUI.CPL if exist a:\winboot\qautolog.reg regedit a:\winboot\qautolog.reg
if exist %HOME%\PATCHED.REG goto notchange
QPATCH C:\WINDOWS\CHN.REG %HOME%\PATCHED.REG
regedit %home%\PATCHED.REG
:notchange
QRestAll
QVMEM S: %SERVER% %USERNAME%
REM choice /C:YN /T:Y,03 Hit N and Ctrl-C not to launch Windows (stop the batch)
REM if errorlevel 2 pause
%windir%\win.com
我做好了的软盘的目录如下:
1、 根目录如下:
Volume in drive D has no label
Volume Serial Number is 0DEC-2654
Directory of A:\
.
12-18-00 19:47 .
..
12-18-00 19:47 ..
WINBOOT
12-18-00 19:47 WINBOOT
AUTOEXEC BAT 56 03-07-99 13:12 AUTOEXEC.BAT
COMMAND COM 94,292 05-05-99 22:22 COMMAND.COM
EMM386 EXE 125,495 06-19-98 20:01 EMM386.EXE
CONFIG SYS 264 03-07-99 13:37 CONFIG.SYS
HIMEM SYS 33,191 06-19-98 20:01 HIMEM.SYS
IFSHLP SYS 3,708 06-19-98 20:01 IFSHLP.SYS
MSDOS SYS 129 09-28-00 4:16 MSDOS.SYS
RAMDRIVE SYS 12,663 06-19-98 20:01 RAMDRIVE.SYS
1 0 12-20-00 20:35 1
9 file(s) 269,798 bytes
3 dir(s) 2,036.13 MB free
2、 WINBOOT目录如下:
Volume in drive D has no label
Volume Serial Number is 0DEC-2654
Directory of A:\WINBOOT\
.
12-18-00 19:47 .
..
12-18-00 19:47 ..
PROTOCOL INI 259 03-07-99 13:09 PROTOCOL.INI
SETVARS BAT 126 03-07-99 13:03 SETVARS.BAT
STARTNET BAT 480 03-07-99 13:51 STARTNET.BAT
PROTMAN DOS 22,810 06-19-98 20:01 PROTMAN.DOS
PCIND DOS 16,507 10-19-00 16:06 PCIND.DOS
NET EXE 356,134 09-22-00 19:46 NET.EXE
PROTMAN EXE 14,952 06-19-98 20:01 PROTMAN.EXE
QUALCNX EXE 33,462 12-04-00 10:50 QUALCNX.EXE
RTL8029 SYS 26,112 05-05-99 22:22 RTL8029.SYS
SNAPSHOT EXE 6,122 05-11-98 20:01 SNAPSHOT.EXE
NET MSG 76,234 01-29-96 1:38 NET.MSG
NDISHLP SYS 6,140 06-19-98 20:01 NDISHLP.SYS
KEYB COM 19,927 06-19-98 20:01 KEYB.COM
KEYBOARD SYS 34,566 06-19-98 20:01 KEYBOARD.SYS
KEYBRD2 SYS 31,942 06-19-98 20:01 KEYBRD2.SYS
USERNAME BAT 60 03-07-99 13:55 USERNAME.BAT
TUNING BAT 180 03-07-99 13:02 TUNING.BAT
QNBNAME BAT 37 03-07-99 13:55 QNBNAME.BAT
2 0 12-20-00 20:36 2
19 file(s) 646,050 bytes
2 dir(s) 2,036.13 MB free
好吧,大的过程就是如此吧。
我之所以选中W2K而不选择NT做服务器,是基于以下几个原因的:
1、 W2K的即插即用性能好一些,如果在这台机器上装的W2K在另台机器上还可以继续使用,但NT不能够。
2、 W2K像WIN98一样有网络共享的内嵌代理服务器,如果做无盘网吧的话,不要再另装代理服务器了。
3、 W2K的界面比NT好,更容易适应。
他还有很多好处我就不一一多说了,我想大家用了以后就会有这种感觉。
当然,W2K有它的不足的地方,最明显的是它还不太成熟,有太多了BUG,但我想,它将是WINDOWS系列的趋势和代表,不久的将来,我相信它会更走于成熟。
再谈谈我对无盘WIN98的看法:
如果我们做过无盘95的话,我想大家都怀念它那种全自动化的功能,象不管是什么网卡,不管是什么机器,只要我们做好了一个硬盘,挂上去就可以使用了。当然这一方面,在服务器方面,我们使用的是NOVELL网,它对硬件的要求比较低,不是图形界面的,所以,做好了之后在任何机器上都可以使用。另一方面,客户端是95的,它支持网络版,所以它装好之后,对网络的适应性更强。能够自动检测硬件,所以只要我们做好软件,就可以了。至于硬件它可以自动检测,这是它能够做到自动化的根本原因。
当然这种无盘98的做法从另一方面给了我们很大的启示,但要把它做到全自动化,还有一段过程。还有很多问题等待我们去解决。但我想,只要我们大家努力,我相信这都能解决的!!!
有待我们解决的问题:
1、 怎样在工作站端直接建立目录并共享。
2、 怎样适应不同配置的机器像无盘95一样。
3、 怎样提高无盘98的速度。
还有好多好多,暂时想不到!!!:)
但这一切都好像与注册表有关,注册表是WINDOWS系列的灵魂,一切奥妙都在其中,希望大家多多建议建议 |