Windows 无法启动的故障

来源:百度文库 编辑:神马文学网 时间:2024/05/01 22:08:27
上面已经说过,这种Windows系统无法启动一般是由于系统文件损坏,根据情况不同,系统可能给出如下的几种显示信息:
因为以下文件丢失或损坏,Windows 无法启动:
\WINDOWS\SYSTEM32\CONFIG\SYSTEM
您可以使用原始的安装程序光盘,来启动Windows XP安装程序,尝试修复此文件。在启动画面按 'R' 以开始修复
或者:
因以下的文件损坏或者丢失,Windows无法启动:
\System32\Ntoskrnl.exe 因以下的文件损坏或者丢失,Windows无法启动:
\System32\HAL.dll
NTLDR is Missing
Press any key to restart Invalid boot.ini
Press any key to restart
引发类似故障的原因很多,比如说没有按适当的步骤关机,或突然掉电,或感染了病毒,等等,对其的解决方法也不能一概而论,比如说有些情况下仅仅通过使用故障恢复控制台的两条简单命令FIXBOOT和FIXMBR就能解决,但更多的情况则是运行过该两项命令后故障依旧。本文试图给出这类故障的通用解决方案,首先让我们了解一下故障控制台的基础知识。
什么是故障恢复控制台(Recovery Console)
故障恢复控制台(Recovery Console)是Windows 2000 /XP /2003操作系统中用于修复系统的工具,可以启用和禁用服务,格式化驱动器,读写本地驱动器(包括使用 NTFS 文件系统的驱动器)上的数据,还可以执行许多其他管理任务。当需要通过将文件从磁盘或光盘复制到硬盘来修复计算机,或者需要重新配置导致计算机无法正常启动的服务时,故障恢复控制台尤为有用。
鉴于故障恢复控制台直接操作系统文件,因此微软建议仅当安全模式和其他启动选项都无效时才使用故障恢复控制台,并且建议只有高级用户(能够使用基本命令确定并找到有问题的驱动程序和文件)才可使用故障恢复控制台,当然,同时也必须具有是管理员权限。
如果系统中未安装故障恢复控制台的启动选项,无法通过正常途径进入系统时,便只能通过安装光盘了:
首先,重启计算机,进入BIOS设置,将“First Boot Device”设为“CDROM”,即将光驱设置为首选启动设备。
然后,将Windows XP安装光盘插入光驱,启动计算机,注意,在启动屏幕时出现“Press F2 to initiate the Automated System Recovery (ASR) tool.”时不要选择——自动系统恢复(ASR : Automated System Recovery)也是非常有用的功能,不过不是我们今天的话题——直到屏幕出现如下的提示,指出按 'R'进入故障恢复控制台:

系统会自动检测机器所安装的所有操作系统,并出现登录到哪一个Windows的提示,这时需要键入欲进入的操作系统序号,对大多数情况而言,用户往往只安装一个系统,这时键入 “1”,回车后会提示你键入管理员密码,键入正确的管理员密码并回车,当出现“C:\WINDOWS>”提示符的时侯,故障恢复控制台也就成功启动了。
需要注意的是,如果系统使用SCSI或 RAID 硬盘所需的第三方 SCSI 或 RAID 驱动程序,需要在故障恢复控制台启动时,按 F6 安装。此处的工作方式与其在安装操作系统过程中的工作方式相同。

背景知识 :安装故障恢复控制台
对高级用户而言,象上面所介绍的通过直接从 Windows XP 安装光盘启动来运行故障恢复控制台的方法太过麻烦,每次都要翻出安装光盘。更好的选择是在启动菜单中将它设置为一个启动选项,这样,在出现无法进入Windows 时,就可以从可用操作系统列表中选择故障恢复控制台选项,进入管理界面。
微软建议重要的服务器和 IT 人员的工作站,应当安装故障恢复控制台。
注意,故障恢复控制台的安装需在Windows XP环境下进行,因此,这不是当系统出现无法进入故障时应急之举。具体的安装步骤为:
1. 将 Windows XP 安装光盘插入 CD-ROM 驱动器。
2. 单击开始,然后单击运行。
3. 在打开框中,键入 d:\i386\winnt32.exe /cmdcons,其中 d 是 CD-ROM 驱动器的驱动器号。
4. 此时将出现“Windows 安装”对话框,其中描述了故障恢复控制台选项。要确认安装,请单击是。
5. 重新启动计算机。下次启动计算机时,启动菜单中将出现“Microsoft Windows 故障恢复控制台”。
此外,也可以从网络共享点使用已建立的通用命名标准 (UNC) 连接来安装故障恢复控制台。
故障恢复控制台命令
故障恢复控制台提供的命令提示窗口比较特殊,不同于普通的 Windows 命令提示窗口。故障恢复控制台有自己的命令解释程序。下面对故障恢复控制台中可以使用的命令作一简单介绍:
基本命令
这部分命令对于曾经使用过DOS的用户或者熟悉Windows 命令行的用户来说属于很基本的,不过,要注意的是,部分命令的语法与格式稍有不同。
Attrib 用于更改一个文件或子目录的属性。
Batch 执行您在文本文件、Inputfile 中指定的命令。Outputfile 存储命令的输出结果。如果省略 Outputfile 参数,输出结果将显示在屏幕上。
CD (Chdir) 操作范围仅限于当前 Windows 安装的系统目录、可移动媒体、任何硬盘分区的根目录或本地安装源。
Chkdsk 即使驱动器未被标志为脏(dirty)状态,使用/p 选项也会强制运行 Chkdsk;/r 选项查找损坏扇区并恢复可读信息,此选项包含 /p 选项的功能。Chkdsk 需要 Autochk。Chkdsk 会在启动文件夹中自动查找 Autochk.exe 文件。如果 Chkdsk 在启动文件夹中找不到此文件,它将查找 Windows 2000 安装光盘。如果 Chkdsk 找不到安装光盘,会提示用户提供 Autochk.exe 的位置。
Cls 用于清除屏幕。
Copy 用于将文件复制到目标位置。默认情况下,不能将可移动媒体用作目标位置,也不能在该位置的路径中使用通配符。从 Windows 2000 安装光盘复制压缩文件会自动将该文件解压缩。
Del (Delete) 用于删除一个文件。操作范围仅限于当前 Windows 安装的系统目录、可移动媒体、所有硬盘分区的根目录或本地安装源。默认情况下,不能使用通配符。
Dir 显示所有文件的列表,包括隐藏文件和系统文件。
Disable 禁用 Windows 系统服务或驱动程序。变量 service_or_driver 是您希望禁用的服务或驱动程序的名称。当您使用此命令禁用一项服务时,该命令在将类型更改为 SERVICE_DISABLED 之前,会显示服务的初始启动类型。请记下初始启动类型,以便可以使用 enable 命令重新启动该服务。
Diskpart 管理硬盘卷上的分区。/add 选项创建新分区。/delete 选项删除现有分区。变量 device 是新分区的设备名称(例如 \device\harddisk0)。变量 drive 是要删除的分区的驱动器号(例如 D)。Partition 是待删除分区的基于分区的名称(例如:\device\harddisk0\partition1),可用于代替 drive 变量。变量 size 是新分区的大小(以兆字节计)。
Enable 启用 Windows 系统服务或驱动程序。变量 service_or_driver 是您希望启用的服务或驱动程序的名称,其中start_type 是所启用服务的启动类型。启动类型使用下列格式之一:
SERVICE_BOOT_START
SERVICE_SYSTEM_START
SERVICE_AUTO_START
SERVICE_DEMAND_START
Exit 退出故障恢复控制台,然后重新启动计算机。
Expand 展开一个压缩文件。变量 source 是您希望展开的文件。默认情况下,不能使用通配符。变量 destination 是新文件的目录。默认情况下,目标不能是可移动媒体,也不能是只读的。可以使用 attrib 命令删除目标目录的只读属性。如果源文件包含多个文件,则需使用 /f:filespec 选项。该选项允许使用通配符。/y 选项禁用覆盖确认提示。/d 选项指定不应展开这些文件并显示源文件中的文件目录。在前面如HAL.dll损坏的例子,在某些情况下可以通过使用Expand命令将安装光盘I386文件夹中的原始文件“hal.dl_” 展开到“c:\windows\system32”排除故障。
Format 格式化磁盘。/q 选项执行快速格式化。/fs 选项指定文件系统。
Help 如果您没有使用命令变量指定命令,help 会列出故障恢复控制台支持的所有命令。
Listsvc 显示计算机上所有可用服务和驱动程序。
Logon 显示检测到的 Windows 安装并要求输入用于这些安装的本地管理员密码。使用此命令可以转至另一安装或子目录。
Map 显示当前的活动设备映射。包含 arc 选项可以指定使用高级 RISC 计算 (ARC) 路径(Boot.ini 的格式),而不使用 Windows 设备路径。
MD (Mkdir) 操作范围仅限于当前 Windows 安装的系统目录、可移动媒体、任何硬盘分区的根目录或本地安装源。
More/Type 在屏幕上显示指定的文本文件。
Rd (Rmdir) 操作范围仅限于当前 Windows 安装的系统目录、可移动媒体、任何硬盘分区的根目录或本地安装源。
Ren (Rename) 操作范围仅限于当前 Windows 安装的系统目录、可移动媒体、任何硬盘分区的根目录或本地安装源。您不能将新驱动器或路径指定为目标。
Set 显示和设置故障恢复控制台的环境变量。
Systemroot 将当前目录设置为 %SystemRoot%。
修复不能启动故障的重要命令
Bootcfg 修改 Boot.ini 文件(设置启动配置和恢复)。
Bootcfg是一个相当重要的命令,尤其对系统不能启动的场合,使用其“/Rebuild”选项(这是个隐含选项)即运行“BootCfg /Rebuild”将在故障恢复控制台中对系统启动设置进行全面地检查并排错,移除、替换或修复导致Windows不能启动的系统文件,包括如下方面:
Windows Hardware Abstraction Layer (HAL : 硬件抽象层)
损坏的注册表项 (\WINDOWS\SYSTEM32\CONFIG\xxxxxx)
不当的 BOOT.INI 设置
损坏的 NTOSKRNL.EXE
丢失的NT Loader (NTLDR)
以及其他引发蓝屏停止无法进入Windows系统的相关EXE、DLL文件
Fixboot 在系统分区上写入新的启动扇区。
因系统分区错误导致无法启动的情况便可以通过Fixboot直接恢复。用法如下:fixboot [drive],drive为将要写入引导扇区的驱动器。例如fixboot d:就是向驱动器D:的系统分区写入新的分区引导扇区。注意:如果不带任何参数,fixboot命令将向用户登录的系统分区写入新的区引导扇区。
Fixmbr 修复启动磁盘分区的主启动代码。变量 device 是一个可选名称,指定需要新的主启动记录的设备。当目标是启动设备时可省略该变量。
我们这里介绍的方法在原理上来说十分简单,即首先将Boot.ini文件删除,然后通过“BootCfg /Rebuild”命令将其重建,在重建的过程中,BootCfg同时也会修复在本文开篇所列出的多种可能损坏的系统文件,最后使用FixBoot写入新的启动扇区。通过这样的方法,只需简单的8条命令,即可修复绝大多数Windows系统不能正常启动的故障。
下面我们分步骤详细解释。
删除Boot.ini文件
首先,上面我们说过,进入系统控制台后,默认工作目录为系统目录,如果Windows安装在C:盘时,即“c:\windows”,而Boot.ini文件在根目录上,此时我们需要进入上一级目录:
命令1 : cd..
Boot.ini是一个相当重要的系统文件,因此,在未解除系统对其的保护状态前,我们是不能对其进行删除操作的。要做到这一点,需要运行三条命令,依次解除其隐含、只读和隐含属性,这样才能最终将其删除。
命令2 : ATTRIB –H C:\BOOT.INI
命令3 : ATTRIB –R C:\BOOT.INI
命令4 : ATTRIB –S C:\BOOT.INI
命令5 : DEL BOOT.INI

删除boot.ini的步骤
使用BootCfg修复启动故障
现在到了最重要的步骤,运行:
命令5 : BOOTCFG /REBUILD
该命令将遍历系统的安装设置,修复其中的故障部分,纠正导致Windows不能正常启动的一系列错误,并重建Boot.ini文件。
在Boot.ini重建结束后,将出现“Enter OS Load Options:”输入栏,这时,为保证系统的正常启动,需要注意的是:
1、对 Windows XP 用户而言,必须添加 /FASTDETECT 选项。
2、如果系统的CPU支持Intel的 XD 或 AMD的 NX功能,必须添加 /NOEXECUTE=OPTIN 选项。
在下面图示的例子中,为说明方便,同时添加了上面两个开关选项,不过,切记,如果您的CPU不支持相应的功能,千万不要添加 NOEXECUTE 选项,不然,会造成系统启动的故障。
而 “Enter Load Identifier” 部分,则相对关系不大,输错也没有太大的影响。当然,如果您是一个完善主义者,则可如图例中输入完整的如 “Microsoft Windows XP Home Edition”之类,显得比较规范。

使用BootCfg /Rebuild重建boot.ini
进行磁盘检查
这一步骤将检查系统分区的完整性,虽然从某种意义上说,这一步骤并不是必需的,不过,确保系统硬盘能够运转正常,没有坏扇区,也是保证Windows系统长期安全的必要手段。命令很简单:
命令7 : CHKDSK /R /F
该命令的运行时间根据机器配置的不同而变化,在某些较为古老的PC的甚至可能会超过半个小时。
写入新的引导扇区
命令8 : FIXBOOT
该命令将清除修复过程可能造成的影响系统运行的因素,重写硬盘的引导扇区。当出现 “Sure you want to write a new bootsector to the partition C: ?” 提示时敲入 “Y”确认即可。
这样,我们的修复过程即宣告完成。在故障恢复控制台中输入“EXIT”以重启系统,您会惊奇地发现Windows系统能够正常启动,曾经出现的如DLL、注册表项、或 NTLDR之类的错误奇迹般消失了。通过这样的方法,可以避免重装Windows之类的繁琐劳动,节省您的时间。