标题：bootmgr
bootmgr
bootmgr：启动管理器。Bootmgr是Boot Manager的缩写，是在Windows Vista和Windows 7中使用的新的启动管理器，以代替Windows xp中的启动管理器—NTLDR。在微软的Windows Vista，Windows Server 2008和Windows 7操作系统中，其启动过程与从前的以NT为内核的Windows版本略有不同。bootmgr就相当于Win NT/Win 2000/Win XP时代的NTLDR。 
电脑加电后，首先是启动BIOS程序，BIOS自检完毕后，找到硬盘上的主引导记录MBR，MBR读取DPT（分区表），从中找出活动的主分区，然后读取活动主分区的PBR（分区引导记录，也叫pbr），PBR再搜寻分区内的启动管理器文件bootmgr，在bootmgr被找到后，控制权就交给了bootmgr。bootmgr读取\boot\bcd文件（BCD=Boot Configuration Data ，也就是“启动配置数据”，简单地说，windows7下的bcd文件就相当于xp下的boot.ini文件），如果存在着多个操作系统并且选择操作系 统的等待时间不为0的话，这时就会在显示器上显示操作系统的选择界面。在我们选择启动Windows 7后，bootmgr就会去启动盘寻找 WINDOWS\system32\winload.exe，然后通过winload.exe加载windows7内核，从而启动整个windows7系 统。可以把这个过程简单地概括为：BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->内核加载 -->整个windows7系统
可以说，bootmgr就相当于Win NT/Win 2000/Win XP时代的NTLDR。NTLDR是win nt/win2000/WinXP中的引导文件，是一个隐藏的，只读的系统文件，位置在系统盘的根目录，它的主要职责是解析Boot.ini文件，用来装载操作系统。一个值得注意的变化是，Windows 7启动管理器是按空格键而不是按F8功能键调用。 但F8键依然具有调取高级启动选项菜单的功能。 为了保持一个可扩展固件接口系统，也为了使版本最高的启动管理器负责管理所有的操作系统，使启动管理器具备向下兼容性、而不是向上兼容，Windows启动管理器对已安装的所有操作系统统一列为一个可供选择的菜单，在配置 Windows Vista与Windows 2000/XP的多系统共存时，bootmgr 将全面负责计算机的启动管理工作，NTLDR 将沦为 bootmgr 的替补。举个例子，假设我们配置了Windows Vista、Windows XP两个操作系统的共存，bootmgr 启动菜单并不会把 Windows XP也列在启动菜单里，而是将它显示为“早期版本的 Windows”。
启动配置数据（BCD）是一种用于启动时的配置数据固件独立数据库。它取代了NTLDR中的boot.ini，是由微软的新Windows启动管理器使用。启动配置数据 (BCD) 存储包含启动配置参数，并在Windows Vista 和 Windows Server 2008 操作系统中控制操作系统的启动方式。这些参数以前位于Boot.ini 文件中（在基于 BIOS 的操作系统中）或稳定 RAM (NVRAM) 项中（在基于可扩展固件接口的操作系统中）。通过在 BCD 存储中添加、删除、编辑和附加项，可以使用 Bcdedit.exe 命令行工具来影响在预操作系统环境中运行的 Windows(R) 代码。Bcdedit.exe 位于 Windows Vista 分区的 \Windows\System32 目录中。创建 BCD 旨在为描述启动配置数据提供一种改进的机制。随着新固件模型 [例如，可扩展固件接口 (EFI)] 的发展，用户需要一个可扩展且可互操作的接口以提取底层固件。这一全新的设计为 Windows Vista 中的多种新功能（例如，启动修复工具和多用户安装快捷方式）提供了支持。
微软新一代操作系统Windows 7，然而，这个7 并不是代表 Windows 7 的核心版本已经从 Windows Vista 的 NT 6 升级至 NT 7，而只是代表 Windows 7 是微软正式发行的桌面 Windows 第七代产品而已。Windows 7 真正的核心版本号仅仅是 NT 6.1，Windows 7 与 Windows Vista 的关系好比是 Windows XP（NT 5.1）与 Windows 2000（NT 5.0）。时隔多年，Windows 又一次与我们玩起了文字游戏，以至于有人将 Windows 7 戏称为“NT 6.1 = Windows 非常 6+1 = Windows 7”。 为了更为直观地理解 Windows 7 = NT 6+1，不妨从 Windows 启动管理器的层面看待这个问题。与容易混淆的 Windows 正式产品名称相比，启动管理器一直是严格按照 Windows 系统的核心版本加以区分的。这是由于在配置多重操作系统共存时，必须由版本最高的启动管理器负责管理所有的操作系统，启动管理器只具备向下兼容性、不具备向上兼容性。因此，启动管理器的版本必须严格按照高低先后的顺序正确排列，而不能像 Windows 的正式名称一样胡乱设置，否则便有可能无法正确配置多重操作系统共存。
例如，Windows 2000/XP/Server 2003 之所以都叫做 NT 5.X，是因为它们的启动管理器全部都是 NTLDR 与 BOOT.ini。在配置 Windows 2000/XP/Server 2003 彼此之间的多系统共存时，每一个操作系统都是由 NTLDR 与 BOOT.INI 统一管理的，大家是平起平坐的关系。而做为 NT 6.X 的 Windows Vista/Server 2008 则采用了 BOOTMGR 与 BCD 的新式启动管理器，在配置 Windows Vista/Server 2008 与 Windows 2000/XP/Server 2003 的多系统共存时，BOOTMGR 将全面负责计算机的启动管理工作，NTLDR 将沦为 BOOTMGR 的替补。举个例子，假设我们配置了 Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003 四个操作系统的共存，BOOTMGR 启动菜单并不会把 Windows XP 与 Windows Server 2003 分别列在启动菜单里，而是将它们统一显示为“早期版本的 Windows”。只有做为 NT 6.X 的 Windows Vista 与 Windows Server 2008 才有资格在 BOOTMGR 启动菜单中以独立选项的姿态出现。我们只有选择了“早期版本的 Windows”选项，由 BOOTMGR 将启动控制权移交给 NTLDR 并自动切换为 NTLDR 菜单，这时才可以继续选择需要启动 Windows XP 还是 Windows Server 2003。换言之，NTLDR 启动菜单就像是 BOOTMGR 启动菜单的子菜单一样。
现在我们再来看一下 Windows 7，当我们在安装有 Windows Vista/Server 2008 的计算机中安装了 Windows 7 后，Windows 7 会将自己添加在 BCD 里，与原有的 Windows Vista/Server 2008 实现共存，BOOTMGR 启动菜单将显示 Windows 7、Windows Vista/Server 2008 及早期版本的 Windows（如果有的话）三个选项。换言之，Windows 7 采用的启动管理器依然是 BOOTMGR 与 BCD，它与 Windows Vista/Server 2008 是一个平起平坐的关系。
假如 Windows 7 的核心版本叫做 NT 7 的话，那么它应该拿出一个版本比 BOOTMGR 与 BCD 更高的新启动管理器才对，由这个新的启动管理器接管 BOOTMGR 与 BCD 的工作。当然，目前在现实中是不存在这样一个启动管理器的，我们不妨将其假设为 Loader v7。那么，当我们安装了 Windows NT 7 系统后，Loader v7 将自动取代 BOOTMGR 与 BCD 负责计算机的启动管理，到时候只有符合 NT 7.X 版本的 Windows 系统才有资格以独立选项的姿态出现在 Loader v7 菜单中，Windows Vista/Server 2008 将被统一显示为“早期版本的 Windows”、Windows XP/Server 2003 则将被显示为“更早期版本的 Windows”（当然，如果几年以后真的有 Loader v7，到时它究竟还能否向下兼容 Windows XP/Server 2003 恐怕很难说了）。
现在，Windows 7 虽然正式名称叫做 7，但是它却并没有拿出这样一款更高级的 Loader v7 启动管理器，依然只能依靠 BOOTMGR 与 BCD、同 Windows Vista/Server 2008 平起平坐，因此 Windows 7 的核心版本号还没有资格提升到 NT 7 的高度，最多只能叫做 NT 6.1 了。虽然现在 Windows 7 仅仅放出了一个预览版，在正式发行前会有什么变化还不好说，但从目前核心版本号已经确定为 NT 6.1 的情况来看，笔者认为 Windows 7 的启动管理器不会有什么大变了。可以预见在今后的三五年内，我们的计算机都将长期使用 BOOTMGR 与 BCD。就像 Windows 2000/XP/Server 2003 可以并列在一起成为 NT 5.X 系列一样、Windows Vista/Server 2008（包括将来的 R2）/Windows 7 也可以并列在一起组成一个相对完整的 NT 6.X 家族了。
其实，在 Windows 7 核心版本号确定之前，笔者个人还是非常希望 Windows 7 能够设计新的启动管理器取代 BOOTMGR 与 BCD，真正成为 NT 7 的。现有的 BOOTMGR 与 BCD 虽然已经很好用，但有一个最大的缺陷就是它始终还是基于纯字符界面的、不是一个支持鼠标操作的 GUI 界面，叫做 Windows 未免有些名不副实。其它操作系统可是早就实现图形方式的启动管理器了，这不得不说是一个遗憾。试想如果开机自检后可以出现一个图形化的启动界面，通过鼠标点击按钮选择操作系统以及安全模式等选项该有多好，期待 NT 7 将来可以实现。目前只有使用 ERD Commander 等第三方启动管理器软件才可以实现这个目的了
出现问题的解决办法
bootmgr出现以下三个问题之后的解决办法：
1，出现“Bootmgr is missing，please press Ctrl+Alt+Del to restart”错误提示时的解决办法
bootmgr丢失，按Ctrl + Alt + DEL 重新启动。错误往往在以下情况：您意外或者故意删除了一些重要Vista系统文件，或者文件被病毒或恶意软件损坏或摧毁，还可能您采取了不适当的BIOS模拟等Vista激活方式，让你不能访问Vista的桌面环境。所以这是系统的问题， 想要修复bootmgr丢失的错误，而您又不想重新安装Windows Vista时，大部分人选择了使用Vista的DVD安装光盘来开机，这儿有个永久性的根除这个错误的办法，很简单，只要按照中概述的步骤指南来操作就可以了。
一、插入Windows Vista的DVD安装光盘，用它来启动电脑，如果没有正常启动，请确定在BIOS里面设置下开机启动顺序，先由DVD驱动器启动电脑。
二、在安装Winows那个窗口，选择适合您的系统语言、时区、键盘模式，然后点击下一步按钮。
三、在下一步骤的屏幕左下角，点击“修复您的电脑”链接。
四、如果您有很多Windows硬盘分区的话，请先选择您要修复的那个分区， 如果您只有一个Windows安装，那么选择就是显而易见的。
五、在“系统恢复选项”窗口，点击“启动修复”，这样，就可以防止Windows无法启动，也解决丢失bootmgr错误提示的问题。我的本本也是那样，后来我发现VISTA系统就都是那样，后来我就不用了，我现在还用的是XP SP3的，这稳定
2，出现“BOOTMGR is compressed Press Ctrl+Alt+Del to restart”错误提示时的解决办法
方法一，最简单的方法是：找一张winpe光盘，用它引导进入Win PE系统，打开我的电脑，右击C盘，选择属性，把那个“压缩此驱动器以节约磁盘空间”的勾去掉，然后确定，会出现bootmgr是只读文件，是否忽略，全部忽略即可，好了，大功告成，重启后一切正常
方法二，windows7对C盘进行了压缩后，恶梦开始了。重启后显示：“BOOTMGR is compressed Press Ctrl+Alt+Del to restart”。我使用的方法是:
1、用vista启动，选择修复;
2、运行“Bootrec.exe /fixmbr、Bootrec /fixboot"然后重启。。然后华丽又出现在了面前，原来
成功就是这么简单。 
当然在运行这个命令之前，网上的两种方法我都试过了，C盘也解压缩了。网上通用的方法如下：1、Boot the vista dvd to get to the command line.
expand bootmgr temp
attrib bootmgr -s -r -h
del bootmgr
ren temp bootmgr
attrib bootmgr -a +s +r +h
2、Vista安装盘启动，打开命令提示符，转到你Vista的system32（如c:\windows\system32），之后“compact /u c:\bootmgr“最好运行"compact /u /a /f /s:C:\",把c:整个分区解压缩。 
3，win2008系统出现“BOOTMGR is missing”解决方案
1、插入windows 2008安装光盘
2、选择语言后，点击修复您的计算机
3、如果找不到操作系统路径
4、进入命令行模式：每个盘符查看哪个为系统盘：
如 >e:
>dir
找到系统盘符后键入:bootrec/rebuildbcd,可以找到windows安装路径，按照提示键入“y”，然后重启
5、继续修复，可以找到系统分区信息，命令行键入：
x:sources>cd recovery
x:sources>startrep.exe
自动找到错误并修复，修复完成点击finish,自动重启后成功进入操作系统。[1]