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”选项,通过它也可以进入系统故障恢复控制台。