Windows 多重引导故障快速修复

现在安装多操作系统的朋友越来越多,但在多操作系统运行过程中偶尔出现的多重选单丢失、启

动文件损坏、无法引导到某一指定的操作系统等故障让不少人伤透了心。其实只要真正明白多重启动

的含义,你完全可以逢凶化吉、遇难呈祥。

一、多重引导过程简述

不同操作系统的引导过程是不一样的,Win98/Me 通过读取硬盘引导扇区中的信息启动系统,而

Win2000/XP/2003 则通过 NTLDR 和 ntdetect.com 文件启动系统。如果同时安装多个操作系统,则主要

由以下 7 个文件来决定:NTLDR、ntdetect.com、Boot.ini、Bootsect.dos、bootfont.bin、ntoskrnl.exe、

hal.dll。具体过程如下:

电脑自检后,将 MBR(硬盘主引导记录)调入内存,开始查找活动分区和主引导扇区,确定后将

控制权交给 NTLDR(NT 系统加载器),它读取 Boot.ini 后(多重流动菜单文件),随即显示多重启动

菜单,默认等待时间为 30秒,如果用户没有选择,则从默认操作系统启动电脑。如果用户选择 Win98/Me,

则读取 Bootsect.dos 文件(系统引导扇区记录文件),并按其中信息引导系统。如果用户选择

Win2000/XP/2003,则调用 ntdetect.com 文件(硬件信息配置文件),这是一个系统级的设备初始化

文件,读取后再将硬件信息传给 ntoskrnl.exe 和 hal.dll 文件(系统内核管理器文件),之后就开始

引导操作系统了,这里不再详述。bootfont.bin 是一个字库文件,用于在系统启动过程中显示中文。

明白了多重操作系统的启动过程,其中的各种故障便可迎刃而解。

二、实战多重引导故障

我们将以在 C 盘安装 Win98、D 盘安装 Win2000、E 盘安装 WinXP、F 盘安装 Win2003 为例。并以

故障为主线讲述解决方法。

1.系统无法启动,提示"NTLDR is Missing,press any key to restart"

这是由于 NTLDR 文件丢失或损坏引起的故障,从 Win2000/XP/2003 安装光盘的 I386 文件夹中提

取此文件,复制到 C 盘根目录下覆盖即可。但要注意此文件必须是各操作系统的最高版,例如本例中

就要拷贝 Win2003 的 NTLDR 文件,具体原因见后文。

用 Win98 启动盘引导系统至 DOS 下,将 Win2000/XP/2003 安装光盘插入光驱,在 DOS 提示符下依

次执行如下命令再重启计算机即可修复故障

A:\>x:(X 代表光驱盘符)

X:\>cd i386(切换至光盘的 I386 目录)

X:\>i386>copy ntldr c:\(将 NTLDR 文件复制到 C 盘根目录下)

2.多重启动菜单丢失,系统直接从 C 盘启动(一般为 Win98)

这是由 Boot.ini 文件丢失或损坏引起的故障,只要修复该文件即可,方法有二:

(1).通过"假安装"Win2000/XP/2003 来修复。即用一般方法安装操作系统,然后在第一次重启

计算机后,按"F3"结束安装过程。此时 Boot.ini 文件已修复。接下来删除硬盘中以"$"开头和结尾的所有目录及文件,如:$WIN_NT$.~BT。同时删除 Boot.ini 文件中与这些目录或文件相关的菜单选项,

并将"[boot loader]"和"[operating systems]"字段中的项目进行相应修改,具体方法参见下文。这

种方法比较适合新手,创建文件过程简单,但耗时较长。

(2).手动修复或重建 Boot.ini 文件,用记事本打开该文件,正确内容如下:

[boot loader]

timeout=30

default=C:\

[operating systems]

C:\="Microsoft Windows 98"

multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Server" /fastdetect

multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional"

/fastdetect

multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows 2003,Enterprise"

/fastdetect

具体涵义如下:

"timeout=30"设定多重引导菜单在屏幕上停留的时间,默认为 30 秒。

"default=......"设定默认操作系统的路径,等号后面的内容必须对应[operating systems]字

段中已经存在的操作系统,并将对应这行文字中"="前的内容复制到"default="后面即可。

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS:这里采用的是 ARC(高级 RISC 计算机)命名。对

于一般用户,需要了解的是"rdisk"和"partition"参数。此例中"rdisk(0)"表示第 1 块硬盘,

"partition(2)"表示该硬盘的第 2 个分区。

形如 MULTI(0)DISK(0)RDISK(0)PARTITION(1)格式的语句被称为 ARC 路径,它的格式为:

MULTI()??指定磁盘控制器(若为 SCSI 控制器,则此处应替换为 SCSI())

DISK()??指定 SCSI 设备编号(对于 MULTI 该处值始终为 0)

RDISK()??指定 IDE 设备编号(对于 SCSI,此处被忽略)

PARTITION()??指定分区编号。除分区编号由 1 开始外,其余编号均从 0 开始。

参数/FASTDETECT 表示禁用串行鼠标检测,是系统默认值。还有几个常见参数:MAXMEM??指定

Windows2000/XP 可用内存容量; BASEVIDEO??使用标准 VGA 显示驱动程序;NOGUIBOOT??启动过程中

不显示图形屏幕;SOS??加载设备驱动程序时显示其名称。

理解这些参数以后大家就可根据自己的情况修改或重建 Boot.ini 了。

3.Win98 可正常启动,而 Win2000/XP/2003 出现"NTDETECT failed"的故障提示

这是 ntdetect.com 文件损坏或丢失引起的故障。在多重启动菜单中选 Win98,启动完毕以后,在光

驱中插入 Win2000/XP/2003 安装光盘(使用最高版本),将光盘中 I386 目录中的 ntdetect.com 文件

复制到 C 盘根目录覆盖即可。

4.在装有 Win2003 的电脑上安装 WinXP/2000 后,Win2003 无法启动

问题出现的原因是 NTLDR 和 ntdetect.com 这两个文件不向上兼容,因此,只要用高版本的 NTLDR

和 ntdetect.com 覆盖低版本,即可"妙手回春"。

5.Win98 损坏后用"SYS C:"修复,结果多重启动菜单丢失

最简单的方法是"假安装"修复,参见前文。 6.用"format"命令格式化 C 盘后重装 Win98,多重启动菜单丢失)

这种情况处理起来比较棘手,可按下面方法修复:

第一步:生成 Bootsect.dos 文件。前面已经介绍过 Bootsect.dos 文件中存储着 512 字节的硬盘

引导扇区的内容,因此只要将硬盘引导扇区的内容读出来,写入此文件即可。在 Win98 中点击"开始"

→"程序"→"MS-DOS 方式",在 DOS 提示符下输入:

Debug

-L 100 2,0,1 (读硬盘引导扇区)

-n c:/Bootsect.dos

-r bx

BX:0000

:0

-R CX

CX:0000

:200

-W (写引导扇区的内容到文件)

c:/Bootsect.dos

Writing 0020 bytes

-Q

第二步:恢复 Win2000/XP/2003 的引导程序。在 Win98 中,将 Win2000/XP/2003 安装插入光驱,

安装系统,第一次重启计算机后,当出现欢迎画面时,根据提示按"R"键,启动到"恢复控制台",系

统会自动扫描并列出已经安装的操作系统清单供用户选择登录,以登录到 E:\WINDOWS 目录为例,键

入 2 后回车,输入管理员密码进入命令行状态。输入"FIXBOOT",并回答"Y",即可恢复 Win2000/XP/2003

的引导程序。

第三步:在提示符后输入"BootCFG /Rebuild",回车后开始系统扫描,随后列出操作系统清单,

并询问"将安装添加到启动列表中吗",回答"Y"。接下来在"输入加载识别符"后输入操作系统在启动

菜单中所要显示的文字,如"Microsoft Windows 2000",接着在"OS 加载选项"中输入"fastdetect"。

最后键入"EXIT"重启计算机。

第四步:经过以上的修复,Win2000/XP/2003 已经可以正常启动,但还缺少 Win98 启动选项,用

户无法通过选取启动菜单来启动 Win98。在 Win2000/XP/2003 中用记事本打开 Boot.ini,在[operating

systems]字段最后一行添加如下内容:C:\="Microsoft Windows 98"

7.当使用多重启动菜单选定某系统后,系统无法启动,提示"因以下文件的损坏或者丢失,Windows

无法启动:\system32\hal.dll,请重新安装以上文件"。

此问题只会出现在 Win2000/XP/2003 操作系统中,这主要是由于"hal.dll"文件丢失造成的,从

Win2000/XP/2003 安装光盘的 I386 目录中提取出此文件,复制到相应系统分区的 Windows/System32/

目录下覆盖即可。具体方法是在某个正常系统中使用 WinRAR 打开 I386 目录下的"hal.dl_",将其中

的"hal.dll"解压到被损坏操作系统的"Windows\System32"目录中,然后重启电脑即可。 8.在启动过程中,所有中文均为乱码,英文可以正常显示。

此问题是因字库文件"bootfont.bin"损坏或丢失造成的,从 Win2000/XP/2003 安装光盘的 I386

目录中提取此文件,复制到 C 盘根目录下覆盖即可。

三、总结

Windows 多重引导故障多种多样,就是老鸟在修复时也要耗费不少精力,更别说菜鸟了,面对满

屏的 E 文常常手足无措。由多重引导原理可知:多操作系统能否正常运转,主要由以下 7 个文件决定

的:NTLDR、ntdetect.com、Boot.ini、Bootsect.dos、bootfont.bin、ntoskrnl.exe、hal.dll。一

般情况下,我们只要在多操作系统安装完毕后或者是在可正常运转期间,将上述 7 个文件备份到一个

安全的地方,待出现多重引导故障时,将前 5 个文件复制到 C 盘根目录下,后 2 个文件复制到

Win2000/XP/2003 的"Windows\System32"文件夹下,即可解决多重引导的故障。

系统启动时,显示 c:windows\sysytem32\config\system 文件丢失或损坏,提示可进 XP 的故障

恢复控制台来恢复,于是我上网查了一下有关控制台的内容,下面就是一篇:

1.问:我想使用 WINDOWS 2000/XP 的故障恢复台为我解决计算机故障,那么怎样才能启动故障

恢复控制台?

答:方法有两种,一是从安装光盘启动,二是从硬盘启动。具体步骤如下:

第一种:请插入一张 Windows 2000 或 Windows XP 的安装光盘,并且在 BIOS 中设置为优先从 CD-ROM

启动,启动电脑以后,系统会自动进入 Windows 2000/XP 安装界面选项,按下“R”键选择第二项“要

使用故障控制台修复 Windows XP 安装,请按 R。”系统自动登录到故障恢复控制台,恢复控制台也就

成功启动了。

第二种:在 Windows 2000/XP 系统中插入 Window XP 的安装光盘,然后单击“开始→运行”,从

浏览中找到 Windows XP 安装光盘上 i386 文件夹,选中其中的 winnt32.exe 程序,回到运行对话框后,

输入参数/cmdcons,Windows XP 提示开始安装。安装好后重新启动计算机,在操作系统选择菜单中会

出现“Windows XP Recovery Console”选项,通过它也可以进入系统故障恢复控制台。