纯TCP/IP无盘98

1、安装一台Windows 2000 Server服务器,机器名为Server,网络协议中安装TCP/IP协议,设IP地址

为192.168.1.4,不安装IPX协议,并且安装好BOOOTP服务及TFTP服务。设置98共享目录SBS,和用户目

录user01。
2、安装一台Windows 98有盘工作站,安装好TCP/IP协议及IPX协议,不要安装NETBEUI协议。设IP地址

为192.168.1.5,完成后运行REGEDIT,找到如下TCP/IP协议的注册项
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\000x]
其中000x对于不同的安装过程可能为0001或0002等等,只要找到些注册项下有相应的ip地址,记下这

项的内容。
复制以下文件到c:\windows目录:
KEYB.COM、NDISHLP.SYS、NET.EXE、NET.MSG、PROTMAN.DOS、PROTMAN.EXE、NDIS.VXD、

SNAPSHOT.EXE、RMRD.COM、SETMDIR.EXE
复制以下文件到c:\windows\system目录:
QSHOT.VXD、NDIS.VXD
其中KEYB.COM、NDISHLP.SYS、NET.EXE、NET.MSG、PROTMAN.DOS、PROTMAN.EXE、NDIS.VXD是Windows

97中的文件,QSHOT.VXD和SNAPSHOT.EXE是Litenet 中的文件,SETMDIR.EXE要用修改过支持大注册表

的文件。
映射\SERVER\SBS为网络盘E,将C盘所有文件(除了临时文件和WIN386.SWP)复制到E盘。
将网卡的实模式和保护模式的驱动文件找出备用,一般是实模式是一个.DOS文件在c:\windows目录和

保护模式的是.SYS文件在c:\windows\system目录。将注册表文件SYSTEM.DAT USER.DAT复制到服务器

上的USER01目录,在USER01目录中建一子目录NETDRV,将c:\windows\system中的如下文件复制过来。
DC21X4.SYS、VDHCP.386、VIP.386、VNBT.386、VTCP.386、VTDI.386
其中.SYS是保护模式下的网卡驱动,其余的.386文件是无盘启动时所需的TCP/IP驱动文件。
3、修改启动包文件
根目录中USER.REG文件需要根据你安装的有盘98进行修改,USER.REG内容如下:
REGEDIT4
[HKEY_LOCAL_MACHINE\Network\Logon]
“username”=“user01”
“PrimaryProvider”=“Microsoft Network”
“LMLogon”=hex:00,00,00,00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
“ComputerName”=“user01”

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0001]
“IPAddress”=“192.168.1.3”
“IPMask”=“255.255.255.0”
“DeviceVxDs”=“vtdi.386,vip.386,vtcp.386,vdhcp.386,vnbt.386”
“DevLoader”=“*ndis”

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\QSHOT]
“StaticVxD”=“qshot.vxd”
“Start”=hex:00
“NetClean”=hex:01
只要修改
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0001]中的0001为前面

我们记下的有盘98的实际值就可以了。

如果要多台启动则需要修改的文件有AUTOEXEC.BAT和USRE.REG,只要改其中的USER01和IP地址。

WINDOWS目录中要做如下修改:
对于不同的网卡,要删除DC21X4.DOS文件,换成相应的.DOS文件。
修改PROTOCOL.INI文件,文件内容如下:
[TCPIP]
DefaultGateway0=192 168 1 1
NBSessions=6
SubNetMask0=255 255 255 0
IPAddress0=192 168 1 5
DisableDHCP=1
DriverName=TCPIP$
BINDINGS=DC21X4$
LANABASE=0

[nwlink$]
DriverName=nwlink$
Frame_Type=4
cachesize=0
binding=DC21X4$

[ndishlp$]
DriverName=ndishlp$
Bindings=DC21X4$

[protman$]
DriverName=protman$
priority=ndishlp$

[data]
version=v4.10.2222
netcards=DC21X4$,PCI\VEN_1011&DEV_0009

[DC21X4$]
DriverName=DC21X4$
将其中的[data]和[DC21X4$]段改为有盘98中的WINDOWS下的PROTOCOL.INI文件中相应的内容,装把所

有的bindings=DC21X4$ 都改成你的网卡代码。
修改Lmhosts文件,文件内容如下:
192.168.1.4 server
192.168.1.4为服务器ip,server为服务器名,如果此文件不正确,启动时会出现53错误。
制作最小注册表文件SYSTEM.DAT。
在98系统中,修改minireg.txt文件,内容如下:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup]
“WinbootDir”=“a:\Windows”
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\WinbootDir]
“devdir”=“a:\Windows”

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network\Real Mode Net]
“transport”=“*nwlink,ndishlp.sys,tcpdrv.dos,nemm.dos”
“netcard”=“dc21x4.dos”
“LoadRMDrivers”=hex:00,00,00,00
“preferredredir”=“VREDIR”

“Transition”=hex:01

“StaticDrive”=“C,d,f”

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
“ComputerName”=“user01”
“Workgroup”=“xgjx”
“Comment”=“user01”
修改”netcard”=”dc21x4.dos”这句中的网卡驱动名,存盘后重启98按F8进入命令行状态,用以下

命令制作SYSTEM.DAT。
REGEDIT /L:SYSTEM.DAT /U:USER.DAT /C MINIREG.TXT
生成SYSTEM.DAT文件后复制到启动包windows目录中覆盖源文件。
4、最后用mknbi-dos制作成启动包就可以启动纯TCP/IP的Windows 98了。

相关的文件:
wnet.rar (290 KB)

启动包太大了,不能上传,放在我的ftp上了。
ftp://xgjx.vicp.net/boot.rar

的确是好东西。
研究ing……

[TCPIP]
DefaultGateway0=192 168 1 1
NBSessions=6
SubNetMask0=255 255 255 0
IPAddress0=192 168 1 5
DisableDHCP=1
DriverName=TCPIP$
BINDINGS=DC21X4$
LANABASE=0

要起动多台机上面的IPAddress0=192 168 1 5 如何处理呢???
还有LMHOSTS文件AUTOEXEC.BAT和USRE.REG文件如和处理能说明白点吗?

QMX是在客户机下载是自动改变的

这一点的确不好解决,因为引导时已经发过IP了,到TCPTSR处还要再停一下,最好能做个东西能获取DHCP信息,然后PATCH一下PROTOCOL。INI,就会快多了,而且DHCP中还可以定制很多信息给client用。我看人家说etherboot里专门有个中断可以获取这些参数,可惜鄙人水平足够臭,正在努力中,各位也加油啊。


LMHOSTS文件里,只要写上server地址和netbios名字就ok了,如:
192。168。0。1 server

USER.REG里就随您便了,想导入什么信息,写在里面,比如client的IP。

另向PANHH兄请教些问题
我一直对引导过程感到迷糊,因为是丛A引导的嘛,所以A转到C,和
SET %VAR%什么的,难道A的影响就一点都没有了?在ENV里始终是有个winbootdir=a的存在。我始终对这一点含糊。
现在我都不敢想,虽然我作成无数,但完全是在用着我完全不懂的东西,想起这个我就彻底失去信心了,不敢做了。

好象没说明白,我的意思是,引导驱对98究竟有多大和哪些方面的影响,以及如何彻底调换之。

哎呀对了,会不会和GUEST OS有关,我装的是EWIN98 SE,速度不错,也不用替换任何文件,哈哈,就这点好。

华教DOS纯TCP/IP的批处理
帖过,但在这更有用

AUTOEXEC.BAT

@echo off
kdisable
CLS
ECHO Starting MS-DOS …
set SOURCEDISK=a:
path=%SOURCEDISK%\DOS
NPCLIENT.EXE
XMSDSK X: 1200 /y >NUL

set machname=%USERNAME%
set logonacc=%USERNAME%
set logonpass=
set logonpwfile=logonacc.pwl
set logondomain=WORKGROUP
prompt=$p$g

REM ****** Get Ramdrive Letter ******
input /r RAMDRIVE >nul
if not “%RAMDRIVE%”==“” goto GOTRAM
echo
echo *************************************************
echo ** Error! RAMDRIVE could not be found **
echo *************************************************
echo
goto END

:GOTRAM
set temp=%ramdrive%
set tmp=%ramdrive%
copy %sourcedisk%\command.com %ramdrive% >NUL
set comspec=%ramdrive%\command.com

:GOTCARD
unpk -d %sourcedisk%\net.zip %ramdrive%\net >nul

goto %nic%
REM :AMD
REM set NICNAME=PCNTND
REM goto CARDEND

:NE2000
set NICNAME=NE2000
goto CARDEND

:RTL8139
set NICNAME=RTSND
goto CARDEND

:RTL8029
set NICNAME=PCIND
goto CARDEND

:SISNIC
set NICNAME=SIS900
goto CARDEND

:MXNIC
set NICNAME=MXNICF
goto CARDEND

:smiley:M9PCI
set NICNAME=DM9PCI
goto CARDEND

:smiley:LKFET
set NICNAME=FETND
goto CARDEND

:CARDEND
unpk -d %sourcedisk%\netcard.zip %ramdrive%\net %nicname%.dos >nul
unpk -d %sourcedisk%\netcard.zip %ramdrive%\net %nicname%.ini >nul
REM if %NICNAME%==NE2000 if EXIST %sourcedisk%\ne-patch.add copy %sourcedisk%\ne-patch.add %ramdrive%\net%nicname%.ini >nul

%RAMDRIVE%
cd\net
hdosutil -a

echo. > %RAMDRIVE%\net\lmhosts

REM **** create System.ini on ramdrive ****
set sysini=%RAMDRIVE%\net\system.ini
echo [386enh] > %sysini%
echo TimerCriticalSection=5000 >> %sysini%
echo UniqueDosPSP=TRUE >> %sysini%
echo PSPIncrement=2 >> %sysini%
echo. >> %sysini%
echo [network] >> %sysini%
echo filesharing=no >> %sysini%
echo printsharing=no >> %sysini%
echo autologon=yes >> %sysini%
echo username=%logonacc% >> %sysini%
echo workgroup=HUAJIAONET >> %sysini%
echo reconnect=no >> %sysini%
echo dospophotkey=N >> %sysini%
echo lmlogon=1 >> %sysini%
echo logondomain=%logondomain% >> %sysini%
echo preferredredir=basic >> %sysini%
echo maxconnections=8 >> %sysini%
echo computername=%MACHNAME% >> %sysini%
echo lanroot=%RAMDRIVE%\NET >> %sysini%
echo. >> %sysini%
echo [network drivers] >> %sysini%
echo netcard=%NICNAME%.DOS >> %sysini%
echo transport=tcpdrv.dos,nemm.dos >> %sysini%
echo devdir=%RAMDRIVE%\NET >> %sysini%
echo LoadRMDrivers=yes >> %sysini%
echo. >> %sysini%
echo [Password Lists] >> %sysini%
echo %logonacc%=%ramdrive%%logonpwfile% >> %sysini%

copy %sourcedisk%\win.bat %Ramdrive%\win.bat >nul
%ramdrive%
%sourcedisk%\kenable
if Exist %ramdrive%\win.bat %ramdrive%\win.bat
rmrd>nul
:END

WIN.BAT

@echo off
rmrd>nul
path=%ramdrive%\net
net initialize > NUL
netbind > NUL
tcptsr > NUL
LH tinyrfc > NUL
LH nmtsr > NUL
net logon %USERNAME% /savepw:no /y < %RAMDRIVE%\NET\PW>nul
net use c: \%SERVERNAME%%WINSHAREDIR% /y >NUL
net use d: \%SERVERNAME%%USERNAME% /y >NUL
c:
if Exist c:\hjnet.bat c:\hjnet.bat
rem ************************************************
rem ;hjnet.bat
rem @echo off
rem path=%path%;c:\dos
rem set comspec=c:\command.com
rem net use d: \%SERVERNAME%%USERNAME% /y
rem ************************************************
:end

pcind.ini

[network.setup]
version=0x3110
netcard=pcind,1,PCIND,1
transport=tcpip,TCPIP
lana0=pcind,1,tcpip

[PCIND]
drivername=PCIND$

[protman]
drivername=PROTMAN$
PRIORITY=MS$NDISHLP

[TCPIP]
NBSessions=6
DefaultGateway0={%GATE_WAY%}
SubNetMask0={%SUB_MASK%}
IPAddress0={%CLIENT_IP%}
DisableDHCP=1
DriverName=TCPIP$
BINDINGS=PCIND
LANABASE=0

特别是AUTOEXEC.BAT 的热菘床惶靼啄俏桓呤纸馐鸵幌掳。
hdosutil -a 做什么用?
echo. > %RAMDRIVE%\net\lmhosts 什么意义?包里没lmhosts文件
在下面就一点也看不懂了,,我没系统的学过电脑啊,,

我想把98也做成纯TCP/IP的

请问panhh你用纯TCP/IP的起动包在IINUX 起动98到桌面了吗???

winbootdir=c可以在a:\msdos.sys中设

改成
IPAddress0=0 0 0 0
DisableDHCP=0
就可以用DHCP了,启动会慢一些。
但保护模式一定要用固定IP。

98还是有IPX协议的比较好,游戏要用的。
LINUX98已经做好的,没大问题。

能提供mknbi-dos下载吗,还有若是有台计算机启动,应怎样修改autoexec.bat和user.reg?多谢了!!

我用vm安装linux,vm做无盘98,现在是启动错误是load kernel错误,文件也替换了,是不是因为都是虚拟的,网速慢造成的?

vm不能做纯tcp/ip,没有ipx协议会很慢。
vpc相反,只能做纯tcp/ip,否则会在w2k中报错。
很奇怪 呵呵…
另外问一句,你的机器是什么配置?能同时跑几个vm?

其中一个vm装了rh8 ,win98,dos,host os 是xp.
vpc安装rh8就非常慢,不如vm
能不能在qq上联系?我的是797220.
这段时间一直在研究linux上跑无盘

patch文件去向3COM那里找,在VLD里面.

vm装linux+vm无盘98
vm装linux+vpc无盘98
vpc装linux+vpc无盘98
vpc装linux+vm无盘98
分别用软盘引导,光驱加上netboot引导从linux下载镜像
最后都是引导kernel错误