论坛: 菜鸟乐园 标题: 常见WindowsXP启动故障及解决方法 复制本贴地址    
作者: abctm [abctm]    版主   登录
常见Windows XP启动故障及解决方法

1、NTLDR is missing当你从Win9X升级到WinXP的时候
1)、Clone以后的问题:当你想把使用Clone制作的Win9x升级到WinXP,那么很容易出现一句提示:

NTLDR is missing。
  当然,要出现这种情况必须满足下列要求:
    a)、系统/启动分区是FAT32文件系统。
    B)、计算机的启动使用了INT-13中断扩展启动。一般现在的主流电脑都是使用了这种方式。
    c)、因为在Clone的时候,刻录后的系统的存放于FAT32 BIOS Parameter Block(BPD)的值和物理驱动器的

几何分布不匹配。
  但是为什么可以启动Win9X呢?原因是这样的:Win9x启动的时候忽略了BPD的值,即使这个值是非法的。但

是在Win200/XP里面需要这个值,如果这个值是非法的,那么启动将失败。
  解决:重写FAT32 BPB里面正确的值 ,然后使用WinXP里面Fixboot命令重写Windows XP启动代码即可。具体

的操作如下:使用一张含有SYS.COM的Win9X启动盘启动电脑,执行SYS C:命令,然后重新启动,会发现无法启

动WinXP,这不要紧,这是正常的现象。然后再次重新启动,使用WinXP安装光盘启动,进入故障恢复控制台,

执行fixboot即可。如果你不会使用故障恢复控制台,那么还有一个方法:在Win9X里面执行WinXP安装,系统拷

贝完文件以后会重新启动,启动的是后手已经要快速按下方向键的上或下箭头,然后选择Windows回到Win9X下

,接着编辑Boot.ini文件,确认你的Boot.ini文件和你电脑上WinXP的启动相匹配,最后删除C盘根目录上以$开

头的全部文件即可。
2)、文件丢失/破坏:这个文件位于C盘根目录,我们只需要从WinXP安装光盘里面提取这个文件,然后

放到C盘根目录上即可。

2、I/O错误,Win9X启动失败
    这个问题一般是由于错误删除C盘根目录上的一个启动Win9x的重要文件bootsect.dos造成的。这个文件储

存了启动Win9x的必须代码,而且这个文件的创建是在安装WinXP的时候自动创建的,WinXP里面并没有相应的命

令可以直接解决这个问题。但是我们可以采用另外一种方法解决。
  解决:使用一张含有SYS.COM的Win9X启动盘启动电脑,执行SYS C:命令,然后重新启动,会发现无法启动

WinXP,这不要紧,这是正常的现象。然后再次重新启动,使用WinXP安装光盘启动,进入故障恢复控制台,执

行fixboot即可。如果你不会使用故障恢复控制台,那么还有一个方法:在Win9X里面执行WinXP安装,系统拷贝

完文件以后会重新启动,启动的是后手已经要快速按下方向键的上或下箭头,然后选择Windows回到Win9X下,

接着编辑Boot.ini文件,确认你的Boot.ini文件和你电脑上WinXP的启动相匹配,最后删除C盘根目录上以$开头

的全部文件即可。

3、Boot.ini文件非法
    这个问题一般是由于boot.ini文件丢失或格式不正确造成的。boot.ini文件的格式一般是下面这种类型的


[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\Windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\Windows="Microsoft Windows XP Professional" /fastdetect
    具体的含义大家可以参看我的网站的这篇文章:《解读多重启动引导文件――BOOT.INI》

(http://smallfrogs.nease.net/other/32.html)

4、找不到HAL.DLL文件,启动中止
    这个是由于C盘根目录下的boot.ini文件非法,导致默认从C:\Windows启动,但是又由于你的WinXP没有安

装在C盘,所以系统提示找不到HAL.DLL文件。启动因而失败。解决方法是重新编辑Boot.ini文件。我们有很多

方法编辑这个文件,下面我挑选几种便于操作的介绍给大家:
    1)、使用Win9X启动盘启动,使用EDIT.EXE命令编辑这个文件。启动EDIT.EXE以后只要按照正确的格式输入

Boot.ini文件的内容,保存为Boot.ini文件即可。
    2)、使用COPY CON命令创建一个Boot.ini文件。在DOS下输入Copy Con C:\boot.ini以后回车。然后按照

Boot.ini文件的格式输入,每输入一行敲一次回车键,当全部内容输入完毕以后,按CTRL+Z,屏幕上会看到^Z

的提示。这个时候再敲一次回车,系统会提示1 file(s) copied.这就表示创建成功了。
    3)、使用故障恢复控制台里面的bootcfg命令。具体的使用方法请大家查看Q330184一文。我在这里就不介

绍了。
    4)、在别的电脑上创建好以后,拷贝到受损电脑的C盘根目录上覆盖源文件即可。

5、安装的简体中文版的WinXP在启动选单的时候不是英文提示
    一般是由于C:\bootfont.bin丢失造成的,但是如果你安装了更高版本的英文版本的Windows,那么这个现

象就是很正常的。如果没有的话,从WinXP安装光盘里面提取bootfont.bin到C盘根目录即可。

6、安装 Windows 2000 后无法启动 Windows XP
    症状:安装 Windows 2000 后试图启动 Windows XP 时,您可能会收到下面的错误消息:
"Starting Windows...
Windows 2000 could not start because the following file is missing or corrupt: \WINDOWS\SYSTEM32

\CONFIG\SYSTEMd startup options for Windows 2000, press F8.
You can attempt to repair this file by starting Windows 2000 Setup using the original Setup

floppy disk or CD-ROM.
Select 'r' at the first screen to start repair."
    原因:出现此问题的原因是,在 Windows 2000 发行时 Windows XP 尚不存在。Windows 2000引导程序不

知道已在 Windows XP 中做了改动。计算机需要知道这些改动才能加载 Windows XP。
    解决:若要解决此问题,请用 Windows 2000 启动计算机,然后将 Windows XP 光盘上 I386 文件夹中的

NTLDR 和 Ntdetect.com 文件复制到系统驱动器的根目录中。

                         













解读多重启动引导文件――BOOT.INI

Windows NT类的操作系统,也就是Windows NT/2000/XP中,有一个特殊文件,也就是“BOOT.INI”文件,这个文件会很轻松地按照我们的需求设置好多重启动系统。
  “BOOT.INI”文件会在已经安装了Windows NT/2000/XP的操作系统的所在分区,一般默认为C:\下面存在。但是它默认具有隐藏和系统属性,所以你要设置你的文件夹选项,以便把“BOOT.INI”文件显示出来。我们可以用任何一种文本编辑器来打开他它。一般情况下,它的内容如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\Windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\Windows="Microsoft Windows XP Professional" /fastdetect
  在Windows 2000或者是XP系统中,我们可以很容易的设置“BOOT.INI”文件。那就是在“我的电脑”上面点击右键,选择“属性”打开“系统属性”对话框,再点击“高级”选项卡,在“启动和故障修复”里面点击“设置”按钮,就可以打开“启动和故障修复”对话框了,在这里面我们就可以对它进行详细设置。
  如果你拥有Windows XP操作系统,那么你可以用“系统配置实用程序”来更方便的编辑“BOOT.INI”文件。具体做法是:打开“开始”菜单,点击“运行”命令,再在弹出的文本框中输入“msconfig”点击“确定”后就会弹出“系统配置实用程序”,再点击“BOOT.INI”选项卡,就会出现如图所示的界面。在这里,我们可以很方便地设置文件。
言归正传,现在,来说明一下这个文件内容的含义。
  1.系统加载部分([boot loader])
  这一部分很简单,只有两个设定。那就是“timeout=”和“default=”。
“timeout=”就是设定开机时系统引导菜单显示的时间,超过设定值则自动加载下面“default=”指定的操作系统。默认值是30,单位为秒。我们可以在这里面设定等待时间的长短。如果将其设为“0”那么就是不显示系统引导菜单。
  “default=”则是设定默认引导的操作系统。而等号后面的操作系统必须是已经在“[operating systems]”中存在的。如果想默认为加载另外的操作系统,我们可以参看“[operating systems]”中的操作系统列表,然后把想要加载的操作系统按照格式写到“default=”后面就可以了。
  2.操作系统部分([operating systems])
  在这里面,列出了机器上所安装的全部操作系统。比如机器上只有一个操作系统,那么就只有一条信息,那就是“multi(0)disk(0)rdisk(0)partition(1)\Windows="Microsoft Windows XP Professional" /fastdetect”
在这里需要注意的是,在英文引号内的文字就是引导操作系统菜单时显示出来的让我们选择操作系统的提示文字,在这里面我们可以随意更改。而“multi(0)disk(0)rdisk(0)partition(1) \Windows”这一句就需要些解释了。因为它涉及ARC(高级RISC计算机)命名,它是x86或RISC计算机中用于标识设备的动态方法。
ARC命名的第一部分用于标识硬件适配卡/磁盘控制器,它有两个选项:SCSI和Multi。
Multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,而SCSI则表示一个SCSI BIOS禁止的SCSI硬盘。(x)是硬件适配卡序号。Disk(x)表示SCSI总线号。如果硬件适配卡为Multi,其正确表示方法就为disk(0),rdisk(x)则表示硬盘的序号,如果硬件适配卡为SCSI则忽略此值;
  partition(x)表示硬盘的分区序号。了解这些,我们就可以解释前面那条信息的含义了,即“multi(0)disk(0)rdisk(0)partition(1) \Windows”为,在0号非SCSI设备上的第0号磁盘上的第一个分区里面的“Windows”目录下可以找到能够启动的操作系统。
  等号后的内容前面已经说过,那个就是引导菜单显示出来的供我们选择的提示文字。而后面的“/fastdetect”又是作什么用的呢?这是一个开关符,用来控制启动该操作系统时的具体选项,下面再来详细的介绍各种开关符的含义:
/3GB:这是Win2000 SP3新引入的。这使得用户区和系统区分为3G比1G的比例。只有用户使用NT企业版,应用程序也支持3GB选项时,此选项才生效。
  /BASEVIDEO:使用标准VGA方式启动。这种方式主要用于显示驱动程序失效时。
  /BAUDRATE:指出用于调度的波特率,如果用户不设置,则使用默认的9600,而对于线缆Modem则使用19200。
  /BOOTLOG:使Win2000将日志写入 %SystemRoot%\NTBTLOG.TXT 。
  /BURNMEMORY=:使NT在已知的内存上少使用指定的数量,如果/burnmemory=64,则有64M内存NT不使用。
  /CRASHDEBUG:调度器在NT启动时启动,只有在内核错误时才有用,如果系统经常会无故出错,这个选项就很有用了。
  /DEBUG:在启动NT时调入调度器,它可以在任何时间激活,在错误可以再次出现时使用它比较合适。
  /DEBUGPORT= comx :指定用于调度的端口,其它X就指端口号。
  /FASTDETECT:对于Win2000启动时,它使系统不检查串行口和并行口。
  /HAL=<hal>:允许用户不使用默认的HAL。
  /INTAFFINITY:设置多处理器HAL(HALMPS.DLL),使编号最大的处理器接收中断请求。如果不设置此选项,Win2000会使所有处理器接收中断请求。
  /KERNEL=<kernel>:与上面的功能相同,不过是针对SMP中的内核而言的。
  /MAXMEM:n:指定NT可以使用的最大内存数,如果一个内存片损坏,这个开关就十分有用了。
  /NODEBUG:不使用调试信息。
  /NOGUIBOOT:指定此选项会使Win2000不加载VGA驱动程序,也就不会显示启动过程和失败时的兰屏信息。
  /NOSERIALMICE=[COMx | COMx,y,z…]:在特定的COM中上禁止对串行鼠标的检测。如果用户有一个非鼠标设备接在COM口上,这个选项会十分有用。如果此开关未加参数,系统会禁止所有COM口。
  /NUMPROC=n:只允许前N个系统处理器工作。
  /ONECPU:在多处理器中只使用一个处理器。
  /PCILOCK:不让NT为PCI设置分配IO/IRQ资源,而启用BIOS设置。
  /SAFEBOOT:安全启动,这个大家一定十分熟悉,Win2000只启动HKLM\System\CurrentControlSet\Control\SafeBoot中的驱动程序和服务,其后跟三个参数MINIMAL,NETWORK或DSREPAIR之一。MINIMAL和NETWORK在允许网络下启动系统。而DSREPAIR要求系统从备份设备中调入活动目录的设置。还有一个选项是"(ALTERNATESHELL)",它让系统调入由HKLM\System\CurrentControlSet\
SafeBoot\AlternateShell指定的SHELL程序,而不使用默认的Explorer。
  /SOS:在调入驱动程序名时显示它的名字,在因驱动问题而无法启动时使用比较好。
  /WIN95:在装有三个系统DOS、Win9x和Windows NT的系统上,让NTLDR直接调用Win9x。启动文件BOOTSECT.W40。
  /WIN95DOS:在装有三个系统DOS、Win9x和Windows NT的系统上,让NTLDR直接调用DOS启动文件BOOTSECT.DOS
  /YEAR=:使用指定的年份,如果设置为/YEAR=2005,那现在的时间就是2005年,此选项仅对NT4+SP4和Win2000生效。


了解了以上这些,我们就可以更加轻松控制好我们系统的启动了。 

地主 发表时间: 04-04-15 22:15

回复: EvSpirit [aeolian]   论坛用户   登录
这个我真的经常看到!

B1层 发表时间: 04-04-16 01:28

回复: newmyth21 [newmyth21]   论坛用户   登录
XP的确很流行啊,学校里几乎全是它了,哪像我,2000

B2层 发表时间: 04-04-16 01:49

回复: abctm [abctm]   版主   登录
偶2k

B3层 发表时间: 04-04-16 06:36

回复: abctm [abctm]   版主   登录
WinXP极速关机

体积庞大的WindowsXP关起机来也是老黄牛一头--大约需要30~50秒,按照下面的方法更改注册表选项,看看WinXP关机速度加快了吗?找到HKEY-CURRENT-USER\Control Panel\Desktop键,将WaitToKillAppTimeout改为:1000,即关闭程序时仅等待1秒。

将HungAppTimeout 值改为:200,表示程序出错时等待0.5秒。

将AutoEndTasks 值设为:1 。让系统自动关闭停止响应的程序。



B4层 发表时间: 04-04-16 06:39

回复: lixing6841 [lixing6841]   论坛用户   登录
我顶死你,为什么你每次都说的很对的啊?我顶死你顶死你顶死你顶死你!

B5层 发表时间: 04-05-02 20:47

回复: yygyjjj [yygyjjj]   论坛用户   登录


B6层 发表时间: 04-05-02 21:22

回复: szjwwwww [szjwwwww]   论坛用户   登录
老大发的确是好贴
但是现在我们用软驱的不多了都是光驱启动、大不了买个U盘
更容易而且更稳定。
上一次我们同学的NTLDR丢失
我没办法就给它重装了一个98然后在卸了
还是可以回复的!就是好烦哦。。。
有没有专门的工具能自己写NTDLR的?


B7层 发表时间: 04-05-02 22:59

回复: jung [jung]   论坛用户   登录
不知道应该说什莫是好,非常谢谢你

B8层 发表时间: 04-05-03 01:17

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号