打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
玩转ESXi

 玩转ESXi_07:详解Windows7启动流程与常见故障

每天使用计算机必须要经过的一个步骤就是启动,上一章节《玩转ESXi_06:详解操作系统引导与启动概念》中,我们详细讲解系统启动的基本流程,对于理解和处理win7系统开机启动流程及常见故障维护有很大帮助的。

对于处于IT一线的运维工程师们每天都在用计算机,却不知道它是怎样启动的,似乎总感觉有些别扭吧。

当然,还有一个目的,就是为后续讲解Exsi系统启动流程做铺垫!

一、启动过程

举例,我的电脑在BIOS里面设置硬盘启动。

、按下主机电源开关, 主板BIOS开始自检;

、自检通过后,主板bios找到硬盘上的第一个扇区主引导记录MBR

MBR引导程序开始读取硬盘分区表DPT,分析其中参数查找活动分区,找到活动分区中的分区引导记录PBR,并且把控制权交给PBR

PBR搜索活动区中的启动管理器bootmgr,找到后,PBR把控制权交给bootmgr(相当于xp里的ntldr文件)

bootmgr寻找活动分区中的boot文件夹中的BCD文件(启动配置数据,相当于xp里的boot.ini文件)。

、找到BCD后,bootmgr首先从BCD 中读取启动管理器bootmgr菜单的语言版本信息,然后再调用bootmgr与相应语言的BOOTMGR.EXE.MUI (在boot文件夹对应语言文件夹中)组成相应语言的启动菜单;

如果存在着多个操作系统并且选择操作系统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。如果没有多系统,不显示选择界面,直接进入windows 7系统。

、选择windows 7系统后,bootmgr就会读取BCDwin7系统所在的盘里的windows\system32\winload.exe文件,并且将控制权交给winload.exewindows内核载入程序)。

Winload.exe加载Ntoskrnl.exehal.dllwindows7内核、硬件、服务)等;

、接下来Ntldr HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet 下读取这台机器安装的驱动程序,然后依次加载驱动程序。

、驱动程序加载完成后,最开始只有idlesystem进程,system进程(PID4),会做如下设置:

i、创建 smss.exe进程,它是Windows会话管理器进程, 负责用户登录和登出管理,也是系统中第一个用户进程。

注意,并非system.exe进程如果你看到system.exe进程名(一般出现c:\windows目录下,表示你中病毒了)!

smss进程(由内核线程创建),会做如下设置:

i、创建autochk.exe进程来检查磁盘,加载 win32K.sysWindows子系统的内核模式部分),初始化系统环境变量,控制所有输入/输出设备以及访问显示设备等;

ii创建 csrss.exe进程,主要管理windows图形相关任务,维持Windows的控制,管理所有由该会话创建的进程和线程(创建或者删除线程和一些16位的虚拟MS-DOS环境)等,比如,用户登出时向他们发送退出通知。

iiii创建winlogon进程

iv、创建wininit.exe(vista以后才有该进程,注意与XP区别)

v、创建虚拟内存页面文件等。

Winlogon进程依次创建其他进程,如下:

i、创建系统服务services.exe进程(vista以后由wininit.exe负责加载),启动系统服务和加载Auto驱动;

ii、创建本地安全验证Lsass.exe进程(vista以后由wininit.exe负责加载);

iii、创建logonui.exe 此进程,这个时候,显示欢迎界面,选择账号,输入密码就可以登录到系统中了(如果只有一个用户,并且没有密码,则欢迎界面会一闪而过);

iv、创建Userinit.exe进程(密码发给Lsass.exe进程,验证通过后被创建),用来对该用户初始化工作;

v、创建explorer.exe进程(由Userinit.exe进程创建),这个时候你才可以进入到工作桌面了,淘宝购物、QQ、文档、PPT等工作了。

现在,我们来了解下,在WindowsXP系统下(windows 7大同小异),system进程、smss.execsrss.exewinlogon.exe等进程的关系,如下图7.1所示:



7.1

、运行空闲(Idle)进程,等待您登录系统了,从而启动整个windows 7系统。用户输入账号与密码后, Userinit.exe进程执行用户环境的初始化工作,然后查询注册表HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Shell键的值,默认为explorer.exe,启动它。然后Userinit进程退出。

因此explorer.exe进程没有父进程,它用来显示系统的桌面环境,包括桌面图标和文件管理,请不要将此进程与浏览器进程(iexplore.exe)混淆!

这个过程简单地概括为:

Windows 7系统: BIOS-->COMS->MBR--DPT-->pbr--Bootmgr-->bcd-->Winload.exe-->内核加载 -驱动项-服务项-启动项等-->整个win7系统---开机完成!

WindowsXP系统:BIOS-COMS——MBR-DPT——PBR-ntlrd——boot.ini-系统内核

注:传统BIOS+MBR分区表的启动方式将会渐渐被EFI BIOS+GPT分区表的启动方式替代!

我们再来对此下windowsXPwindows7,如下图所示:



7.2

二、常见故障分析

2.1MBR 故障

常见提示:一般MBR出故障时就是开机时左上角光标一直闪的情况。

症状分析:就是已经启动了硬盘,而MBR为空或无法读取。

 

2.2分区表(DPT)故障

常见提示:An Operating System wasn't found

症状分析:最常见的DPT故障就是活动分区的丢失,造成硬盘启动时不知道该读取哪个分区,所以也就找不到系统。

2.3PBR故障

常见提示:disk read error occurred..,就是读取磁盘时发生错误

症状分析:即根据分区表而去启动活动分区,但是活动分区上的PBR出了故障,自然就是磁盘读取错误

2.4读取PBR找寻引导文件(bootmgr)时出现各种问题

常见提示:NTlrd is missing/bootmgr is misssing(或其它各种文件is missing

症状分析:造成这种原因一般有三种情况:

1)活动分区标记错误,即目前的活动分区不是原来的活动分区,自然在该分区下就找不到引导文件提示XXX is missing 

2PBR设置错误,启动系统时去寻找bootmgr,是因为寻找bootmgr的命令写在PBR中,PBR不去找bootmgr而去找NTlrd或别的文件(NTlrdNT5.XXP系统的引导文件),自然就是PBR上的命令写错了 

3)的确是bootmgr损坏丢失

2.5BCD故障

常见提示:主要特征为上面一个白色横栏,上面写着windows boot manager或者windows启动管理器(其实就是bootmgr这个程序的界面)。

症状分析:即BCD文件丢失或损坏或设置,造成bootmgr无法找到读取BCD或者无法根据BCD的设置找到系统并启动,所以反馈出如上信息。

2.6winload.exe或内核文件故障

常见提示:蓝屏 、一般会有损坏的文件的提示。

症状分析:大多情况下是系统文件被病毒或者什么原因破坏,可以尝试过PE里替换系统文件,有时PE方法无效则重装会更快解决问题。

2.7驱动故障

常见提示:出现win7 logo界面后蓝屏或黑屏 

症状分析:自然就是驱动无法加载造成无法启动,黑屏好解决,大多显卡驱动问题。蓝屏基本没救了,重装系统。

2.8服务项或启动项故障

常见症状:开机时卡在欢迎界面,或者进入桌面后只有一个鼠标等等等各种在欢迎界面时或界面后的不正常现象。 

症状分析:

1)系统关键服务被禁止;

2)开机必须启动的文件被损坏或设置被篡改(注册表中);

3)第三方服务项或启动项的干扰。

附件:Windows关键文件

smss.exe被叫作会话管理子系统,负责启动用户的会话,是重要的引导操作。如创建环境变量,启动csrss和进行排队在系统引导前的文件拷贝操作(它处理Windows文件保护并通过Winlogon创建登陆会话)。自Win7smss作为系统重要进程,中断smss会导致系统蓝屏。

csrss.exe是客户/服务器运行子系统用户态的主要部分。由于大部分Win32子系统操作被移入核心态驱动(Win32.sys),所以它主要负责Win32控制台窗口、创建或删除线程和部分16位虚拟MS-DOS环境。它是一个核心子系统必须总在运行,因而中断该进程将导致蓝屏死机。NTSD中设置标识可以调试它。

wininit.exeWindows启动/关闭服务。

logonui.exeWindows登陆用户界面,关系到Windows用户切换屏幕。

winlogon.exe属于Windows登陆管理。它处理系统上的登陆和登出过程。

userinit.exe在启动时管理不同需要的启动顺序,如建立网络连接和启动Windows shell,由winlogon.exe调用。

lsass.exe负责加强系统上的安全策略,检查登陆进系统的用户并创建安全令牌。

services.exe管理启动和停止系统服务。该进程同样处理系统引导时自动启动服务和系统关闭时停止服务。

svchost.exe是一个通用服务主进程名,它从动态链接库运行,属于微软服务主进程。启动时,svchost.exe检查服务注册表服务构建它必须加载的服务列表。

explorer.exeWindows 资源管理器,也叫用户shell,从它我们看到熟悉的任务栏、桌面等,能通过任务管理器停止。它有命令行选项。

Slsvc.exe管理所有Windows许可活动。

spoolsv.exe管理所有本地和网络打印队列以及控制所有打印工作。

lsm.exe叫本地会话管理。它主要用来管理终端服务器连接。

conime.exe叫做控制台IME,主要用作亚洲语言。可以通过修改注册表加载。

dllhost.exeCOM+主进程控制IIS中的进程并被许多程序使用。

winmgmt.exeWindows客户端管理核心组件。当首次客户端应用程序连接或管理应用程序连续请求它的服务时它初始化。

ntdll.dll是描述NTDLL(NT Layer DLL)的文件,它包含NT kernel的功能,实际可看作映射表。

希望本篇文章对在处于维护一线的IT工程师们有帮助!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
windows 7 引导过程概述
操作系统引导详细过程
windows7引导故障的解决 mbr修复
UEFIB与BIOS之间有什么区别?
Windows操作系统引导过程(上部)
[原创]我的单硬盘多系统的安装、激活及启动问题_多种实现方法_附重建BCD脚本 - Win...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服