瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » Windows 系统常见的五大误区
★☆之火 - 2006-7-31 12:03:00
很多用户平时在使用 Windows 客户端操作系统时,对一些
常见问题容易产生一些错误的理解。这些问题在微软中文新闻组中
经常被大家提起,具有一定的代表性。


误区 1:Boot.INI 丢失或损坏了?别急,用我的。

经常看到有些朋友问起系统文件 Boot.INI 丢失或损坏引起的问
题,尤其是那些安装多重系统的朋友。Boot.INI 记录了当前安装
在这台计算机上的操作系统列表,用于被 OS Loader 解析生成正
确的启动菜单。当 Boot.INI 丢失或损坏后,自然无法生成正确
的启动菜单,造成 OS Loader 只能加载默认的操作系统,或者干
脆引起一个或多个操作系统不能启动。
这时,许多热心的朋友可能会给出这样的回答:Boot.INI 损坏了?
别急,我把我的 Boot.INI 文件传给你,或者是由我来帮你写一
个 Boot.INI。可是,当人家把这个新的 Boot.INI 复制到自己计
算机上,发现问题并没有解决,故障依旧,这是怎么回事呢?

一般来说,这类朋友没有完全理解 Boot.INI 文件的结构,片面
地认为 Boot.INI 在每台计算机上的都一样或者大同小异,用在
自己机器上正确的文件复制人家机器上错误的文件即可。实际上
问题远没有这么简单。当我们打开一台计算机上的 Boot.INI 文
件,像 timeout=XX,default=XXXXX,包括描述每个操作系统的
语句后面的 /fastdetect 等这些字符和参数是什么意思相信大家
都很清楚。但是,如果说到形如 multi(0)disk(0)rdisk(0)
partition(1)\Windows 或者形如 C:\="XXXX"这样的语句是什么
意思,可能就不能给出准确答案了。

一般的,形如 multi(0)disk(0)rdisk(0)partition(1)\Windows
这样的语句用于描述基于 NT 内核的操作系统,包括 Win2k/XP/
Server 2003 等等。其中,multi(0) 表示第几个 IDE 控制器,
如果用的是 SCSI 硬盘,那么这里应换成 scsi(0);disk(0) 对
于 SCSI 硬盘,表示硬盘的 ID 号;rdisk(0) 对于 IDE 硬盘,
表示的是第几块盘,对于 SCSI 硬盘,表示的是第几个逻辑单元;
partition(1) 表示第几个分区;\Windows 表示分区上叫什么名
字的系统文件夹。
所以这句话通读起来,就是说第几个 IDE 控制器,ID 号是多少
的第几块硬盘,第几个分区上的名字是什么什么文件夹的操作系
统,系统位于这个文件夹里。

所以在 Boot.INI 里,一个操作系统虽然只用一行语句来表示,
但它涉及的参数却是方方面面。如果说在其它计算机上复制过来
的 Boot.INI 文件在另一台计算机上可用,除非这么多的参数完
全符合,否则就不能被 OS Loader 正确解析。 当然,任意两台
计算机遇到这种完全相同的概率是非常低的,所以说把自己机器
上的 Boot.INI 给别人,人家多半是不能使用的。这时依然会出
现找不到路径或无法解析 Boot.INI 的错误。

至于像描述非 NT 内核系统的语句 C:\="XXXXX",这个也很好理
解。XXXXX 是描述这个系统的语句,例如“Microsoft Windows”,
而 C:\= 实际是个缩写,完整写法是 C:\Bootsect.DOS=,这个叫
Bootsect.DOS 的文件就是描述这个操作系统引导信息的文件,这
句话的意思实际就是当用户选择这个操作系统时,由 OS Loader
从这个 Bootsect.DOS 里读出那个系统的引导信息,然后把引导
控制权转移给这个系统。C:\ 只是说明 Bootsect.DOS 这个文件
位于 C 盘根目录而已。
默认情况下,这个文件的文件名就是 Bootsect.DOS,用其它名字
也完全可以。只不过用其它名字时就必须在 Boot.INI 里注明具
体的文件名,不可再用 C:\ 这样的缩写。比如我把文件名改成了
Bootsect.W98,移动到了 C:\TEST 文件夹里,那么在 Boot.INI
里写成 C:\TEST\Bootsect.W98="XXXXX" 就可以了。

总之,Boot.INI 的 [Operation Systems] 下的语句千变万化,
依不同计算机的具体配置情况,语句都是不一样的。所以随随便
便就把一个 Boot.INI 复制到另一台计算机很不明智。另外有人
认为 Bootsect.DOS 也是通用的,实际上也并非如此。

误区 2:Boot.INI 文件,必须设置隐含只读?

有很多朋友误以为像 Boot.INI 这样的系统文件必须设置只读和
隐含属性才可以使用,实际也不是这么绝对的。这类问题基本都
是设计使然,比如像 Win2k/XP/Server 2003 的 NTDETECT.COM、
NTLDR,DOS/Win9X 的 IO.SYS、MSDOS.SYS,这些是必须设置成
只读和隐含属性的,否则它们无法工作。但是像 Boot.INI 这样
的文件则不必设置只读隐含,没有这些属性的 Boot.INI 也可工
作。所以,如果平时需要经常修改,大可以將它去掉只读隐含属
性,方便操作。但是如果不需要经常修改它,最好还是加上只读
隐含属性,以免误操作。

误区 3:故障恢复控制台,能修复我的系统?

经常见到有些朋友把故障恢复控制台和修复安装系统混为一谈。
其实当我们用 Win2k/XP/Server 2003 的安装光盘直接启动计算
机后,提示用户进入故障恢复控制台和提示修复安装系统的地方,
都是让用户用【Enter】键或【R】键回答,确实很容易搞混。

我们可以做个试验,在一台已安装好的 WinXP 的计算机上,用
WinXP 的安装光盘直接启动计算机,当蓝色的安装程序界面出现
后,这里以中文版为例,安装程序进行完例行检查和必要的组件
加载之后,第一次出现汉字界面的提示符时,会提示用户按回车
继续安装还是按【R】转入故障恢复控制台。如果在这时候选择
按下【R】,安装程序就会被打断,直接转向黑底白字的故障恢
复控制台界面,不会再继续提示安装了。可是,如果我们在这里
按下回车键继续,那么安装程序就会继续加载,并会搜索已经在
硬盘上安装的旧系统。这时,安装程序会提示用户是否要按回车
键全新安装一个新的系统,还是要按【R】键修复安装这个已搜索
到的旧系统。这时再按【R】键,才是真正意义上的修复安装。

修复安装可以理解为是一种“原位升级安装”的方式,相当于原
来 Win9X/ME 系统的“覆盖安装”。安装后会將系统还原到第一
次安装好的状态,原先安装的程序和各种设置也会被保留。
故障恢复控制台则是一种字符界面下对系统进行修复的操作平台。
以前我们在使用 Win9X/ME 系统时,如果遇到系统崩溃不能启动
的问题,总是习惯于用启动盘启动到实 DOS 模式下,对原系统进
行修复。Win2k/XP/Server 2003 系统如果采用的 FAT 或 FAT32
格式分区,依然可以用这个方法。但如果采用的是 NTFS 分区就
比较麻烦了,因为启动盘通常不能识别 NTFS 分区。故障恢复控
制台的作用就大体上相当于是一个类似的恢复平台,而且功能更
为强大。用户在此通过下达各种字符命令的方式对系统进行修复。
当然,如果用户还不知道系统的故障究竟在哪,不知道该在故障
恢复控制台下进行什么操作,那故障恢复控制台对他而言就没有
什么实际意义了。

误区 4:Win2k/XP/Server 2003 系统,可以用覆盖安装?

这个问题也是经常遇到且经常容易出错的。以前在使用 Win9X/ME
系统时,由于那些系统没有提供修复安装功能,所以需要修复系
统时只能重新运行安装程序,然后在安装过程中指定安装程序把
文件安装到原来的系统文件夹,达到修复的目的。但是在 Win2k/
XP/Server 2003 下,这样的方法就行不通了。如果我们直接运行
了安装程序,把安装位置指定为原先的系统文件夹,那么当安装
程序运行时会提示用户这里已经有了这个文件夹,并可能含有原
来的 Windows 安装,是否要坚持安装到这里还是安装到其它位置。
安装到其它位置当然不能达到修复安装的目的,可如果按【L】键
强行安装到原先的位置,安装程序会先將原来的旧系统全部删除,
然后再在同样的位置全新安装一个系统。这可不是用户希望看到
的。
正确的方法应该是像在误区 3 中提到的方法那样执行修复安装,
才可以保留原系统安装的程序和设置,达到修复的目的。实际上
如果不借用 GHOST 之类的第三方方法,这也是系统提供的唯一
一个保留原先设置的修复方法。还有一种做法是在原先的旧系统
下直接运行安装程序,选择“升级”式安装,让原系统自己升级
自己达到覆盖修复安装的目的,这也是可行的,只不过受到的限
制比较多。首先要保证原系统还可以启动,否则无法选择“升级”
式安装方式,还要保证安装光盘中集成的 Service Pack 版本比
旧系统的 Service Pack 版本高。比如,原先的系统已经升级到
了 SP2,可是安装程序只包含 SP1,那么就会由于版本的问题拒
绝升级,也就无法达到目的了。

误区 5:Win2k/XP/Server 2003,可以直接运行 DOS 程序?

很多朋友知道 Win2k/XP/Server 2003 属于纯 32 位系统(当然
WinXP/Server 2003 还有 64 位的版本),理论上它们不能直接
运行基于 MS-DOS 的旧 16 位程序。可是有人却发现在 Win2k/
XP/Server 2003 下直接双击运行 DOS 程序,也可以运行起来,
这是怎么回事呢?
原来,Win2k/XP/Server 2003 系统为了兼容原有的 DOS 程序,
内置了一个名叫 NTVDM 的 DOS 虚拟机。这个虚拟机我们可以直
接启动它,执行 %SystemRoot%\system32\Command.COM 即可。
需要注意的是执行之后打开的窗口和 CMD 命令提示符的窗口是
有区别的。平时,当我们在 Win2k/XP/Server 2003 下直接运行
DOS 程序后,系统就自动调用了这个虚拟机运行程序。所以,不
应说 Win2k/XP/Server 2003 系统可以直接运行 DOS 程序,而应
是系统可以自动调用 NTVDM 虚拟机,以运行 DOS 程序。MS-DOS
下有 Config.SYS 和 Autoexec.BAT 两个重要的系统配置文件,
对 NTVDM 虚拟机而言,这两个文件就是 %SystemRoot%\system32
下的 Config.NT 和 Autoexec.NT。只要配置好 EMS 和 XMS 的话,
很多 DOS 程序都可以在 Win2k/XP/Server 2003 下运行,包括很
多 DOS 游戏。所以说,Win2k/XP/Server 2003 对 DOS 程序的支
持还是很不错的。
1
查看完整版本: Windows 系统常见的五大误区