找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 856|回复: 3

求助:XP系统二次才能启动问题

[复制链接]
发表于 2005-6-24 17:58:56 | 显示全部楼层 |阅读模式
请高手帮忙:我的电脑装XP系统,但是每次都要启动两次才能正常,重装了系统但是问题依然!
回复

使用道具 举报

发表于 2005-6-25 11:32:10 | 显示全部楼层
碰到这种情况咱们还是应该从两个方面来分析:软件和硬件。在正式的分析之前,我将一篇关于windows操作系统开机引导过程的文章转载于下,大家可以共同学习一下:

本文适用于Win NT4.0,Windows 2000以及Windows XP各个版本的使用者。
本文旨在以Windows 2000为例讨论其系统的引导过程,以期较为深入的揭示引导过程中各种相关故障的原因并提出快捷有效的解决途径。
一、 基于PC的Windows 2000引导过程
个人电脑上Windows 2000的引导过程是分好几个阶段进行的,通过了解Windows 2000引导过程中的各个阶段以及每个阶段使用到的文件,有助于我们之后更有效的分析和处理各种问题。Windows 2000的引导过程分为预引导、引导、内核加载、内核初始化和系统登陆五个阶段。
文件
位置
所属引导阶段
Ntldr
System分区根目录
预引导和引导
Boot.ini
System分区根目录
引导
Bootsect.dos(可选)
System分区根目录
引导
Ntdetect.com
System分区根目录
引导
Ntbootdd.sys(可选)
System分区根目录
引导
Ntoskrnl.exe
%Systemroot\System32
内核加载
Hal.dll
%Systemroot\System32
内核加载
System
%Systemroot\System32\Config
内核初始化
Device driver
%Systemroot\System32\Drivers
内核初始化
WinLogon.exe
%Systemroot\System32
系统登陆
Lsass.exe
%Systemroot\System32
系统登陆
在这里,我们暂不讨论Windows 2000操作系统的内部工作机制,以下通过图文结合的方式,简要给大家说明在这五个阶段,操作系统都在干些什么,那些程序发挥了作用。
第一步,预引导阶段,过程如图二所示,首先包括了系统加电自检,这个过程完成硬件设备的枚举和配置。其次计算机BIOS确定引导设备的位置,加载并运行Master Boot Record(MBR)主引导区内容(如lilo等)。然后扫描分区表,定位活动分区,并将活动分区上的引导扇区内容加载到内存中执行。最后加载系统盘根目录中的Ntldr文件,这也就是Windows 2000操作系统的加载程序。
第二步,引导阶段,过程如图三所示,首先是初始化引导加载程序,这时Ntldr完成处理器模式切换和文件系统(FAT或NTFS)驱动的加载,如果使用了SCSI设备,Ntldr将Ntbootdd.sys加载到内存中运行。其次Ntldr读取系统盘根目录下的Boot.ini文件,屏幕显示Boot Loader Operating System菜单,等待用户选择要加载的操作系统,关于Boot.ini文件的设置我们后面还会详细讨论,如果此时Ntldr没有找到Boot.ini文件,就默认从第一个磁盘的第一个分区的\Winnt位置加载系统,如果在所限时间内用户没有做出选择,则启动默认的选项。开始加载Windows 2000操作系统之后,Ntldr读取并运行程序Ntdetect.com以完成硬件的检测,如果安装了多操作系统,而且用户选择启动了Windows98或WindowsMe那么Ntldr就会加载并运行Bootsect.dos启动所选的操作系统。最后在Ntldr加载了Windows 2000并收集了硬件信息后,紧跟着就根据用户选择调用系统的硬件配置文件,如果只有单一的硬件配置文件则直接作为默认配置调用,强烈建议用户自己在系统安装好了之后备份一份原始硬件配置文件。
第三步,内核加载阶段,过程如图四所示,系统加载了默认硬件配置文件后,就会清除屏幕,接着屏幕上会显示出一个进度条(>>>…),Ntldr随后进行如下的内核加载操作,首先,加载Ntoskrnl.exe,但并不进行初始化。其次加载硬件抽象层文件(Hal.dll),然后加载%systemroot\System32\Config\System下的注册表项HKEY_LOCAL_MACHINE\SYSTEM。之后选择加载控制集,初始化计算机。最后,根据控制集加载低级硬件设备驱动程序。
第四步,内核初始化,过程如图五所示,当内核加载阶段结束时,内核就开始初始化,然后Ntldr就把系统的控制权转交给内核。这时屏幕上会显示图形界面,并带有一个状态栏指示加载状态。成功的初始化之后,首先,内核会使用检测到的硬件数据,在注册表中创建HKEY_LOCAL_MACHINE\HARDWA项。其次的工作是内核通过复制HKEY_LOCAL_MACHINE\SYSTEM\Select子键Current项引用的控制集创建Clone控制集。接着内核开始进一步加载和初始化设备驱动程序。最后,Session Manager(Smss.exe)按顺序启动Windows 2000更高一层次的子系统和各项服务。
第五步,系统登陆,过程如图六所示,系统首先启动Winlogon.exe,随后启动Local Security Authority(Lsass.exe),这时屏幕显示出登陆对话框。然后系统执行Service Controller(Screg.exe)再次扫描注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control项并自动加载其中系统的或用户的服务。至此,用户已成功的登陆到了Windows 2000系统,系统随后把Clone控制集拷贝到LastKnownGood控制集。以上五步顺利结束之后,才可以称之为Windows 2000的完美引导过程。
二、 关于高级引导
在正式引导系统之前,也就是第二步的第三项操作之前,如果按下F8键,就会进入高级引导选项,表二简要给出了高级引导的选项及它们的功能,可供您引导系统时参考。
高级引导选项
功能
Safe Mode
安全模式,只加载启动系统所需要的基本设备和驱动程序以及系统服务的标准的默认配置。
Safe Mode with Networking
加载网络需要的服务和驱动程序的安全模式
Safe Mode with Command Prompt
只启动命令行模式,不启动Windows Explorer的安全模式
Enable Boot Logging
纪录驱动程序及服务的加载和初始化,参考用来处理引导过程遇到的问题。
Last Known Good Configuration
使用上次成功的配置引导系统
Directory Services Restore Mode
允许恢复域控制器上的活动目录
Debugging Mode
启用调试模式
三、关于Boot.ini文件
上边第二步曾提到过Boot.ini文件,这个文件存储在系统盘根目录,它的作用是定位加载的操作系统硬件位置,特别是在安装了多重系统时用来实现选择启动的功能,以下是一个标准的Boot.ini文件,我们将对此作适当解析。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
C:\= "Microsoft Windows 98"
Boot.ini文件包括[boot loader]、[operating systems]两个部分,[boot loader]包括等待时间和默认引导系统两个参数,timeout后边的数字表示等待的秒数,default后边的是默认引导系统的位置。[operating systems]则包括安装的所有系统的ARC(Advanced RISC Computing)引导路径(等于号之前的部分)和他们在菜单上显示出的名字(引号之间的文本),以及启动参数(斜杠后边的部分)。下边的表三将详细向您解释ARC路径的含义
约定
描述
Multi(x)
表示IDE磁盘或SCSI控制器
Scsi(x)
表示SCSI控制器未启动的磁盘
Disk(x)
表示SCSI总线号
Rdisk(x)
表示磁盘设备序号
Partition(x)
表示分区号
表三
注意,在multi、scsi、disk和rdisk序号都是从0开始的partition是从1开始的。下边的表四将向您解释常用启动参数的意义。
参数
功能
/basevedio
使用标准的VGA视频驱动程序引导,用于视频驱动故障时。
/fastdetect
不检测串口和并口设备,加快启动速度。
/maxmem
设置启动使用的最大内存,用于内存故障时。
/noguiboot
引导时不加载VGA驱动,不显示图形界面
/sos
引导时显示设备的驱动程序名,用于确定哪个驱动程序触发了故障。
/debug
对启动时的错误用调度器调试。
/crashdebug
对内和进行调试。
/safeboot
使用安全模式启动
因为boot.ini是系统保护文件,它隐藏在系统盘根目录下,并且具有只读属性,如要修改请先到文件浏览器的工具—〉文件夹选项—〉查看中选中显示所有文件和文件夹,取消隐藏受保护的操作系统文件,并且取消boot.ini文件的只读属性,方可使用记事本之类的编辑器编辑它。
四、制作两张关键的软盘
以上我们较为详细的了解了Windows 2000的启动过程和所涉及的一些文件和程序,下边我们就要未雨绸缪,充分利用资源武装自己,如此才能不怕将来故障和崩溃的挑战。
首先,我们制作一张Windows 2000的启动盘,请依下列步骤操作:
1.  在运行Windows 2000的计算机上格式化一张软盘。
2.  在安装系统的主分区上,将下表给出的文件拷贝到软盘上,请注意先显示隐藏文件。
基于Intel的计算机
Ntldr
Ntdetect.com
Ntbootdd.sys(系统使用SCSI设备时选用)
Boot.ini
Bootsect.dos(同时安装了Window9x系统时选用)
3.立即使用制作好的启动盘引导系统,测试它是否工作正常。
接着我们再制作一张系统紧急修复磁盘,遵循路径,开始—〉程序—〉附件—〉系统工具—〉备份,我们就可以方便的制作紧急修复磁盘。注意,紧急修复磁盘存放着系统注册表和启动配置的相关文件,所以只能用于制作的这台机器,同时,该磁盘的内容应当及时的更新,尤其是当机器安装了新的硬件或软件,或者系统配置更改了之后。
五、常见引导故障的排除
上边说了那么多,完全是为了尽可能从理论上武装自己。在进入实战之前,我们先来整理一下所带的装备,1)Window2000安装盘2)启动软盘3)系统紧急修复磁盘4)备份好的系统原始硬件配置文件5)备份好的注册表文件6)一个冷静清楚的头脑。OK,这就加入Counter Failure小组,出发!
1)  按下Power键,我们的旅行开始了。
2)  首先系统开始自检(POST),如自检结束之前出了故障请咨询你的硬件供应J商。还好没问题,系统自检顺利通过。什么?“Missing operating system”!怎么办?
诊断:这是个POST完成之后最普通的错误,你的运气不错。让我们试回忆一下前边描述的预引导阶段,这里故障可能是由以下原因造成:
I)  系统分区未激活或激活失败,解决办法请使用FDISK类的工具激活。
II) 系统盘引导扇区损坏或配置错误,解决办法使用Windows 2000安装光盘,运行安装程序,利用其中自带的自动系统恢复功能修复引导扇区。
  顺便提一下,虽然这里不是可怕的MBR损坏,但及时的备份MBR也是必要的,使用如KV 3000带的类似工具可以轻松实现,以备不时之需。
3)接着往下,“Ntldr is missing”!怎么办?
诊断:这个好办,用你的启动软盘启动引导系统,再将系统加载文件Ntldr拷贝到系统盘的根目录即可。如是多重系统请拷贝的C盘根目录。
4)接下来的故障就五花八门了,但是万变不离其中,我们都知道此时系统应当读取Boot.ini文件确定要引导的系统位置,所以如果Boot.ini文件出了问题,最简单的办法就是复制启动盘中的Boot.ini到系统盘根目录。
5)如果此时硬件配置文件出了问题,我们可以从配置文件菜单中选择先前备份的原始配置文件引导系统,或按下L键调用LastKnowGood上次成功的配置引导系统。这一般可以解决相关的系统设置错误。
6)如果5也不能奏效,就试试看能不能进入安全模式,如果能登陆,那么我们可以利用硬件设备管理器排除相关的一些硬件冲突,此时一定要注意显示隐藏设备,它们很可能就是元凶,一定要仔细辨识这些隐藏设备,删除那些并不存在或已不用的驱动程序以避免冲突。利用控制面板中的添加删除程序,我们还可以尝试着删除掉那些有可能造成系统不稳定的程序。试试看导入以前备份的注册表文件,我们也可以借此修复不少不太严重的注册表损坏的故障。
7)如果安全模式也不能登陆,甚至出现蓝屏,那么很可能是系统内核不能顺利的初始化和加载,导致这类严重故障的原因多半是因为系统关键性文件丢失。我们先采用Windows光盘启动引导系统,运行安装程序,选择快速系统修复程序尝试修复系统;如果快速修复失败,程序会要求您使用紧急修复磁盘,使用您准备好的该磁盘再做一次尝试。
8)在进行故障诊断中,我们还可以参考表四Boot.ini文件中的一些开关选项,采用修改好的Boot.ini文件定制引导系统,以便更加准确的定位相关的故障。
9)登陆过程中,我们还可能碰到各式各样的软件故障,这些虽然不是致命的但也常常令人心烦,请您尝试着辨识这些软件或服务,在开始—〉程序—〉启动菜单中,或注册表编辑器中的HKEY_LOCAL_MACHINE或是HKEY_CURRENT_USER目录树的SOFEWARE/Microsoft/Windows/CurrentVersion/Run分支中我们可以查看到自行启动的程序,删除相关键,可以关闭自启动那些可疑的应用程序。利用控制面板—〉管理工具—〉计算机管理中的事件查看器中我们也可以得到不少关于故障原因的提示,如果是系统加载的的服务出了故障,请在计算机管理—〉服务中将那些相关的服务项设置成手动启动,尝试重新运行相关软件的安装或卸载程序修复类似错误。
回复

使用道具 举报

发表于 2005-6-25 11:56:30 | 显示全部楼层
篇幅确实有点长,不过倒是对操作系统由CMOS界面引导至桌面的进程做了一个详细的阐述。您看看能否提供第一次不正常开机的详细情况,最好再试试能否顺利进入安全模式,我们好判断到底是哪一步出了问题。
绕开这些技术性较强的东西不谈,解决非正常开机一般也是两个思路,如同我在上贴中指出的一样,软件和硬件。软件方面,主要指系统文件丢失以及病毒(当然,还可能是病毒引起的系统文件丢失);硬件方面则包括IRQ冲突、硬件驱动错误(导致初始化失败)。从您所叙述的情况来看我们知道重装系统并不能解决问题,那么简单意义上的系统文件丢失及硬件IRQ冲突应可排除,于是尚有以下几种可能性:
1、软件—病毒
您重装系统只初始化了系统盘,如果病毒文件在其它分区也有潜伏的话,则重装系统后问题将依然存在。小生建议您做一次全盘病毒扫描,看看能否解决。
2、硬件—驱动程序错误
系统引导至第三步,在进行内核读取之前将会根据控制集加载低级硬件设备驱动程序,如果硬件驱动发生错误,则系统引导进程发生致命错误而失败重启,之后系统将调用自带驱动对硬件进行初始化,同时由于系统内核尚未调用,这一错误将无法写入操作系统的记录文件。从而出现每次开机都需重启二遍的情况。正确的解决方案是逐次更换主板、显卡等部件的硬件驱动,看看问题能否得到解决。

更详细的分析有赖于您提供更详细的开机状况说明,所以只能先写到这儿了。
回复

使用道具 举报

 楼主| 发表于 2005-6-25 18:13:40 | 显示全部楼层
非常感谢tearock大侠的慷慨相助,不过的确有点专业性。不过我可以试着检查一下,如果有什么具体的情况我会再次说明!小生估计问题会出在硬件上。不过还没有实在的把握。再次谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-12-23 04:02 , Processed in 0.141391 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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