找回密码
 加入我们
搜索
热搜: 活动 交友 discuz
查看: 2230|回复: 7

Windows深入了解故障恢复控制台1--概述

[复制链接]
发表于 2010-5-24 10:32:39 | 显示全部楼层 |阅读模式
转载自http://billma.blog.51cto.com/1183799/318032

相信很多人都曾遇到过类似的情况:前一天用着还正常的Windows 系统,第二天却突然不能启动,无论怎样尝试,连安全状态也无法进入。一般说来,这是由于某些系统文件发生意外故障,无奈之下,很多人只能采取重装Windows系统的方法,或者之前曾备份了系统分区的话使用Ghost的镜像文件恢复,不过,这往往是一个繁琐的过程,如重装系统需要重新安装大量的驱动和应用程序,而使用Ghost恢复则面临用户私人数据的导出与恢复。
其实,我们可以使用Windows 系统的故障恢复控制台(Recovery Console)——注意,Windows 2000之后的版本,如Windows XP等才可以,而之前的版本如Windows 98则不支持——修复其中的系统错误以及更新系统文件,这样,原来的系统设置、所安装的应用程序及用户个人的资料和数据不会受到影响。
作为IT专业管理人员,显然更有了解Window故障恢复控制台的必要性。
什么是故障恢复控制台(Recovery Console)
故障恢复控制台(Recovery Console)是Windows 2000 /XP /2003操作系统中用于修复系统的工具,可以启用和禁用服务,格式化驱动器,读写本地驱动器(包括使用 NTFS 文件系统的驱动器)上的数据,还可以执行许多其他管理任务。当需要通过将文件从磁盘或光盘复制到硬盘来修复计算机,或者需要重新配置导致计算机无法正常启动的服务时,故障恢复控制台尤为有用。
鉴于故障恢复控制台直接操作系统文件,因此微软建议仅当安全模式和其他启动选项都无效时才使用故障恢复控制台,并且建议只有高级用户(能够使用基本命令确定并找到有问题的驱动程序和文件)才可使用故障恢复控制台,当然,同时也必须具有是管理员权限。
使用故障恢复控制台(Recovery console)前,你所需要了解到的:
1.  你需要知道系统管理员账号administrator 的密码;(Dos下登陆控制台用)
2.  在运行windows Recovery console 前,你需要认识到你至少要有一些使用MS-Dos的经验
3.  你只对系统根目录及windows系统目录具有读写权限。这就意味着你不能操作其他目录。
4.  你对软盘,光驱,其他硬盘驱动的文件只有读的权限;这意味着你不能复制文件到其他路径下作为备份。你只能复制其他路径下的文件到系统目录及系统目录下。
 楼主| 发表于 2010-5-24 10:35:42 | 显示全部楼层

Windows深入了解故障恢复控制台2--安装及启动

安装操作系统时,故障恢复控制台并不会自动。我们需要手动安装或运行一下。有两种安装方式,一种是开机时从安装光盘中临时调用;另一种是在Windows操作系统中直接安装,这样以后就不用系统光盘了
开机时,从系统安装光盘中启动控制台
首先,重启计算机,进入BIOS设置,将“First Boot Device”设为“CDROM”,即将光驱设置为首选启动设备。
然后,将Windows 系统安装光盘插入光驱,启动计算机,注意,在启动屏幕时出现“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环境安装故障恢复控制台
  对高级用户而言,象上面所介绍的通过直接从 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) 连接来安装故障恢复控制台。
回复

使用道具 举报

 楼主| 发表于 2010-5-24 10:59:37 | 显示全部楼层

Windows深入了解故障恢复控制台3--控制台命令介绍

使用help 命令, windows 故障恢复台支持的命令列表如下:

   attrib    del        fixboot   more     set
   batch     delete     fixmbr    mkdir    systemroot
   bootcfg   dir        format    more     type
   cd        disable    help      net           
   chdir     diskpart   listsvc   rd            
   chkdsk    enable     logon     ren           
   cls       exit       map       rename  
   copy      expand     md        rmdir
                           
我们将以上命令分成2类:普通命令和重要命令。 我们会分别进行介绍。

普通命令:
attrib
使用attrib命令加上以下参数,我们就可以改变文件或文件夹的属性。
-R : 去除只读属性
+R : 加入只读属性
-S : 去除系统文件属性
+S : 加入系统文件属性
-H : 不隐藏文件
+H : 隐藏文件
-C : 不压缩文件
+C : 压缩文件

Notes
+  设置一个属性
- 重置属性
R 文件只读属性
S 系统文件属性
H 文件隐藏属性
C 文件压缩属性
实例将boot.ini变更为普通文件:
ATTRIB –H C:\BOOT.INI
ATTRIB –R C:\BOOT.INI
ATTRIB –S C:\BOOT.INI
batch
格式:
Batch inputfile [outputfile]
使用这个命令, 我们可以运行写在txt文本文件中的cmd命令.
Inputfile: 指的是一个文本文件,其中包含等待运行的命令列表.
Outputfile: 指的是命令运行的结果,写在哪个文件中。如果没有指定输出文件, 输出结果会显示在屏幕上。
Cd& Chdir
使用cd与chdir命令,可以切换到不同的文件夹中。实例如下:
“cd ..” 转入父级目录
“cd ”没有参数;显示当前所在的文件夹路径及文件夹
Chdir 与Cd类似,它们都以空格作为分隔符,如果路径包含空格,路径两侧必须加引号。
例如: cd “C:\windows\good start”

CHKDSK
格式:
chkdsk drive /p /r
chkdsk命令用于检查指定的盘符,并修复盘符;如果需要的话。 这个命令同时也会标志出坏扇区,并恢复出可读信息。

你可以使用如下参数选项:
/p 强制检查盘驱,并修复任何错误。.
/r定位坏扇区,并恢复可读信息。
注意: 如果你调用参数/r, 其实/p参数也已经被默认包含了。当你使用没有参数的chkdsk命令时,它就会检查当前的盘驱,并没有任何参数选项。
当你运行chkdsk命令时,你必须使用

Cls
屏幕清空命令

COPY
格式:
copy source destination

Source文件可以是移动存储,也可以是其他盘驱下的文件
Destination: 如果没有指定目标路径,则默认路径为当前文件夹;如果文件已经存在,系统会提示是否覆盖。

DIR
格式:
dir drive: path filename
使用这个命令,可以获取主文件夹下的文件与子文件夹列表。”drive: path filename “指的是盘符及文件夹和文件;查询的信息可以隐藏文件和系统二五年间; 文件可以具有以下属性:
D Directory 文件夹
H Hidden file 隐藏文件
S System file 系统文件
E Encrypted 加密
R Read-only file 只读
A Files ready for archiving 同步文档
C Compressed 压缩
P Reparse point

Type
格式:
Type filename
利用Type命令来打开一个文本文件
回复

使用道具 举报

 楼主| 发表于 2010-5-24 11:01:00 | 显示全部楼层

Windows深入了解故障恢复控制台3--控制台命令介绍二

重要命令:
Bootcfg:
  bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。
  含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。
  用法:
  bootcfg /default  设置默认引导项。
  bootcfg /add    向引导列表中添加 Windows 安装。
  bootcfg /rebuild  重复全部 Windows 安装过程并允许用户选择要添加的内容。
  注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。
  bootcfg /scan    扫描用于 Windows 安装的所有磁盘并显示结果。
  注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。
  bootcfg /list   列出引导列表中已有的条目。
  bootcfg /disableredirect 在启动引导程序中禁用重定向。
  bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings]
  在启动引导程序中通过指定配置启用重定向。
  范例:
      bootcfg /redirect com1 115200          bootcfg /redirect useBiosSettings
  
Diskpart
  创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。
  diskpart [ /add |/delete] [device_name |drive_name |partition_name] [size]
  参数 无
  如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式版本。
  /add
  创建新的分区。
  /_delete
  删除现有分区。
  device_name

  要创建或删除分区的设备。设备名称可从 map 命令的输出获得。例如,设备名称:
  \Device\HardDisk0
  drive_name
  以驱动器号表示的待删除分区。仅与 /_delete同时使用。以下是驱动器名称的范例:
  D:
  partition_name
  以分区名称表示的待删除分区。可代替 drive_name 使用。仅与 /_delete同时使用。以下是分区名称的范例:
  \Device\HardDisk0\Partition1
   大小
  要创建的分区大小,以兆字节 (MB)表示。仅与 /add 同时使用。
  范例
  下例将删除分区:
diskpart /_delete\ Device\ HardDisk0\ Partition3
diskpart /_deleteF:
  下例将在硬盘上添加一个 20 MB 的分区:
  diskpart /add \ Device\ HardDisk0 20
  Fixboot
  向系统分区写入新的分区引导扇区。只有在使用故障恢复控制台时,才能使用 fixboot 命令。
  fixboot [drive]
  参数  驱动器
  将要写入引导扇区的驱动器。它将替代默认的驱动器(即用户登录的系统分区)。例如,驱动器:D:
  范例
  下列命令范例向驱动器 D: 的系统分区写入新的分区引导扇区:
  fixboot d:
  注意: 如果不带任何参数,fixboot 命令将向用户登录的系统分区写入新的分区引导扇区。
  Fixmbr
  
修复启动磁盘的 主启动记录。fixmbr 命令仅在使用故障恢复控制台时才可用。
  fixmbr [ device_name]
  参数
  device_name
  要写入新的主引导记录的设备(驱动器)。设备名称可从 map 命令的输出获得。例如,设备名称:
  \Device\HardDisk0
  范例
  下列命令示例向指定设备写入一个新的主引导记录:
  fixmbr \Device\HardDisk0
  注意
如果不指定 device_name,新的主引导记录将被写入引导设备,即装载主系统的驱动器。
如果系统检测到无效或非标准分区表标记,将提示用户是否继续执行该命令。除非您访问驱动器有问题,否则不要继续进行。向系统分区写入新的主引导记录可能破坏分区表并导致分区无法访问。
Format
  将指定的驱动器格式化为指定的文件系统。含有下列参数的 format 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 format 命令。
  format [ drive:] [ /fs:file-system]
  参数
  drive:
  指定要格式化的驱动器。不能从故障恢复控制台格式化软盘。
  /q
  对驱动器进行快速格式化。不扫描驱动器看是否有坏区域,因此只应对以前格式化过的驱动器使用该参数。
  /fs:file-system
  指定要使用的文件系统:FAT、FAT32 或 NTFS 。如果未指定文件系统,将使用现有的文件系统格式。
EXPAND
格式:
expand source [/F:filespec] [destination] [/y]
expand source [/F:filespec] /D
使用这个命令来解压缩文件。 Source指的是需要解压的压缩包文件名;destination指定了解压后的文件存放的路径及文件名。如果不指定目的路径,则这个命令则会默认为当前文件夹路径。

你可以使用以下命令选项:
/y 需要覆盖一个已存在的文件时,直接覆盖,没有提示
/f:filespec 指定压缩包中的具体那个文件需要被解压缩出来
/D 不解压缩,只显示被解压缩的文件在压缩包中的位置
如果源文件包中包含了多个文件则必须使用/f: filespec 参数。
例如:
Expand sp2.cab /f:test.dll c:\windows\test.bill

目标文件夹可以是系统安装目录的任意文件夹; 但不能是可移动介质。
而且目标文件,属性不能为只读,你可以是 attrib命令去除只读属性。
回复

使用道具 举报

 楼主| 发表于 2010-5-24 11:03:03 | 显示全部楼层

Windows深入了解故障恢复控制台4--控制台修复具体实例1-boot.ini

当你启动系统时遇到系统时,遇到以下几个问题
错误1
nvalid Boot.ini
Windows could not start because the following file is missing or corrupt:
错误2
Windows\System32\Hal.dll
原因分析
当Boot.ini文件丢失,损坏,或包含异常的入口信息时;会导致以上的问题。
解决步骤:
1.  系统启动时,进入BIOS, 设置成光驱启动,保存重启
2.  插入系统安装盘,启动时按任意键,进入安装状态,(详细进入过程见故障恢复控制台2--安装及启动篇)
3.  进入windows故障恢复控制台后,输入命令:BOOTCFG /REBUILD; 此命令作用是该命令将遍历系统的安装设置,修复其中的故障部分,纠正导致Windows不能正常启动的一系列错误,并重建Boot.ini文件。
4.  在Boot.ini重建结束后,将出现“Enter OS Load Options:”输入栏,这时,为保证系统的正常启动,需要注意的是:
a. 对 Windows XP 用户而言,必须添加 /FASTDETECT 选项。
b. 如果系统的CPU支持Intel的 XD 或 AMD的 NX功能,必须添加 /NO_execUTE=OPTIN 选项。
对于 “Enter Load Identifier” 部分,输错也没有太大的影响。当然,如果您是一个完善主义者,则可如图例中输入完整的如 “Microsoft Windows XP Home Edition”之类,显得比较规范。

5.  这一步骤将检查系统分区的完整性,虽然从某种意义上说,这一步骤并不是必需的,不过,确保系统硬盘能够运转正常,没有坏扇区,也是保证Windows系统长期安全的必要手段。命令很简单:
CHKDSK  /R /F
该命令的运行时间根据机器配置的不同而变化,在某些较为古老的PC的甚至可能会超过半个小时。
6. 写入新的引导扇区
FIXBOOT 该命令将清除修复过程可能造成的影响系统运行的因素,重写硬盘的引导扇区。当出现 “Sure you want to write a new bootsector to the partition C: ?” 提示时敲入 “Y”确认即可。
这样,我们的修复过程即宣告完成。通过这样的方法,可以避免重装Windows之类的繁琐劳动,节省了时间
回复

使用道具 举报

 楼主| 发表于 2010-5-24 11:04:05 | 显示全部楼层
Boot.ini 知识详解:
Boot.ini 是一个隐藏只读的系统文本文件. 它包含启动的系统列表及默认属性。
boot.ini 文件包含2个节点:
[boot loader]节点
这个节点的配置信息应用所有安装在计算机的操作系统。包含了等待windows启动需要的时间timeout, 默认启动的操作系统
以下示例显示了[boot loader] 的应用

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems] 节点
它包含所有安装在此计算机上操作系统列表;包括启动路径, 启动列表上的显示名称等等
应用实例如下:
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect

Boot.ini 使用ARC (Advanced Risk Computing)命名方式来描述操作系统的启动路径。例如:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
“Microsoft Windows XP Professional”是一个友好名称,以方便用户在启动列表中,进行选择。.
启动参数的设置. 这个有点像命令行的参数。每个参数以“/”开头,如/fastdetect 你可以没有启动参数或设置多个启动参数
一个操作系统可以设置成使用多个参数

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional"
ARC名称注解
主要有2种类型
multi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>
scsi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>
对与multi的解释如下:
MULTI(X) 语法形式的 ARC 路径仅在基于 x86 的计算机上使用。在 Windows NT 3.1 版中,此路径仅对 IDE 和 ESDI 驱动器有效;在 Windows NT 版本 3.5、3.51 和 4.0 中,它还对 SCSI 驱动器有效。
MULTI() 语法向 Windows NT 指明它应该依靠计算机 BIOS 来加载系统文件。这意味着操作系统将使用中断 (INT) 13 BIOS 调用来查找和加载 NTOSKRNL.EXE 以及启动 Windows NT 所需的任何其他文件。
参数 X、Y、Z 和 W 具有以下含义:
a.       X 是适配器的序号,并且应始终为 0(有关原因,应参阅下文)。
如果 ARC 路径以 MULTI() 开头,则 Y 始终为 0(零),原因在于 MULTI() 如上所述请求 INT 13 调用,因而不需要 DISK() 参数信息。
b.       Z 是适配器上物理磁盘的序号,并且通常是介于 0 和 3 之间的数字。 IDE通道最多支持4个硬盘,所以数字范围为0~3
c.       W 是分区编号。除类型 5(MS-DOS 扩展分区)和类型 0(未用)分区以外,所有分区都有一个编号,并且首先为主分区编号,然后再为逻辑驱动器编号。 注意:W 的第一个有效数字为 1;与此相对的是,X、Y 和 Z 从 0(零)开始。
理论上,可使用此语法在系统中的任意驱动器上启动 Windows NT。不过,这需要通过标准 INT 13 接口正确地标识所有驱动器;因为对这一点的支持随磁盘控制器的不同而不同,而且大多数系统 BIOS 只通过 INT 13 标识单个磁盘控制器,所以实际上只有以下使用方法才是安全的:使用此语法从连接到主磁盘控制器的头两个驱动器中启动 Windows NT,或者,如果主磁盘控制器是双通道 EIDE 控制器,则从连接到主磁盘控制器的头四个驱动器中启动 Windows NT。
在纯 IDE 系统中,MULTI() 语法将对双通道控制器的主通道和辅助通道上最多四个驱动器起作用。
SCSI(X) 语法
SCSI() 语法适用于基于 RISC 的计算机和基于 x86 的计算机,并且适用于所有版本的 Windows NT。使用 SCSI() 符号表明 Windows NT 将加载一个启动设备驱动程序,并使用该驱动程序来访问启动分区。
在基于 x86 的计算机上,所使用的设备驱动程序是 NTBOOTDD.SYS,它位于系统驱动器(通常是驱动器 C)的根目录中,并且是所使用的驱动器控制器的设备驱动程序的副本。
在 RISC 计算机上,按照 RISC 规范的要求将驱动程序内置于固件中,因此不需要任何文件。

当使用 SCSI() 语法时,参数 X、Y、Z 和 W 具有以下含义:
X 是由 NTBOOTDD.SYS 驱动程序标识的适配器序号。SCSCI 网络适配器序号
Y 是目标磁盘的 SCSI ID。
Z 是目标磁盘的 SCSI 逻辑单元号 (LUN)。此编号几乎始终为 0(零)。
W 为分区编号。除类型 5(MS-DOS 扩展分区)和类型 0(未用)分区以外,所有分区都有一个编号,并且首先为主分区编号,然后再为逻辑驱动器编号。
注意:由于分区0被MS-DOS占用,所以W 的第一个有效数字为 1;与此相对的是,X、Y 和 Z 从 0 开始。
使用 SCSI() 符号时,X 的值取决于 NTBOOTDD.SYS。Windows NT 下的每个 SCSI 驱动程序都有其自己的控制器编号方法,尽管一般情况下它们遵循控制器上的 BIOS 的加载顺序(前提是 BIOS 被加载)。
另外,如果您拥有多个使用不同设备驱动程序的控制器,则在确定 X 参数的值时,只应该考虑那些由 NTBOOTDD.SYS 控制的控制器。例如,如果您拥有一个 Adaptec 2940 控制器(它使用驱动程序 AIC78XX.SYS)和一个 Adaptec 1542 控制器(它使用 AHA154X.SYS),X 将始终为 0。将要更改的是 NTBOOTDD.SYS 文件:
如果您从 Adaptec 2940 上的驱动器中加载 Windows NT,NTBOOTDD.SYS 将是 AIC78XX.SYS 的副本。
如果您从 Adaptec 1542 上的驱动器中加载 Windows NT,NTBOOTDD.SYS 将是 AHA154X.SYS 的副本。
回复

使用道具 举报

 楼主| 发表于 2010-5-24 11:05:17 | 显示全部楼层

Windows深入了解故障恢复控制台5--控制台修复具体实例2-ntokrnl

Ntoskrnl.exe异常或丢失造成系统不能启动,截图如下

[/url]
造成这个问题的原因是多种多样的,大体有这么2种原因
1.  Ntoskrnl.exe 损坏或丢失
2.  硬件损坏或兼容性问题
硬件损坏或兼容性问题比较少见,但确实存在;硬件损坏多见于内存,我们可以将内存更换,来检查是否解决问题;兼容性问题则多见于兼容机, 像Dell, IBM, HP的服务器是不会出现此问题。如果此类问题反复问题,则要怀疑兼容性的问题,我就碰见过这样的问题;单个硬件没有任何问题,但组装在一起就会爆发异常。
我们主要讨论第一种情况
Ntoskrnl.exe 文件作用:
1.       系统启动时被Ntldr调用,
2.       调用Windows的启动Logo画面
流程图如下:

[url=http://blog.vsharing.com/Uploads/UserDirs/4/1453/580833/WindowsConsole/5-2.JPG]


注意一点:RNL.EXE 和HAL.DLL 文件一样, NTOSKRNL.EXE 不一定是原始的文件名。对于multi-processor 系统来说, NTOSKRNL.EXE 是由 Ntoskrnlmp.exe 改名而来。
方法1 从系统安装光盘修复
1.  插入光盘,开机启动,进入windows故障恢复台
2.  假设原先系统安装在C盘;光盘盘符为F盘;使用expand命令进行解压缩,直接复制是不可以的。
Expand sp2.cab –F: ntoskrnl.exe   c:\Windows\System32
3.  解压缩完毕后,重启,应该就可以正常工作
方法2从系统备份文件夹dllcache修复
正常情况下,windows操作系统会有一个重要系统文件的备份文件夹;路径为C:\WINDOWS\system32\dllcache; 我们可以从那里直接还原
1.  插入光盘,开机启动,进入windows故障恢复台
2.  ntoskrnl.exe重命名
将c:\Windows\System32\ntoskrnl.exe重命名为ntoskrnl_bk.exe
Ren c:\windows\system32\Ntoskrnl.exe  c:\windows\system32\Ntoskrnl_bk.exe
3. 复制4个文件
将C:\WINDOWS\system32\dllcache中的 Ntkrnlmp.exe,Ntkrnlpa.exe,Ntkrpamp.exe,Ntoskrnl.exe这4个文件复制到
Copy C:\WINDOWS\system32\dllcache\***.exe  c:\Windows\System32\***.exe
4. 然后我们一个一个的尝试把它们重命名为ntoskrnl.exe
Ren c:\windows\system32\****.exe  c:\windows\system32\ Ntoskrnl.exe
每尝试一下,您可以重启一下,看是否可以启动。
Mp 表示多CPU
PA 表示使用了/PAE及4G以上内存
您可以根据您的机器的硬件配置,来排个优先级。比如如果是小于4G内存的多CPU服务器,那我们就从ntkrnlmp.exe开始改起,如果大于4G的多CPU,则先改ntkrpamp.exe
方法三:修复启动项
如果前面两个办法都无法解决问题,我们可以使用第三个办法。
FixMBR
FixBoot
来进行修复
方法四:制作启动盘,进入系统,修改分区Active属性
前三个方法,也不可行的话;我们可以猜测可能我们误操作,将操作系统所在的分区,设置成了“非活动分区”,造成的异常
我们可以使用软盘或WinPE启动盘(启动软盘的制作参照http://support.microsoft.com/kb/325879),进入系统;
点我的电脑,右键“Manage”,---》“Storage”-à”Disk Management”, 选中原系统盘,右键;判断“Make Partition as active”是否变灰,如果没有变灰,点中它,设置为active即可。


[/url]
本文出自 “[url=http://billma.blog.51cto.com/]Bill, Ma--IT Pro技术及应用
” 博客,请务必保留此出处http://billma.blog.51cto.com/1183799/318045
回复

使用道具 举报

 楼主| 发表于 2010-5-24 11:17:32 | 显示全部楼层

Windows深入了解故障恢复控制台6--控制台修复具体实例3-ntldr

NTLDR,Windows NT 架构操作系统特有的一个文件,用于操作系统的引导。如果这个文件不存在则操作系统不能够正常启动。该文件储存在启动卷根目录下,一般为C:\。
NTLDR 职责:
  1. 解析BOOT.INI 文件的内容。
  2. 加载Windows NT 内核或把控制权交给BOOTSECT.DOS2文件用于启动Win9X 或把控制权交给其他操作系统引导代码
NTLDR 工作描述:
NTLDR 启动以后,如果在系统卷根目录下发现了Hiberfil.sys 文件且文件是有效的,那么NTLDR 读取Hiberfil.sys 里面的信息并让系统恢复到休眠以前的状态。这个时候并不处理BOOT.INI 文件。
如果BOOT.INI 文件里面有两个或两个以上的启动选项,那么NTLDR 暂停系统引导,让用户选择一个启动选项直至超时。超时值由BOOT.INI 里面的TimeOut 值设定。超时以后,NTLDR 读取BOOT.INI里面DEFAULT 后面的信息,获取Windows 目录的路径以便执行后面的启动流程。
NTLDR详解
NTLDR一般存放于C盘根目录下,是一个具有隐藏和只读属性的系统文件。它的主要职责是解析Boot.ini文件。如果你对它的理解还不是很清楚,那么下面我们就以Windows XP为例介绍NTLDR在系统引导过程中的作用。 Windows XP在引导过程中将经历预引导、引导和加载内核三个阶段,这与Windows 9X直接读取引导扇区的方式来启动系统是完全不一样的,NTLDR在这三个阶段的引导过程中将起到至关重要的作用。
1.预引导阶段
    在预引导阶段里计算机所做的工作有:运行POST程序,POST将检测系统的总内存以及其他硬件设备的状况,将磁盘第一个物理扇区加载到内存,加载硬盘主引导记录并运行,主引导记录会查找活动分区的起始位置。接着活动分区的引导扇区被加载并执行,最后从引导扇区加载并初始化NTLDR文件。

2.引导阶段
    在引导阶段中,Windows XP将会依次经历初始引导加载器阶段、操作系统选择阶段、硬件检测阶段以及配置选择阶段这四个小的阶段。
  (1)在初始引导加载器阶段中,NTLDR将把计算机的微处理器从实模式转换为32位平面内存模式,在实模式中,系统会为MS-DOS预留640KB大小的内存空间,其余的内存都被看做是扩展内存,在32位平面模式中系统将所有内存都视为可用内存,然后NTLDR执行适当的小型文件系统驱动程序,这时NTLDR可以识别每一个用NTFS或FAT格式的文件系统分区,至此初始引导加载器阶段结束。
  (2)当初始引导加载器阶段结束后将会进入操作系统选择阶段,如果计算机上安装了多个操作系统,由于NTLDR加载了正确的Boot.ini文件,那么在启动的时候将会出现要求选择操作系统的菜单,NTLDR正是从boot.ini文件中查找到系统文件的分区位置。如果选择了NT系统,那么NTLDR将会运行NTDETECT.COM文件,否则NTLDR将加载BOOTSECT.DOS,然后将控制权交给BOOTSECT.DOS。如果Boot.ini文件中只有一个操作系统或者其中的timeout值为0,那么将不会出现选择操作系统的菜单画面,如果Boot.ini文件非法或不存在,那么NTLDR将会尝试从默认系统卷启动系统。
小提示:NTLDR启动后,如果在系统根目录下发现有Hiberfil.sys文件且该文件有效,那么NTLDR将读取Hiberfil.sys文件里的信息并让系统恢复到休眠以前的状态,这时并不处理Boot.ini文件。
(3)当操作系统选择阶段结束后将会进入硬件检测阶段,这时NTDETECT.COM文件将会收集计算机中硬件信息列表,然后将列表返回到NTLDR,这样NTLDR将把这些硬件信息加载到注册表“HKEY_LOCAL_MACHINE”中的Hardware中。
(4)硬件检测阶段结束后将会进入配置选择阶段,如果有多个硬件配置列表,那么将会出现配置文件选择菜单,如果只有一个则不会显示。
3.加载内核阶段
    核阶段中,NTLDR将加载NTOKRNL内核程序,然后NTLDR将加载硬件抽象层(HAL.dll),接着系统将加载注册表中的“HKEY_MACHINESystem”键值,这时NTLDR将读取“HKEY_MACHINESystemselect”键值来决定哪一个ControlSet将被加载。所加载的ControlSet将包含设备的驱动程序以及需要加载的服务。再接着NTLDR加载注册表“HKEY_LOCAL_MACHINESystemservice”下的start键值为0的底层设备驱动。当ControlSet的镜像CurrentControlSet被加载时,NTLDR将把控制权传递给NTOSKRNL,至此引导过程将结束。
    如果在启动的时候按F8键,那么我们将会在启动菜单中看到多种选择启动模式,这时NTLDR将根据用户的选择来使用启动参数加载NT内核,用户也可以在Boot.ini文件里设置启动参数。
估计可能是Ntldt、Ntdetect.com、Boot.ini几个文件丢失或破坏引起的。
NTLDR文件是WinXP的引导文件。应该在系统正常的时候给予备份。
NTLDR文件的说明:NTLDR是一个隐藏的,只读的系统文件,用来装载操作系统。
NTLDR异常
NTLDR是我们常见的系统异常;常见的描述如下:
NTLDR is missing
Press any key to restart
那我们该如何修复此异常哪?
方法1  利用制作启动软盘,复制文件;
在软驱已经是个传说年代,这个方法不太适合。
方法2 利用安装光盘,恢复文件
步骤如下:
1.  插入安装光盘,启动,进入Windows故障恢复控制台
2.  输入map命令;找到光驱所在的盘符,假设为F盘
3.  复制光盘下的文件到系统根目录下
copy F:\i386\ntldr c:\
copy F:\i386\ntdetect.com c:\
注意: 在ntldr, ntdetect.com 与C:\之间有一个空格
回复

使用道具 举报

手机版|小黑屋|啊三国

GMT+8, 2024-5-19 03:40

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表