精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>○ DOS>>系统资料>>WINDOWS与DOS的关系

主题:WINDOWS与DOS的关系
发信人: shixudong()
整理人: yangcs(2000-01-21 09:46:29), 站内信件
初次见面,送斑竹两件礼物。这是第一件。
斑竹: 
    这是我于1997年7月写的,由于各种原因没有公开发表,不知能否放入精华区
 

Win 95的引导记录与双重引导的关系 
       Windows 95号称是不再依赖DOS的完全独立的操作系统,从表面上看的确
 

如此,因为启动电脑时是直接进入Win 95的。但事实上Win 95仍然依赖着DOS,只
 

是这个DOS为特定的,称之为DOS 7.0(在最新的Windows 95 OSR2中已改为DOS 7
 

.1),它随Win 95一起自动安装到电脑上,并负责引导电脑,DOS 7.X完成引导之
 

后并不停留在DOS命令提示行状态,而是自动执行Win命令而进入Windows 95。当
 

然也可以通过Win 95的双重引导功能引导到原先的DOS(即安装Win 95之前的DOS
 

)。关于Win 95的双重引导功能讨论得已经差不多了,笔者在这里想谈谈Win 95
 

的引导记录与双重引导的关系,以及如何在Windows 95 OSR2中实现Win 95的双重
 

引导功能。 
    由Win 95的引导过程可知,它与原先的DOS引导过程很相近,这也决定了它的
 

引导记录结构基本上和原先的DOS是一致的,即有五个部分组成: 
(1)一条跳转指令 
(2)厂商标识代码 
(3)BPB参数信息 
(4)DOS引导程序 
(5)结束标志字 
       Windows 95 OSR2和以前版本的Win 95,它们的引导记录并不完全相同,
 

尤其是Windows 95 OSR2,它甚至有两个不同的引导记录:一个支持双重引导功能
 

,另一个只支持引导到Windows 95或DOS 7.1。这三个引导记录不同的原因主要在
 

于它们的DOS引导程序不同,而DOS引导程序的不同又主要体现在处理双重引导功
 

能的区别上。因此,笔者将分别介绍三个不同的引导记录处理双重引导功能的过
 

程(下面的介绍均基于硬盘引导)。 
       1·OSR2以前版本的Win 95的引导记录 
    启动电脑后,自动读入Win 95的引导记录并将控制权交给它,然后该引导记
 

录自动到C:盘根目录下去寻找文件WINBOOT.SYS,如果找到,则将其读入内存并将
 

控制权转交给它,由文件WINBOOT.SYS来完成Win 95的引导。如果没有找到该文件
 

,则引导记录继续在C:盘根目录下寻找文件IO.SYS,如果找到,则将其读入内存
 

并将控制权转交给它,由文件IO.SYS来完成Win 95的引导。如果仍然没有找到该
 

文件,则提示错误信息:Invalid system disk, Replace the disk, and then 
 

press any key。 
    如果C:盘根目录下存在文件WINBOOT.SYS,则由该文件取得控制权,它先进行
 

一系列的文件改名操作(CONFIG和AUTOEXEC仅在相应的文件存在时才进行改名操
 

作): 
IO.SYS—>IO.DOS 
MSDOS.SYS—>MSDOS.DOS 
COMMAND.COM—>COMMAND.DOS 
CONFIG.SYS—>CONFIG.DOS 
AUTOEXEC.BAT—>AUTOEXEC.DOS 
WINBOOT.SYS—>IO.SYS 
MSDOS.W40—>MSDOS.SYS 
COMMAND.W40—>COMMAND.COM 
CONFIG.W40—>CONFIG.SYS 
AUTOEXEC.W40—>AUTOEXEC.BAT 
然后读取文件MSDOS.SYS,并根据其中的内容进行相应的处理: 
BootWin=0只能引导到原先的DOS。 
BootWin=1&BootMulti=0 只能引导到Win 95。 
BootWin=1&BootMulti=1此时能够双重引导。 
在引导到Win 95时, 
BootGui=1自动执行Win命令而进入Windows 95。 
BootGui=0引导到DOS 7.0,不能自动进入Windows 95。 
上述参数可以缺省,缺省时,BootWin与BootGui默认值为1,BootMulti默认值为
 

0。 
    如果引导到原先的DOS,则WINBOOT.SYS将起初的改名操作恢复,然后读入文
 

件IO.SYS并将控制权转交给它,由该文件来完成先前DOS版本的引导。 
    如果引导到Win 95,则根据BootGui的取值引导到Windows 95或DOS 7.0。 

    如果C:盘根目录下不存在文件WINBOOT.SYS但又找到了文件IO.SYS,则由文件
 

IO.SYS取得控制权,与WINBOOT.SYS不同的是,它不必进行文件改名操作,直接读
 

取文件MSDOS.SYS,并根据其中的内容进行相应的处理,其处理过程与WINBOOT.S
 

YS相同,只是引导到原先的DOS时,先要进行如下的文件改名操作(CONFIG和AUT
 

OEXEC仅在相应的文件存在时才进行改名操作): 
IO.SYS—>WINBOOT.SYS 
MSDOS.SYS—>MSDOS.W40 
COMMANM.COM—>COMMAND.W40 
CONFIG.SYS—>CONFIG.W40 
AUTOEXEC.BAT—>AUTOEXEC.W40 
IO.DOS—>IO.SYS 
MSDOS.DOS—>MSDOS.SYS 
COMMAND.DOS—>COMMANM.COM 
CONFIG.DOS—>CONFIG.SYS 
AUTOEXEC.DOS—>AUTOEXEC.BAT 
然后读入文件IO.SYS并将控制权转交给它,由该文件来完成先前DOS版本的引导。
 

    由上面的分析可知,引导记录读入文件WINBOOT.SYS或文件IO.SYS与前一次的
 

引导过程有关。如果上次引导到原先的DOS,则本次引导记录将读入文件WINBOOT
 

.SYS;如果上次引导到Win 95,则本次引导记录将读入文件IO.SYS。 
       2·Windows 95 OSR2支持双重引导功能的引导记录 
    它的引导过程与第一个引导记录基本相同,唯一的区别是用文件JO.SYS替代
 

了文件WINBOOT.SYS。之所以这样做,显然是考虑了引导记录中的DOS引导程序某
 

些算法的方便性。 
       3·Windows 95 OSR2不支持双重引导功能的引导记录 
    启动电脑后,自动读入Win 95的引导记录并将控制权交给它,然后该引导记
 

录自动到C:盘根目录下去寻找文件IO.SYS,如果找到,则将其读入内存并将控制
 

权转交给它,由文件IO.SYS来完成Win 95的引导。如果没有找到该文件,则提示
 

错误信息:Invalid system disk, Replace the disk, and then press any ke
 

y。 
    文件IO.SYS取得控制权后,读取文件MSDOS.SYS,并根据其中的内容进行相应
 

的处理: 
BootWin=0只能引导到原先的DOS。 
BootWin=1&BootMulti=0 只能引导到Win 95。 
BootWin=1&BootMulti=1此时能够双重引导(此处与引导记录不支持双重引导功能
 

并不矛盾,具体原因见后)。 
在引导到Win 95时, 
BootGui=1自动执行Win命令而进入Windows 95。 
BootGui=0引导到DOS 7.1,不能自动进入Windows 95。 
上述参数可以缺省,缺省时,BootWin与BootGui默认值为1,BootMulti默认值为
 

0。 
    如果引导到原先的DOS,则先要进行如下的文件改名操作(CONFIG和AUTOEXE
 

C仅在相应的文件存在时才进行改名操作): 
IO.SYS—>JO.SYS 
MSDOS.SYS—>MSDOS.W40 
COMMANM.COM—>COMMAND.W40 
CONFIG.SYS—>CONFIG.W40 
AUTOEXEC.BAT—>AUTOEXEC.W40 
IO.DOS—>IO.SYS 
MSDOS.DOS—>MSDOS.SYS 
COMMAND.DOS—>COMMANM.COM 
CONFIG.DOS—>CONFIG.SYS 
AUTOEXEC.DOS—>AUTOEXEC.BAT 
然后读入文件IO.SYS并将控制权转交给它,由该文件来完成先前DOS版本的引导。
 

    如果引导到Win 95,则根据BootGui的取值引导到Windows 95或DOS 7.1。 

由上面的分析可知,虽然引导记录不支持双重引导功能(不能寻找文件JO.SYS)
 

,但Windows 95 OSR2本身还是支持双重引导功能的(能够互相转换DOS与Win 95
 

的系统文件)。因此倘若选择了引导到原先的DOS,如上所述,Win 95的IO.SYS作
 

了一系列的改名操作之后(包括将自身改为JO.SYS,将IO.DOS改为IO.SYS),读
 

入DOS的IO.SYS并将控制权转交给它,是能够顺利引导到先前DOS版本的。但是,
 

下一次启动电脑时,由于引导记录只能读入文件IO.SYS,而此时的IO.SYS是DOS的
 

系统文件,并不是Win 95的系统文件,这样所导致的结果必然使系统死机并且没
 

有任何错误提示。当然,如果我们永远不选择引导到原先的DOS或者设置参数Boo
 

tWin=1&BootMulti=0使得系统不能引导到原先的DOS,那么,每次启动电脑总是能
 

够顺利引导到Windows 95或DOS 7.1的。 
    在安装Windows 95 OSR2时,同时也安装了不支持双重引导功能的引导记录,
 

从这个意义上说,Windows 95 OSR2是不支持双重引导功能的。但是由上文可知,
 

Windows 95 OSR2本身还是支持双重引导功能的,要使它能够真正地支持双重引导
 

功能,只需在Windows 95 OSR2安装完毕后,用支持双重引导功能的引导记录替换
 

不支持双重引导功能的引导记录即可。这一操作很简单,先制作一张Win 95的系
 

统盘(即DOS 7.1)并拷入文件SYS.COM,然后用该系统盘引导电脑并执行命令SY
 

S C :〈CR〉。现在,Windows 95 OSR2就能真正地支持双重引导功能了。 
    在Windows 95 OSR2还不能真正支持双重引导功能前,万一选择了引导到原先
 

的DOS,则由上文可知,第二次启动电脑时必然会导致系统的死机。此时的系统文
 

件属于DOS而不属于Win 95,如果象前面那样直接执行命令SYS C :〈CR〉,则将
 

覆盖掉DOS的系统文件(SYS命令将会提示警告信息,并要求确认操作)。系统虽
 

然可以正常引导,甚至支持“双重引导功能”,但这时“双重引导”的两个系统
 

都是Win 95,而永远不能引导到原先的DOS。因此为了避免上述错误操作的发生,
 

必须先用系统盘引导电脑(该系统盘可以是旧DOS也可以是DOS 7.1,考虑到后面
 

操作的方便性以及DOS 7.1不支持PCTOOL 5.0,故此建议采用旧DOS系统盘),然
 

后用PCTOOL进行如下的文件改名操作(CONFIG和AUTOEXEC仅在相应的文件存在时
 

才进行改名操作): 
IO.SYS—>IO.DOS 
MSDOS.SYS—>MSDOS.DOS 
COMMAND.COM—>COMMAND.DOS 
CONFIG.SYS—>CONFIG.DOS 
AUTOEXEC.BAT—>AUTOEXEC.DOS 
JO.SYS—>IO.SYS 
MSDOS.W40—>MSDOS.SYS 
COMMAND.W40—>COMMAND.COM 
CONFIG.W40—>CONFIG.SYS 
AUTOEXEC.W40—>AUTOEXEC.BAT 
    这时系统文件已经属于Win 95而不属于DOS,系统将恢复正常引导。然后再用
 

支持双重引导功能的引导记录替换不支持双重引导功能的引导记录即可,具体操
 

作同前。 
    如前所述,如果操作失误,使得“双重引导”的两个系统都是Win 95,而不
 

能引导到原先的DOS时,只需简单地将旧DOS的系统文件覆盖掉C:盘上相应的*.DO
 

S文件即可。 
附: 
      1·在安装Windows 95 OSR2时,由于采用了不支持双重引导功能的引导记
 

录,默认Windows 95 OSR2不支持双重引导功能。因此,倘若原先硬盘上已安装了
 

Windows 3.X系统,再要安装Windows 95 OSR2时,它将提示错误信息:硬盘上已
 

经安装了一个操作系统,并拒绝安装自己。这时只需将Windows 3.X系统所在的目
 

录暂时改一个与Windows无关的名字,并在DOS下安装,即可欺骗Windows 95 OSR
 

2。安装成功后,用支持双重引导功能的引导记录替换不支持双重引导功能的引导
 

记录,再恢复Windows 3.X系统所在的目录名。此后,就可以在DOS+Windows 3.X
 

与Windows 95之间双重引导。 
       2·目前,Windows 95 OSR2都是预装在一些品牌PC里到达用户手中,要了
 

解你是否使用Windows 95 OSR2,可使用VER命令,其版本应为4.00.1111(或更高
 

);也可用右键单击桌面上“我的电脑”图标,单击“属性”,然后单击“常规
 

”选项卡,其版本应为Windows 95 4.00.950B;其相应的DOS版本应为MS-DOS 7.
 

1。而OSR2以前版本的Win 95,其版本为Windows 95 4.00.950或Windows 95 4.0
 

0.950A,相应的DOS版本则为MS-DOS 7.0。 
       3·文中所涉及的旧DOS,特指MS-DOS 5.0 版或更高版本(低版本MS-DOS
 

不支持双重引导)。当然也可以采用支持双重引导的PC-DOS 7.0,对于PC-DOS 7
 

.0,情况有些特殊,这是因为PC-DOS 7.0的系统文件名不同于MS-DOS,它们的对
 

应关系如下: 
PC-DOS 7.0 
IBMBIO.COM 
IBMDOS.COM 
COMMAND.COM 
MS-DOS 
IO.SYS 
MSDOS.SYS 
COMMAND.COM 
    因此进行文件改名操作时,PC-DOS的IBMBIO.COM文件和IBMDOS.COM文件以及
 

Win 95的IO.SYS文件和MSDOS.SYS文件均不必改名。由于PC-DOS 7.0的这一特性,
 

不论Win 95采用何种引导记录,它总是能够很好地支持双重引导功能(Win 95的
 

IO.SYS文件不必改名,因此Win 95的引导记录每次总能找到该文件而顺利完成引
 

导过程)。 
    利用PC-DOS 7.0的这一特性,还可以采用另一种也许更为有效的办法来实现
 

MS-DOS和Windows 95 OSR2之间的双重引导。我们知道,PC-DOS 7.0除了系统文件
 

名与MS-DOS不同外,其内部引导过程是完全相同的。因此,也完全可以通过简单
 

地改变文件名将MS-DOS“转换”成PC-DOS 7.0来实现双重引导,具体说来,在Wi
 

ndows 95 OSR2安装完毕后,将MS-DOS的IO.SYS文件和MSDOS.SYS文件改名为IBMB
 

IO.COM文件和IBMDOS.COM文件即可。倘若由于误选了引导到原先的DOS而使得电脑
 

不能正常引导时,先用系统盘引导电脑,然后用PCTOOL进行如下的文件改名操作
 

(CONFIG和AUTOEXEC仅在相应的文件存在时才进行改名操作): 
IO.SYS—>IBMBIO.COM 
MSDOS.SYS—>IBMDOS.COM 
COMMAND.COM—>COMMAND.DOS 
CONFIG.SYS—>CONFIG.DOS 
AUTOEXEC.BAT—>AUTOEXEC.DOS 
JO.SYS—>IO.SYS 
MSDOS.W40—>MSDOS.SYS 
COMMAND.W40—>COMMAND.COM 
CONFIG.W40—>CONFIG.SYS 
AUTOEXEC.W40—>AUTOEXEC.BAT 
此后,系统就能正常地支持双重引导功能。是不是比前面的方法更简单呢? 

--
[email protected]

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.102.109.62]

[关闭][返回]