突发奇想:怎样把win98系统做到一张光盘?
这样拿到任何机器上(当然不会是586以下的档次喽~),直接用光盘启动
win98,(没有真彩就算了喽~)能运行个WORD也好啊~~
如果有高手厉害,做到MINI DISK里,那就最好!有做出来的,分享一下哦
突发奇想:怎样把win98系统做到一张光盘?
这样拿到任何机器上(当然不会是586以下的档次喽~),直接用光盘启动
win98,(没有真彩就算了喽~)能运行个WORD也好啊~~
如果有高手厉害,做到MINI DISK里,那就最好!有做出来的,分享一下哦
李哲兄,早就做过,禁用98的虚拟内存,刻到光盘上,即可从光盘启动,工作站内存大的话,运行WORD应该可以吧
原来这样~
是普通硬盘安装就可以了吗?
48M以上可以了
48M可以?你运行软件试试,在禁用虚拟内存的情况下,慢的很啊,别说运行软件了,
能不能介绍详细些? 或者发到: citylink@tom.com
谢谢!
按照你的说法,我还没做出。那我们是不是可以做得更完美些,请大家一起想办法如何? 我的思路:
刻在光盘上的系统目录相当于无盘的共享盘,预设的RAM盘作为可根据REG文件可适当调整的逻辑盘,比如改IP地址、DNS等,
也就是,根据只读的母盘上的样板注册表文件,在启动时附加插上一张软盘(REG文件),从而在RAM盘重新生成系统注册。
目的是可以用这张光盘连接LAN。 不知是否可行?
完全可以,
还可以检测盘符和剩余空间,在有空间的盘上建立临时目录,成功的话就设置虚拟内存并代虚拟内存启动;否则启动成不带虚拟内存的
今天连续苦战7个小时有余,还是没有成功~ :((
条件有限也是一个原因: 机器上没有FDD,硬盘里有
要紧东东,不能随便乱格的~~ 实验的win98系统是原先
做PXE的一个备份
我的光盘启动是参考win98自己建启动盘的那个包的,但这样
的话,由于RAMDRIVER.SYS先行建立了C盘,光盘变成D盘了。
我想除非一开始,就在D盘上安装win98了,再刻到光盘?
我即使单步执行时,跳过建RAM盘,以安模启动win98时,还是
不成功:提示一个V什么的文件加载失败。系统死锁
安装原先的思路,RAM盘肯定是要的,但DOS的2个启动配置文件
应该怎么写? 我已经把MSCDEX放在了最前面,在CONFIG里,也
是CDROM.SYS先于RAMDRIVER.SYS,但RAM还是会立即建立。看来
windows系统非得装到D盘? 有做过的朋友请出来说几句嘛~~
RAM盘肯定是要9M
config.sys
device=himem.sys
devicehigh=emm386.exe noems
devicehigh=IFSHLP.SYS
devicehigh=DBLBUFF.SYS
devicehigh=asuscd.sys /D:oemcd001
RAM盘目录
Directory of C:\48
. 08-18-03 21:56 .
… 08-18-03 21:56 …
EMM386 EXE 125,495 06-19-98 20:01 EMM386.EXE
W98 08-18-03 21:56 W98
1 0 08-18-03 21:57 1
2 file(s) 125,495 bytes
Directory of C:\48\W98
. 08-18-03 21:56 .
… 08-18-03 21:56 …
COMMAND COM 94,282 06-19-98 20:01 COMMAND.COM
CONTROL EXE 2,155 06-19-98 20:01 CONTROL.EXE
CONTROL INI 853 08-01-02 13:47 CONTROL.INI
DBLBUFF SYS 2,614 06-19-98 20:01 DBLBUFF.SYS
DEFRAG EXE 251,483 06-19-98 20:01 DEFRAG.EXE
DOSPRMPT PIF 995 08-04-99 9:42 DOSPRMPT.PIF
EXPLORER EXE 180,224 06-19-98 20:01 EXPLORER.EXE
EXTRACT EXE 93,242 07-29-99 6:48 EXTRACT.EXE
GHOSTEXP EXE 325,120 07-02-03 16:30 Ghostexp.exe
GRPCONV EXE 49,152 06-19-98 20:01 GRPCONV.EXE
HH EXE 40,960 06-19-98 20:01 HH.EXE
HIDCI DLL 3,216 08-01-02 13:42 HIDCI.DLL
HIMEM SYS 33,191 06-19-98 20:01 HIMEM.SYS
IFSHLP SYS 3,708 06-19-98 20:01 IFSHLP.SYS
IOS LOG 1,120 08-04-99 9:41 IOS.LOG
LOGOS SYS 129,078 05-05-99 22:22 LOGOS.SYS
NOTEPAD EXE 33,280 06-19-98 20:01 Notepad.exe
PIDSET EXE 40,960 06-19-98 20:01 PIDSET.EXE
REGEDIT EXE 80,384 06-19-98 20:01 Regedit.exe
RUNDLL EXE 4,811 06-19-98 20:01 RUNDLL.EXE
RUNDLL32 EXE 24,576 06-19-98 20:01 RUNDLL32.EXE
SCANDSKW EXE 4,827 06-19-98 20:01 SCANDSKW.EXE
SCANREGW EXE 41,472 06-19-98 20:01 Scanregw.exe
SMARTDRV EXE 45,379 05-05-99 22:22 SMARTDRV.EXE
SYSTEM CB 115 08-01-02 14:46 SYSTEM.CB
SYSTEM INI 577 08-05-99 1:22 SYSTEM.INI
TASKMON EXE 28,672 06-19-98 20:01 TASKMON.EXE
WAVEMIX INI 54 08-01-03 18:42 WAVEMIX.INI
WIN COM 24,791 06-19-98 20:01 WIN.COM
WIN INI 7,077 08-01-02 13:48 WIN.INI
WINHELP EXE 2,523 06-19-98 20:01 WINHELP.EXE
WINHLP32 EXE 140,288 06-19-98 20:01 Winhlp32.exe
WININIT EXE 41,973 05-05-99 22:22 WININIT.EXE
WINVER EXE 3,771 06-19-98 20:01 WINVER.EXE
DESKTOP 08-18-03 21:56 Desktop
INF 08-18-03 21:56 inf
STARTM~1 08-18-03 21:56 Start Menu
SYSTEM 08-18-03 21:56 system
34 file(s) 1,736,923 bytes
Directory of C:\48\W98\Desktop
. 08-18-03 21:56 .
… 08-18-03 21:56 …
GHOSTEXP LNK 300 08-04-99 9:28 Ghostexp.lnk
MS-DOS PIF 967 08-04-99 9:25 MS-DOS.pif
系统GHOS PIF 967 08-04-99 17:01 系统GHOS.pif
硬盘分区 LNK 327 08-04-99 9:27 硬盘分区.lnk
硬盘分区 PIF 967 08-04-99 17:01 硬盘分区.pif
关机DOS PIF 967 08-04-99 16:53 关机DOS.pif
记事本 LNK 273 08-04-99 9:17 记事本.lnk
7 file(s) 4,768 bytes
Directory of C:\48\W98\inf
. 08-18-03 21:56 .
… 08-18-03 21:56 …
APPS INF 63,232 06-19-98 20:01 apps.inf
1 file(s) 63,232 bytes
Directory of C:\48\W98\Start Menu
. 08-18-03 21:56 .
… 08-18-03 21:56 …
PROGRAMS 08-18-03 21:56 Programs
0 file(s) 0 bytes
Directory of C:\48\W98\Start Menu\Programs
. 08-18-03 21:56 .
… 08-18-03 21:56 …
WINDOW~1 LNK 295 08-01-02 13:48 Windows 资源管理器.lnk
MS-DOS~1 PIF 967 08-04-99 9:41 MS-DOS 方式.pif
附件 08-18-03 21:56 附件
2 file(s) 1,262 bytes
Directory of C:\48\W98\Start Menu\Programs\附件
. 08-18-03 21:56 .
… 08-18-03 21:56 …
记事本 LNK 273 08-04-99 9:17 记事本.lnk
系统工具 08-18-03 21:56 系统工具
1 file(s) 273 bytes
Directory of C:\48\W98\Start Menu\Programs\附件\系统工具
. 08-18-03 21:56 .
… 08-18-03 21:56 …
DISKDE~1 LNK 262 08-04-99 9:17 Disk Defragmenter.lnk
SCANDISK LNK 268 08-04-99 9:17 Scandisk.lnk
2 file(s) 530 bytes
Directory of C:\48\W98\system
. 08-18-03 21:56 .
… 08-18-03 21:56 …
DOCPROP DLL 61,440 06-19-98 20:01 DOCPROP.DLL
KERNEL32 DLL 471,040 06-19-98 20:01 KERNEL32.DLL
MLANG DLL 106,496 06-19-98 20:01 MLANG.DLL
MSVCRT DLL 280,576 06-19-98 20:01 MSVCRT.DLL
PIFMGR DLL 81,531 06-19-98 20:01 PIFMGR.DLL
SERIAL VXD 18,625 06-19-98 20:01 SERIAL.VXD
SHDOCVW DLL 2,179,072 06-19-98 20:01 SHDOCVW.DLL
SHELL32 DLL 1,400,832 06-19-98 20:01 SHELL32.DLL
UNICODE BIN 104,043 06-19-98 20:01 UNICODE.BIN
UNIMDM TSP 43,419 06-19-98 20:01 UNIMDM.TSP
UNICODE NLS 34,676 06-19-98 20:01 UNICODE.NLS
UNIMODEM VXD 59,027 06-19-98 20:01 UNIMODEM.VXD
URLMON DLL 487,424 06-19-98 20:01 URLMON.DLL
VFIXD VXD 6,442 06-19-98 20:01 VFIXD.VXD
VMM32 VXD 913,141 08-01-02 13:44 VMM32.VXD
VRTWD 386 101,617 06-19-98 20:01 VRTWD.386
OEMINFO INI 481 08-04-99 18:19 oeminfo.ini
IOSUBSYS 08-18-03 21:56 IOSUBSYS
VMM32 08-18-03 21:56 VMM32
17 file(s) 6,349,882 bytes
Directory of C:\48\W98\system\IOSUBSYS
. 08-18-03 21:56 .
… 08-18-03 21:56 …
BIGMEM DRV 9,952 06-19-98 20:01 BIGMEM.DRV
ESDI_506 PDR 24,406 06-19-98 20:01 ESDI_506.PDR
HSFLOP PDR 25,741 06-19-98 20:01 HSFLOP.PDR
RMM PDR 13,242 06-19-98 20:01 RMM.PDR
SCSIPORT PDR 23,650 06-19-98 20:01 SCSIPORT.PDR
APIX VXD 29,397 06-19-98 20:01 APIX.VXD
ATAPCHNG VXD 11,311 06-19-98 20:01 ATAPCHNG.VXD
CDFS VXD 59,133 06-19-98 20:01 CDFS.VXD
CDTSD VXD 13,884 06-19-98 20:01 CDTSD.VXD
CDVSD VXD 30,371 06-19-98 20:01 CDVSD.VXD
DISKTSD VXD 18,805 06-19-98 20:01 DISKTSD.VXD
DISKVSD VXD 10,194 06-19-98 20:01 DISKVSD.VXD
NECATAPI VXD 9,926 06-19-98 20:01 NECATAPI.VXD
SCSI1HLP VXD 19,270 06-19-98 20:01 SCSI1HLP.VXD
TORISAN3 VXD 11,067 06-19-98 20:01 TORISAN3.VXD
VOLTRACK VXD 18,491 06-19-98 20:01 VOLTRACK.VXD
NTFSFSD VXD 176,728 04-26-02 11:12 NTFSFSD.VXD
17 file(s) 505,568 bytes
Directory of C:\48\W98\system\VMM32
. 08-18-03 21:56 .
… 08-18-03 21:56 …
IFSMGR VXD 185,902 06-19-98 20:01 IFSMGR.VXD
IOS VXD 69,454 06-19-98 20:01 IOS.VXD
QEMMFIX VXD 9,792 06-19-98 20:01 QEMMFIX.VXD
3 file(s) 265,148 bytes
Total files listed:
86 file(s) 9,053,081 bytes
32 dir(s) 451,215,360 bytes free
字库指向光盘目录
Path=x:\fonts…
哇噻~~ 好手来啦
你的文件目录怪怪的,是不是什么98lite搞的?
还是非常感谢你详细的提示!
还没仔细看,请问RAM盘是在何处设置的?
RAM盘用XMSDSK
\DOS\tmd
goto %mem%
goto quit
:5
\dos\xmsdsk 262144 V: /t /y
goto 51
:4
\dos\xmsdsk 131072 V: /t /y
:51
\dos\letassig c=v:
c:
copy %cdrom%:\dos\doslfn.com
copy %cdrom%:\dos\cp*.*
doslfn
%cdrom%:\dos\arj x -y %cdrom%:\b98.arj >nul
%cdrom%:\dos\arj x -y %cdrom%:\system.arj >nul
%cdrom%:\dos\arj x -y %cdrom%:\inf.arj >nul
%cdrom%:\dos\arj x -y %cdrom%:\inf1.arj >nul
doslfn -u
if “%mem%”==“5” copy %cdrom%:\256.ini w98\system.ini /y
goto start
:3
\dos\xmsdsk 65536 V: /t /y
\dos\letassig c=v:
c:
copy %cdrom%:\dos\doslfn.com
copy %cdrom%:\dos\cp*.*
doslfn
%cdrom%:\dos\arj x -y %cdrom%:\b98.arj >nul
%cdrom%:\dos\arj x -y %cdrom%:\inf.arj >nul
doslfn -u
path %path%;%cdrom%:\w98\system
goto start
:2
\dos\xmsdsk 28672 V: /t /y
\dos\letassig c=v:
c:
copy %cdrom%:\dos\doslfn.com
copy %cdrom%:\dos\cp*.*
doslfn
%cdrom%:\dos\arj x -y %cdrom%:\48-64.arj >nul
%cdrom%:\dos\arj x -y %cdrom%:\inf.arj >nul
%cdrom%:\dos\arj x -y %cdrom%:\fonts.arj >nul
doslfn -u
path %path%;%cdrom%:\w98\system
goto start
:1
\dos\xmsdsk 12288 V: /t /y
\dos\letassig c=v:
c:
copy %cdrom%:\dos\doslfn.com
copy %cdrom%:\dos\cp*.*
doslfn
%cdrom%:\dos\arj x -y %cdrom%:\48-64.arj >nul
doslfn -u
md w98\system32
md w98\system32\Drivers
copy %cdrom%:\w98\system32\Drivers w98\system32\Drivers
path %path%;%cdrom%:\w98\fonts;%cdrom%:\w98\system;%cdrom%:\w98\inf
:start
del doslfn.com
del cp*.*
%cdrom%:
\dos\letassig c=v:
\dos\letassig f=v:
%cdrom%:\dos\setmdir /m: /r:f:\w98
cemm f
f:
set COMSPEC=f:\W98\COMMAND.COM
path f:\w98;%path%
md f:\temp
set temp=f:\temp
set tmp=f:\temp
win
:0
:quit
楼上的朋友,可以在QQ交流吗? 请发到 citylink@tom.com如何
好1
操一段别人的东西:
Booting Windows From CD-ROM
Windows无法从光盘启动的原因是启动时Windows会报告无法访问注册表。本文将解释如何消除这些错误并优化光盘启动。
制作一张可启动的Windows光盘,需要至少500M磁盘空间,一些自由软件。并且需要了解一些DOS命令。
本文所介绍的方法只可用于Windows 95b以上的系统和Windows 98,不可用于NT和2000的启动光盘。
实际上所有的问题就是处理Windows对磁盘的写访问。考虑两个问题:其一,注册表位于光盘的系统可以正常启动并运行。其二,将注册表置于RAM盘。RAM盘是主存的一部分并被模拟成一个硬盘。其中的窍门是只需要拷贝注册表文件到RAM盘,因此该RAM盘只需4M左右的内存空间。所有启动时无需写访问的文件都留在光盘上。用这种方法,在没有硬盘的情况下注册表将也可以被写访问。
开始安装Windows之前,需要制作一张启动盘,并且将Win98的安装目录拷贝到硬盘上,这将加速安装的过程。
然后需要创建一些目录:
c:\w 将用于光盘的启动镜像
c:\cdrom 将作为光盘的目录
c:\cdrom\ramdisk 用于存放光盘启动时讲被拷贝至RAM盘的文件
c:\cdrom\ramdisk\w 作为RAM盘的Windows目录
c:\backup 将msdos.sys, io.sys, config.sys, autoexec.bat拷入,用于当前系统的备份
将下列文件拷入c:\w
dblbuff.sys, himen.sys, ifshlp.sys, setver.exe(位于windows目录)
attrib.exe, keyb.com, keyboard.sys, mscdex.exe, subst.exe, xcopy.exe, xcopy32.exe, xcopy32.mod
(位于windows\command目录)
DOS下的光驱驱动,RAM驱动(ramdrive.sys是不合适的,因为不能为它指定盘符,可以使用xmsdsk.exe,可以从【1】免费下载,如果使用了别的驱动,需要修改autoexec.bat中的配置)
重装windows之前必须删除c:\config.sys和c:\autoexec.bat,并且创建一个新的autoexec.bat,加入下列配置:
c:\w\subst.exe x: c:\cdrom
path c:;c:\w
因为系统将要从光盘运行,而光盘只能分配未被分配的盘符,因此系统必须被安装在后面的驱动器上。这对于使注册表与盘符独立很重要。因此使用subst命令将你安装windows的目录映射为一个虚拟的盘符,autoexec.bat中的第一行将c:\cdrom映射到x:盘。
为了防止现存的系统被覆盖,需要重命名硬盘上所有的win.com和system.ini文件,另外也包括system.dat。因为windows启动时若无法在系统目录下找到这些文件,系统将自动在所有分区上寻找system.dat这将可能影响其他系统。
现在开始安装windows。运行setup.exe,它将报告subst.exe已经被加载。忽略这个信息,按esc拒绝程序的建议继续安装。并且使用x:\w作为安装路径。安装时的第一次重启必须从先前制作的软盘启动,忽略取走软驱的提示。从软盘启动后编辑c:\config.sys,加入如下配置,其中ifshlp.sys用于支持VFAT文件系统:
devicehigh=c:\w\himem.sys
devicehigh=c:\w\ifshlp.sys
devicehigh=c:\w\dblbuff.sys
devicehigh=c:\w\setver.exe
同样再编辑c:\autoexec.bat,加入以下配置:
c:\w\subst.exe x: c:\cdrom
path c:\w;x:\w;x:\w\command;x:\w\system
取走软盘,按ctrl-alt-del重启并且完成安装。至此,你可以在这个系统上安装一些必须的驱动和应用程序,这些最终都将放入光盘,比如声卡和显卡驱动。为了使稍后的安装更为简便,你需要安装TweadUI工具。在windows98中你可以在\tools\reskit\powertoy目录中找到,windows95版本可以在【2】免费下载。
现在来为注册表准备RAM盘,依旧使用subst命令,在c:\autoexec.bat中加入下面这行:
c:\w\subst.exe w: c:\cdrom\ramdisk
windows将在启动分区的\msdos.sys中寻找注册表文件的位置,所以需要修改它。这个文件具有系统属性,用attrib msdos.sys -s -h -r命令去掉它的系统,隐藏,只读属性。然后可以修改它的前四行如下:
[Paths]
WinDir=w:\w
WinBootDir=w:\w
HostWinBootDrv=w
编辑msdos.sys时需要加入以下这行:
DisableLog=1
注意如果已经包含一行DisableLog=0则只需将0改为1即可。
如上述,为了防止光盘启动时系统读取硬盘上的system.dat,注册表文件必须被改名。它的名字包含在c:\io.sys中,使用16进制编辑器修改它,搜索所有的system.dat字符串,将它改为system.tat。这个改动将确保只有system.tat将被认为是系统的注册表文件,而system.dat将被忽略。
在windows95系统中推荐进行这个修改,而在windows98中需要考虑更多的问题:注册表文件名并非只在io.sys中指出,在一些启动时运行的应用程序中也将自动检测这个注册表文件,如果做了这个改动,你可能在每次启动时都面临注册表错误的信息。而且scanregw.exe在启动时必须被禁止,可以使用msconfig.exe来禁止它。
为了使接下来的一次重启更为安全,将start menu从c:\cdrom\w拷贝至c:\cdrom\ramdisk\w
然后关闭windows至命令行状态,将system.dat, system.ini, user.dat, win.ini从c:\cdrom\w拷贝至c:\cdrom\ramdisk\w,若你按上述方法修改了io.sys,此时需要将system.dat改名为system.tat
当再次重启windows时将使用w:盘中的注册表。然而,系统启动时不仅要写访问注册表文件,而且要写访问系统目录。因此从光盘启动系统后系统目录必须改为RAM盘的路径,这个位置在注册表中由以下键值指出,使用regedit.exe修改这个键值为’w:\w’:
HKLM\Software\Microsoft\Windows\CurrentVersion
目前start menu驻留在RAM盘上(由subst命令模拟的),但它占用了不需要的空间,因此你需要将其移回光盘:从system controls目录启动TweakUI,选择’General’并且并且调整’Special Folders’的入口,将’Programs’, ‘Start Menu’, ‘Startup’改为’x:\w\startmenu’和各自的子目录。在windows98中同时需要调整’Desktop’目录的入口至’x:\w\Desktop’,重启后w:\w\Start Menu目录和w:\w\Desktop目录可以被删除。
接下来配置一个真实的RAM盘,再次重启至DOS,用attrib c:\cdrom\ramdisk*.* -s -h -r /s去掉c:\cdrom\ramdisk下所有文件的系统,隐藏和只读属性。编辑c:\autoexec.bat,删除以下这行:
subst w: c:\cdrom\ramdisk
并且加入如下几行:
c:\w\xmsdsk 4000 w: /y
copy c:\command.com w:
set COMSPEC=w:\command.com
c:\w\xcopy c:\cdrom\ramdisk*.* w:\ /s
在启动过程中这些设置分配了4000K内存作为RAM盘,取代了先前由subst命令虚拟的RAM盘。copy命令将命令解释器和系统目录中的注册表文件拷贝至RAM盘,COMSPEC参数则指定了命令解释器的位置。
如果重启后一切运行正常,这时便可删除c:\cdrom\ramdisk\w下的所有文件,除了保留system.ini, user.dat, win.ini, control.ini, system.dat(或者system.tat,如果修改了io.sys的话)。
刻录:
刻录一张启动光盘,你需要一张启动盘活者一个启动盘的镜像文件,这取决于所使用的刻录软件。
因此,需要制作一张普通的启动盘,使用format a:/s或sys a:,复制c:\下先前修改过的io.sys, msdos.sys, config.sys, autoexec.bat至该启动盘,覆盖原来的文件,并且将整个c:\w目录拷入软盘。
现在必须修改a:\config.sys以包含正确的路径。修改的结果如下:
devicehigh=a:\w\himem.sys
devicehigh=a:\w\ifshlp.sys
devicehigh=a:\w\dblbuff.sys
devicehigh=a:\w\setver.exe
device=a:\w\aspi8dos.sys
device=a:\w\aspicd.sys /D:CD001
同样的,a:\autoexec.bat中的路径也必须修改,subst命令必须用mscdex.exe取代,最终修改如下:
a:\w\mscdex.exe /D:CD001 /L:X /M:50
a:\w\xmsdsk 4000 w: /y
copy a:\command.com w:
set COMSPEC=w:\command.com
a:\w\xcopy x:\ramdisk*.* w:\ /S
path w:;x:\w;x:\w\command; x:\w\system
x:
确认mscdex.exe的数据缓冲不至于太小,/M:12的参数和一个快速的光驱,windows可能在启动是因为光驱无法以足够快的速度提供数据而死机。参数/L:X指定了光驱的盘符为x:。
恢复原系统之前你可以将io.sys, msdos.sys, config.sys, autoexec.bat从c:\备份到某一无关的目录,以备后需。并且将c:\backup中的原系统备份拷回c:\并且将先前更名的system.dat, system.ini, win.com改回原名。然后可以启动原系统进行刻录。
该光盘必须含有一个Joliet文件系统并且将c:\cdrom作为它的根目录。
参考书目:
[1] Free Software For DOS, {http://www.geocities.com/SiliconVal...01/softlib1.htm}
[2] Windows 95 Power Toys Set, {http://www.microsoft.com/windows95/.../w95pwrtoysset/}
[3] How to make a PC-bootable CD, {http://www.os.rim.or.jp/~gigo/bootcd/index_e.html}
[4] WinImage, {http://www.winimage.com/}
[5] Klaus Ditze, Booten von CD, Neues Feature neue Fragen, c’t 12/95, S. 72
[6] Curtis E. Stevens, Stan Merkin, `El Torito?Bootable CD-ROM format Specification, PDF-Dokument at {http://www.ptltd.com/techs/specs.html}
[7] Ahead Software GmbH, Nero Burning ROM, {http://www.ahead.de/}
以前 我 按照 这种 方法 制作 ,只要 系统 一起动
就想向cdrom 写数据, 然后 蓝平,
我 向可能 是 虚拟内存 的源因
但是 无论 我 怎样 设置 虚拟内存的位置 ,或者 禁用
虚拟内存,系统 总要 访问 我的 windows 目录下的win386.swp 文件
而在别的 机器上 ,我 很容易的就 可以调整虚拟内存的位置
所以 我的cdwin98一直 不能 成功 ,我就放弃 了
这两天我看 winpe 出来了,就又想解决这个 问题
我 仔细研究 了 我的 新的 盘上的 win98系统
发现 wininit.ini 文件 一直 存在,我很奇怪,
打开 文件 一看 ,原来 是 一条 删除 我的win386.swp 的 命令
null=x:cdwin98\win386.swp
这说明 这个命令 一直 没有 执行
我于是 恍然大屋, 就 把 ramdisk 下的 ramwin98目录下的 4个 注册表文件 和
wininit.ini 文件 拷贝 到 原来 cdwin98 目录 下
然后 restart, 结果 一切ok,原来的win386.swp 文件 不见了
我 想 可能 是 win98 刚运行的 时候 ,还是 寻找原来 目录下的一些 系统文件
比如system.ini ( 虚拟内存的 设置 由此文件 控制)
还有 就是 可以 不装 twui,
即使 装了 , 也要 手工调整 注册表
twui 的 调整 都 放在 下面的 注册表subkey 下
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
缺省的 在
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
直接 修改 缺省 subkey 的内容 没有用处
需要 在 User Shell Folders 增加 item 来 覆盖 缺省值
我 多 增加了
cach 的 值,把 临时的 internet 文件 放到 内存盘上
光盘 还 可以 删除 一些 文件 ,如 ie 的 卸载目录
如果 你 把它 拷贝到 硬盘 运行
它 会要求 你 安装 驱动
然后 在 把 它 拷贝 到 别的 芯片组 运行
又 会 要求 安装 驱动
当你 安装了所有 驱动 后
系统 就 应该 不会 不 稳定 了
不过 这时 系统 就 很 庞大 很臃肿了
在说 win98 本来 就 不是 特别稳定 ,
你 有 不会 用它 做 关键 任务
在光盘上运行的 win98
众所周知,使用Win 9x/NT者,操作系统大多安装在C盘,计算机从C引导启动后,同样要在C盘上运行Win 9x/NT以及部分应用程序。但是,当Win 9x/NT系统出错、系统崩溃后,你就无法正常启动、运行系统,甚至无法启动计算机。Win 9x/NT安装光盘或启动软盘虽可用以引导启动计算机,但是,大多情况下,也只能启动后重装系统,然后重装各种应用软件。另外,在MS-DOS方式下修复出错、崩溃的系统之可能性也微乎其微,有时完全是费时费力而不讨好。特别是遇到病毒破坏等情况,C的活动DOS分区受损、引导信息丢失,则你连重装系统的愿望也无法实现。这时,如果有一张不仅可以引导计算机启动、并且可以运行Windows的光盘,那该多好哇!
Windows运行光盘概述
也许有人说“Windows都是在硬盘上运行的,在光盘上运行Windows,不可能!”――先别忙着下结论,现在,我向你介绍一种方法,完全可以让这种不可能变成现实。这个方法就是:自己制作运行Windows的光盘。现在拥有光盘刻录机的用户越来越多,只要你有或者能借到刻录机,不出家门,你就能自制这种仿真硬盘式的Windows运行光盘,真正实现在光盘上运行Windows的梦想。
需要说明的是,这种Windows运行光盘最适用于Windows 98/95/NT3.51~4.0操作系统,由于安装程序所占空间的限制,Windows 2000/XP无法在光盘上运行,而Windows Me在屏蔽掉系统还原功能并删除了用于还原系统的200MB左右后备文件之后,也可用以制作运行光盘。
我们将这张光盘称为“Windows运行光盘”,它具有以下特殊用途:
一、作为普通的光盘启动盘引导你的计算机。
二、在硬盘的引导信息受损无法启动时,它可以在不重新分区、不借助第三方软件修复引导区的情况下,快速启动系统、激活硬盘并恢复系统,而过去常用的“硬盘克隆”方法则做不到这一点,因为Norton的Ghost首先要求硬盘的引导信息完好、能够在MS-DOS环境进入硬盘才谈得到恢复系统。
三、当你的操作系统从Win 9x/NT升级为Windows 2000/Me/XP时,或者是改装其他版本的Windows NT时,无需对硬盘上的系统作任何变更,就可以用它启动计算机、继续运行老版本的Windows。
四、当你外出时,它可以启动那些操作系统、应用软件与你的计算机完全不同的计算机(当然,要求硬件配置与你的计算机相同),使用你的计算机C:盘上安装的系统和软件,在你熟悉的环境中工作。
制作运行光盘需要的条件
制作Windows运行光盘,需要以下的软、硬件条件:
一、Nero - Burning Rom(以下简称Nero)光盘刻录软件,可以 ahead.de/”或赛迪网的软件特供下载。
二、Nero软件支持的光盘刻录机和空白CD-R/CD-RW光盘片。常用的Acer、Hightech、HP、Iomega、JVC、Kodak、LG、Memorex、Mitsumi、Philips、Plextor、Ricoh、Samsung、Sony、Yamaha等品牌的大多数刻录机均可。
三、硬盘有两个以上分区,且C:盘分区应小于650MB――大于该值的可用Partition Magic(以下简称PM)临时调整。安装好操作系统和应用软件后,C:的已用空间应小于630MB(指优化后,大于该值时可用删除或移动的方法临时调整)。最好是双硬盘。
四、在C:盘安装好Windows系统及常用的应用程序、工具软件。操作系统、应用程序、工具软件的安装没有任何限制,但要尽可能将常用的软件安装在C:盘,建议暂不安装或卸掉使用很少的组件、软件。
推荐一个实用的方案:定制安装Win 98+IE 5.5、字表处理软件Word或WPS 2000、数据库Assess、图像处理软件PhotoShop或PhotoStudio、网页制作软件FrontPage或Dreamweaver、查杀病毒软件瑞星2001或KV3000、压缩软件WinZip 8.0、下载软件网际快车或网络蚂蚁、上传软件CuteFTP、看图软件ACDSee 3.1或豪杰大眼睛、屏幕抓图软件SnagIt32或HyperSnap-DX、剪贴板增强工具ClipMate或CoodClip、磁盘工具HD-copy、CPU降温及优化软件Waterfall或CPU Cool、硬盘克隆工具Ghost 7.0、删除文件恢复工具Rec4all 1.03或RecoverNT 3.5以及你所必需的其他小工具。有了这套软件组合,大多用户经常性的工作都应该没问题了,且这样安装下来不会超过630MB的界限。
▲ 下面将介绍Windows运行光盘的制作细节
系统设置与调整
在硬盘上运行Windows,读盘写盘都没有任何限制,而光盘是只能读取而不能写入的,所以,制作Windows运行光盘之前,还需要对系统和应用程序进行必要的设置和调整,使之只对C进行读取而不写入数据,否则,在运行中如果出现需要写入的情况,就可能发生错误而导致Windows运行光盘上的系统和应用程序不能正常运转。
改变虚拟内存位置
Windows的运行需要在硬盘上开辟一个虚拟内存空间。Win 9x默认由Windows管理虚拟内存,以文件形式管理程序运行时的数据交换空间(文件名为Win386.swp),其位置在“C:\Windows\”文件夹中,系统启动和程序运行时都会向其中写入数据,因此其大小会随运行程序和动态数据的多少而自动调整。在光盘上运行Windows,需要将虚拟内存的位置移动到其他分区,如D:盘。方法是:
1.在Windows桌面右键单击“我的电脑”。
2.单击快捷选单的“属性”命令,打开“系统 属性”对话框。
3.单击“性能”选项标签。
4.单击“虚拟内存”按钮,打开“虚拟内存”对话框。
5.点击选择“用户自己制定虚拟内存”单选项。
6.单击“硬盘”项后面的三角箭头,从下拉列表中选择“D:”盘(见图)。
7.单击“确定”按钮打开“确认虚拟内存位置”对话框。
8.单击“是”按钮返回“系统属性”对话框。
9.单击“关闭”按钮,打开“系统设置改变”对话框。
10.系统提示重新启动计算机时单击“否”、暂不重新启动计算机。
改变临时文件夹的位置
Windows的临时文件夹为“C:\Windows\Temp”,许多程序运行时都会向其中写入临时文件,因此,该文件夹要转移出去。方法是:
1.在D:盘建立“Temp”文件夹。
2.运行注册表编辑器Regedit,进入注册表编辑界面。
3.执行“编辑→查找…”命令,打开“查找”对话框。
4.在“查找目标”框输入“C:\Windows\Temp”,并选中“数据”复选项和“只匹配整个字符串”复选项。
5.单击“查找下一个”按钮。
6.找到符合条件主键后,右键单击键名、并执行快捷选单的“修改”命令,打开“编辑字符串”对话框,将其中的“C:\Windows\Temp”改为“D:\Temp”,然后单击“确定”按钮。
7.按“F3”键继续查找,重复执行上一步操作进行修改,直至将整个注册表查找、修改完毕后,退出注册表编辑程序。
转移向C:盘写入的文件夹或文件
需要特别说明的是,即使不制作光盘,你也有必要用以下方法将此类数据(全部是个人文档资料)移出C:盘,这样,万一系统崩溃、必须格式化C:盘时,就可以保证你的数据资料不受损害。
1.“我的文档”文件夹。把C:盘中的“My Documents”文件夹“剪切”下来,“粘贴”到其他分区的任意位置,出现“确认文件转移”对话框,询问你“确实要移动系统文件desktop.ini吗?”时,单击“是”按钮确认,你就可以在新位置存取你的文档了,而桌面上的“我的文档”会自动指向该文件夹的新位置。
2.网页缓存文件夹。右键单击桌面上的“Internet Explorer”图标,执行快捷选单中的“属性”命令,打开“Internet 属性”对话框;在“常规”选项卡的“Interner临时文件”子栏目中单击“设置…”按钮,打开“设置”对话框;单击“移动文件夹…”按钮,打开“浏览文件夹”对话框;在磁盘和文件夹列表中选择C:盘以外的一个文件夹;单击两次“确定”关闭对话框,系统提示重新启动计算机时,仍单击“否”暂不重新启动计算机。这样,已下载的网页和以后上网浏览时下载的网页就会存储在这个新位置并做长久的保存。
3.电子邮件资料。运行Outlook Express后,执行“工具→选项…”命令;打开“选项”对话框的“维护”选项卡;单击“存储文件夹”按钮、打开“存储位置”对话框;单击“更改”按钮、打开“浏览文件夹”对话框;从磁盘和文件夹列表中选择C盘以外的一个文件夹;单击“确定”按钮、打开“存储位置”对话框;再单击两次“确定”,以后你正在编辑、已经发出和收到邮件,就会保存在这个新位置。
4.个人通讯簿。打开“C\WINDOWS\Application Data\M$\Address Book”文件夹,将其中的“★.wab”( ★代表你的登录用户名,下同)文件剪切下来,将它粘贴到C盘以外的一个文件夹(如“E\Mail”)。运行注册表编辑器,打开“HKEY_CURRENT_USER\Software\M$\WAB\WAB4 \Wab File Name”分支,将“默认”的数据“C\WINDOWS\Application Data\M$\Address Book\★.wab”改为“E\Mail\★.wab”即可。
5.网页收藏夹和历史记录文件夹。像移动“我的文档”文件夹一样,将“C\Windows\”文件夹中的“Favorites”和“History”两个子文件夹直接移动到C盘以外的一个文件夹中即可。
6.输入法个人词库。以“微软拼音输入法”为例,将“C\Windows\”目录中的P★L.UPT和P★L.IMD两个个人词库文件剪贴到C盘以外的一个文件夹(如“E\MyIme”),然后运行注册表编辑器,打开“HKEY_USERS\.DEFAULT\Software\M$\Win- dows\CurrentVersion\ PINTLGNT”,将“User Define Phrase File”的数据“E\Windows\P★P.UPT”改为“ E\MyIme\P★P.UPT”,将“Learning file”的数据“E:\Windows\pLIMD”改为“El、MyIme、PL.IMD”,你变可以永久享用这些个人词汇了。
系统设置与调整
上期我们已经介绍了一些系统设置方面的要点除了那些要点外还有一些程序在运行时向C盘写入信息对于这些程序也应作必要的调整。
对向C写入临时文件的程序设置
根据实际情况,对于在注册表中无法改变临时文件保存位置的程序进行设置。如Word,要运行Word后执行“工具→选项…”命令,单击“文件位置”选项标签,选中“文档”→“自动恢复文件”后单击“更改…”按钮,将其保存位置指定到C以外的其他文件夹。又如WinZip,要运行程序后执行“选项→配置…”命令,单击“文件夹”选项标签,将“工作文件夹”和“临时文件夹”两项的位置指定到C盘之外的其他文件夹,如“D:\Temp”。
取消“启动”选单中的一些项目
运行系统配置实用程序Config,单击“启动”选项标签,取消所有不是从C盘运行的程序,使之不能随系统的启动而启动。如“超级解霸”若安装在E盘,就要在“启动”中关闭“自动播放侦测器”。对于是从C盘运行的程序,最好也要关闭不十分必要的启动项目,比如维护向导、计划任务Tasks等等。
如果某个程序已经安装在C盘以外的其他分区,可以不必进行改动,而只把启动该程序的快捷方式指向的位置进行修改,比如若你的UltraEdit安装在E盘的“UEdit”文件夹中,就右键单击桌面上和开始选单中指向该程序的快捷方式,执行快捷选单的“属性”命令,在打开的对话框中单击“快捷方式”选项标签,将“目标”栏的“E:\Uedit\Uedit32.exe”改为“K:\Uedit\Uedit32.exe”,将“起始位置”栏的“E:\Uedit”改为“K:\Uedit”(这里的“K:”是为光驱指定的盘符。在后面刻制光盘时,我们将把“E\Uedit”文件夹刻在光盘上,使它存在于“K:\Uedit”中)。然后指定光驱的盘符号,方法如下:
面 是 我的 参考 文章
Booting Windows From CD-ROM
Windows无法从光盘启动的原因是启动时Windows会报告无法访问注册表。本文将解释如何消除这些错误并优化光盘启动。
制作一张可启动的Windows光盘,需要至少500M磁盘空间,一些自由软件。并且需要了解一些DOS命令。
本文所介绍的方法只可用于Windows 95b以上的系统和Windows 98,不可用于NT和2000的启动光盘。
实际上所有的问题就是处理Windows对磁盘的写访问。考虑两个问题:其一,注册表位于光盘的系统可以正常启动并运行。其二,将注册表置于RAM盘。RAM盘是主存的一部分并被模拟成一个硬盘。其中的窍门是只需要拷贝注册表文件到RAM盘,因此该RAM盘只需4M左右的内存空间。所有启动时无需写访问的文件都留在光盘上。用这种方法,在没有硬盘的情况下注册表将也可以被写访问。
开始安装Windows之前,需要制作一张启动盘,并且将Win98的安装目录拷贝到硬盘上,这将加速安装的过程。
然后需要创建一些目录:
c:\w 将用于光盘的启动镜像
c:\cdrom 将作为光盘的目录
c:\cdrom\ramdisk 用于存放光盘启动时讲被拷贝至RAM盘的文件
c:\cdrom\ramdisk\w 作为RAM盘的Windows目录
c:\backup 将msdos.sys, io.sys, config.sys, autoexec.bat拷入,用于当前系统的备份
将下列文件拷入c:\w
dblbuff.sys, himen.sys, ifshlp.sys, setver.exe(位于windows目录)
attrib.exe, keyb.com, keyboard.sys, mscdex.exe, subst.exe, xcopy.exe, xcopy32.exe, xcopy32.mod
(位于windows\command目录)
DOS下的光驱驱动,RAM驱动(ramdrive.sys是不合适的,因为不能为它指定盘符,可以使用xmsdsk.exe,可以从【1】免费下载,如果使用了别的驱动,需要修改autoexec.bat中的配置)
重装windows之前必须删除c:\config.sys和c:\autoexec.bat,并且创建一个新的autoexec.bat,加入下列配置:
c:\w\subst.exe x: c:\cdrom
path c:;c:\w
因为系统将要从光盘运行,而光盘只能分配未被分配的盘符,因此系统必须被安装在后面的驱动器上。这对于使注册表与盘符独立很重要。因此使用subst命令将你安装windows的目录映射为一个虚拟的盘符,autoexec.bat中的第一行将c:\cdrom映射到x:盘。
为了防止现存的系统被覆盖,需要重命名硬盘上所有的win.com和system.ini文件,另外也包括system.dat。因为windows启动时若无法在系统目录下找到这些文件,系统将自动在所有分区上寻找system.dat这将可能影响其他系统。
现在开始安装windows。运行setup.exe,它将报告subst.exe已经被加载。忽略这个信息,按esc拒绝程序的建议继续安装。并且使用x:\w作为安装路径。安装时的第一次重启必须从先前制作的软盘启动,忽略取走软驱的提示。从软盘启动后编辑c:\config.sys,加入如下配置,其中ifshlp.sys用于支持VFAT文件系统:
devicehigh=c:\w\himem.sys
devicehigh=c:\w\ifshlp.sys
devicehigh=c:\w\dblbuff.sys
devicehigh=c:\w\setver.exe
同样再编辑c:\autoexec.bat,加入以下配置:
c:\w\subst.exe x: c:\cdrom
path c:\w;x:\w;x:\w\command;x:\w\system
取走软盘,按ctrl-alt-del重启并且完成安装。至此,你可以在这个系统上安装一些必须的驱动和应用程序,这些最终都将放入光盘,比如声卡和显卡驱动。为了使稍后的安装更为简便,你需要安装TweadUI工具。在windows98中你可以在\tools\reskit\powertoy目录中找到,windows95版本可以在【2】免费下载。
现在来为注册表准备RAM盘,依旧使用subst命令,在c:\autoexec.bat中加入下面这行:
c:\w\subst.exe w: c:\cdrom\ramdisk
windows将在启动分区的\msdos.sys中寻找注册表文件的位置,所以需要修改它。这个文件具有系统属性,用attrib msdos.sys -s -h -r命令去掉它的系统,隐藏,只读属性。然后可以修改它的前四行如下:
[Paths]
WinDir=w:\w
WinBootDir=w:\w
HostWinBootDrv=w
编辑msdos.sys时需要加入以下这行:
DisableLog=1
注意如果已经包含一行DisableLog=0则只需将0改为1即可。
如上述,为了防止光盘启动时系统读取硬盘上的system.dat,注册表文件必须被改名。它的名字包含在c:\io.sys中,使用16进制编辑器修改它,搜索所有的system.dat字符串,将它改为system.tat。这个改动将确保只有system.tat将被认为是系统的注册表文件,而system.dat将被忽略。
在windows95系统中推荐进行这个修改,而在windows98中需要考虑更多的问题:注册表文件名并非只在io.sys中指出,在一些启动时运行的应用程序中也将自动检测这个注册表文件,如果做了这个改动,你可能在每次启动时都面临注册表错误的信息。而且scanregw.exe在启动时必须被禁止,可以使用msconfig.exe来禁止它。
为了使接下来的一次重启更为安全,将start menu从c:\cdrom\w拷贝至c:\cdrom\ramdisk\w
然后关闭windows至命令行状态,将system.dat, system.ini, user.dat, win.ini从c:\cdrom\w拷贝至c:\cdrom\ramdisk\w,若你按上述方法修改了io.sys,此时需要将system.dat改名为system.tat
当再次重启windows时将使用w:盘中的注册表。然而,系统启动时不仅要写访问注册表文件,而且要写访问系统目录。因此从光盘启动系统后系统目录必须改为RAM盘的路径,这个位置在注册表中由以下键值指出,使用regedit.exe修改这个键值为’w:\w’:
HKLM\Software\Microsoft\Windows\CurrentVersion
目前start menu驻留在RAM盘上(由subst命令模拟的),但它占用了不需要的空间,因此你需要将其移回光盘:从system controls目录启动TweakUI,选择’General’并且并且调整’Special Folders’的入口,将’Programs’, ‘Start Menu’, ‘Startup’改为’x:\w\startmenu’和各自的子目录。在windows98中同时需要调整’Desktop’目录的入口至’x:\w\Desktop’,重启后w:\w\Start Menu目录和w:\w\Desktop目录可以被删除。
接下来配置一个真实的RAM盘,再次重启至DOS,用attrib c:\cdrom\ramdisk*.* -s -h -r /s去掉c:\cdrom\ramdisk下所有文件的系统,隐藏和只读属性。编辑c:\autoexec.bat,删除以下这行:
subst w: c:\cdrom\ramdisk
并且加入如下几行:
c:\w\xmsdsk 4000 w: /y
copy c:\command.com w:
set COMSPEC=w:\command.com
c:\w\xcopy c:\cdrom\ramdisk*.* w:\ /s
在启动过程中这些设置分配了4000K内存作为RAM盘,取代了先前由subst命令虚拟的RAM盘。copy命令将命令解释器和系统目录中的注册表文件拷贝至RAM盘,COMSPEC参数则指定了命令解释器的位置。
如果重启后一切运行正常,这时便可删除c:\cdrom\ramdisk\w下的所有文件,除了保留system.ini, user.dat, win.ini, control.ini, system.dat(或者system.tat,如果修改了io.sys的话)。
刻录:
刻录一张启动光盘,你需要一张启动盘活者一个启动盘的镜像文件,这取决于所使用的刻录软件。
因此,需要制作一张普通的启动盘,使用format a:/s或sys a:,复制c:\下先前修改过的io.sys, msdos.sys, config.sys, autoexec.bat至该启动盘,覆盖原来的文件,并且将整个c:\w目录拷入软盘。
现在必须修改a:\config.sys以包含正确的路径。修改的结果如下:
devicehigh=a:\w\himem.sys
devicehigh=a:\w\ifshlp.sys
devicehigh=a:\w\dblbuff.sys
devicehigh=a:\w\setver.exe
device=a:\w\aspi8dos.sys
device=a:\w\aspicd.sys /D:CD001
同样的,a:\autoexec.bat中的路径也必须修改,subst命令必须用mscdex.exe取代,最终修改如下:
a:\w\mscdex.exe /D:CD001 /L:X /M:50
a:\w\xmsdsk 4000 w: /y
copy a:\command.com w:
set COMSPEC=w:\command.com
a:\w\xcopy x:\ramdisk*.* w:\ /S
path w:;x:\w;x:\w\command; x:\w\system
x:
确认mscdex.exe的数据缓冲不至于太小,/M:12的参数和一个快速的光驱,windows可能在启动是因为光驱无法以足够快的速度提供数据而死机。参数/L:X指定了光驱的盘符为x:。
恢复原系统之前你可以将io.sys, msdos.sys, config.sys, autoexec.bat从c:\备份到某一无关的目录,以备后需。并且将c:\backup中的原系统备份拷回c:\并且将先前更名的system.dat, system.ini, win.com改回原名。然后可以启动原系统进行刻录。
该光盘必须含有一个Joliet文件系统并且将c:\cdrom作为它的根目录。
以前 我 按照 这种 方法 制作 ,只要 系统 一起动
就想向cdrom 写数据, 然后 蓝平,
我 向可能 是 虚拟内存 的源因
但是 无论 我 怎样 设置 虚拟内存的位置 ,或者 禁用
虚拟内存,系统 总要 访问 我的 windows 目录下的win386.swp 文件
而在别的 机器上 ,我 很容易的就 可以调整虚拟内存的位置
所以 我的cdwin98一直 不能 成功 ,我就放弃 了
这两天我看 winpe 出来了,就又想解决这个 问题
我 仔细研究 了 我的 新的 盘上的 win98系统
发现 wininit.ini 文件 一直 存在,我很奇怪,
打开 文件 一看 ,原来 是 一条 删除 我的win386.swp 的 命令
null=x:cdwin98\win386.swp
这说明 这个命令 一直 没有 执行
我于是 恍然大屋, 就 把 ramdisk 下的 ramwin98目录下的 4个 注册表文件 和
wininit.ini 文件 拷贝 到 原来 cdwin98 目录 下
然后 restart, 结果 一切ok,原来