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文件丢失或损坏引起的故障,只要修复该文件即可,方法有二:
一是通过"假安装"Win2000/XP/2003来修复。即用一般方法安装操作系统,然后在第一次重启计算机后,按"F3"结束安装过程。此时Boot.ini文件已修复。接下来删除硬盘中以"$"开头和结尾的所有目录及文件,如:$WIN_NT$.~BT。同时删除Boot.ini文件中与这些目录或文件相关的菜单选项,并将"[boot loader]"和"[operating systems]"字段中的项目进行相应修改,具体方法参见下文。这种方法比较适合新手,创建文件过程简单,但耗时较长。
二是手动修复或重建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个分区。
理解这些参数以后大家就可根据自己的情况修改或重建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"文件夹下,即可解决多重引导的故障。