注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

往事如烟

科技创造价值

 
 
 

日志

 
 

通过Bcdedit 命令行工具配置和创建Windows Vista 启动管理器  

2008-08-06 18:34:56|  分类: 常规教程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    根据笔者的了解,很多用户在平时使用Windows 操作系统时,遇到一点解决不了的小麻烦就要将系统重新安装一遍,当然如果计算机对于用户来说没有什么非常稳定的使用依赖,那么频繁做系统可能更加省事儿,但是如果对于一个需要长期稳定的Windows 使用环境的用户来说,绝对经不起频繁做系统的折腾,这样不仅浪费时间,并且每次安装完系统后的设置工作也是很麻烦的事情。毕竟我们需要使用计算机和操作系统的功能,而不是把时间都花在频繁的安装过程上,所以遇到很多问题首先应该寻找相对于重新安装系统来说更加快捷合理的方案来解决,就比如在Windows Vista 和Windows XP 共存情况下遇到的启动菜单管理、修复以及配置问题,一些用户因为启动菜单丢失了Windows Vista 项或者Windows XP 项就要把两个系统重新安装一遍,其实只要掌握Windows Vista 全新启动管理菜单的配置方法,一些问题都能够很简单快捷的解决。在本节当中,笔者会把用户经常可能遇到的比较典型Windows Vista 启动菜单烦恼问题一一列出,并且给出解决方案,让用户不在因为该问题而烦恼。
    笔者讲解了通过系统界面当中的属性对话框来对Windows Vista 的启动菜单进行简单的编辑,同时笔者还提到了一点,就是Windows Vista 的启动管理机制与之前的Windows 版本有所不同,下面我们就一起来看一看就行Windows Vista 的启动菜单管理机制有哪些改进。
    过去经常“摆弄”Windows XP 的朋友都因该知道,Windows XP、NT、2000 以及Server 2003 的启动配置文件是“boot.ini”,我们可以直接通过文本编辑的方式来改变启动菜单的相关参数。而在Windows Vista当中,如果同时安装了Windows XP 或者以上提到的其余三种Windows 系统,那么Windows Vista 的启动菜单会将boot.ini 当中的所有涉及以前系统的启动选项作为一大“项”显示在新的启动菜单当中,也就是说如果您安装了Windows XP 以及Windows Vista,那么启动菜单将会以复式外观出现,哪怕同时安装了多个Windows XP 或者通过boot.ini 来控制启动菜单的系统,全新的Windows Vista 启动管理器默认仅会将这些旧版本的系统统一显示为一项,比如默认的“早期版本的 Windows”,因此相信您已经理解了作为新启动菜单当中的一个选项、一个分支,boot.ini 是无法控制Windows Vista 启动管理器的相关参数的,所以说明Windows Vista 的“boot.ini”文件已经被新的配置机制所取代,该文件就是一个含有新的启动管理器相关参数的数据库文件,该文件在引导分区的Boot 文件夹内,名为bcd(无扩展名),我们可以把它的作用看作boot.ini 一样。不过我们已经不能像过去以文本方式编辑boot.ini 文件来编辑bcd 数据库文件了,所以就要使用Windows Vista 所提供的专门配置bcd 数据库文件的工具对其进行修改等操作,上一节将到的通过系统属性面板对话框来配置启动选项就是最简单的图形化方式操作bcd 文件的接口。
    其实对于普通用户来说是没有必要了解这些内容的,毕竟通过越简单的方法来实现一些操作是遇到问题首先应该选择和考虑的,但是由于Windows Vista 相比Windows XP 的启动信息管理机制有很大的改进,在多系统安装时遇到一些启动菜单的配置问题是不得不使用高级方式来进行解决的,所以为了进行后面的内容,这里笔者首先会给大家介绍全新的启动信息相关内容。
    要了解和配置Windows Vista 的启动管理器,我们必须通过系统提供的命令行工具Bcdedit。如果系统开启用了UAC 用户帐户控制机制,那么我们必须以管理员的权限来运行该工具,从而实现对BCD 数据库的修改。
    1. 在「开始」菜单搜索框中输入“cmd”,然后右键单击选择【以管理员身份运行】调出命令行操作窗口。
    2. 输入“bcdedit”命令,就可以显示当前启动菜单数bcd 据库的内同。
    技巧:凡是包含在Windows\system32 目录下的工具,我们在命令状态或者“运行”时可以不添加路径。
    以下就是典型的Windows XP 与Windows Vista 共存时BCD 数据库文件的内容结构,如图3.48 所示。
    引号内的注释表明相应ID 的含义:
Windows 启动管理器
--------------------
标识符 {bootmgr}“{bootmgr}启动管理器的头部信息标识”
device partition=C:“partition=C 为引导文件所在的分区,通常情况下为C 盘”
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
default {current}“缺省启动选项为Windows Vista”
resumeobject {f5b5ca62-ee27-11db-9930-a5b9c9ebf519}“代表Windows Vista 系统等级的系统ID”
displayorder {ntldr}“ntldr 为Windows XP 级别系统的引导文件”
{current}
toolsdisplayorder {memdiag}
timeout 5“启动菜单等待时间,这里显示为5 秒”
Windows 旧 OS 加载器“该段下显示Windows XP 等级系统的引导信息”
------------------------
标识符 {ntldr}
device partition=C:“Windows XP 等级系统所在分区”
path \ntldr
description 早期版本的 Windows“显示在启动管理器菜单中,Windows XP 等级系统的选项”
Windows 启动加载器
-------------------
标识符 {current}
device partition=F:“Windows Vista 等级系统所在的盘符”
path \Windows\system32\winload.exe
description Microsoft Windows Vista“显示在启动管理器菜单当中的名称,Windows Vista 等级系统为一级菜单”
locale zh-CN
inherit {bootloadersettings}
osdevice partition=F:
systemroot \Windows
resumeobject {f5b5ca62-ee27-11db-9930-a5b9c9ebf519}
nx OptIn
    在了解了全新的启动菜单管理机制后,下面笔者将要对实际情况当中,大家可能会遇到的多系统共存时所遇到启动管理菜单配置问题进行逐一讲解。首先笔者建议大家不管是使用Windows Vista 还是Windows XP,在系统引导正常工作的情况下对系统引导信息文件进行备份,这样可以最大程度降低今后遇到问题时修复的难度和繁琐。
    通常情况下,如果我们没有专门在安装操作前指定活动分区,那么Windows 安装程序会把相关启动引导文件被放置在C 盘根目录。为了保证用户平时不会无意删除系统引导文件,所以Windows 的引导文件属性都为系统隐藏级别,如果要查看这些文件,首先要更改系统文件属性设置。打开资源管理器,按住【Alt】键调处菜单栏,然后选择“工具->文件夹选项”,如图3.49 所示,然后按照图中选择,取消“隐藏受保护的操作系统文件(推荐)”前面的复选,同时将下方的“隐藏文件和文件夹”类型改为“显示隐藏的文件和文件夹”,这样就可以看到系统的隐藏文件了。在图的下方,笔者分别列出了Windows XP 与Windows Vista所涉及到的引导文件。
    Windows XP 的启动引导文件包含了共五个文件:boot.ini、bootfont.bin、io.sys、msdos.sys、ntldr;
    Windows Vista 的启动管理文件包括两个文件:C 盘根目录BOOT 文件夹以及bootmgr。
    不管你只是单独安装了以上两个版本的Windows,还是选择两系统共存方案,笔者首先建议您将这些文件进行备份,方便日后使用。并且对于Windows Vista,还需要备份引导管理器的数据库信息,在Windows Vista 下,在「开始」菜单搜索框中输入“cmd”,然后右键单击,选择【以管理员身份运行】。在命令行对话框中输入cdedit /export x:\bcd,x 为您自定义备份存放的路径。
    在过去使用Windows XP 时,只要我们备份了五个引导文件,如果系统引导被破坏,都可以通过多种方法将这些文件重新复制到C 盘下,即可完成修复,恢复Windows XP 的引导。但是Windows Vista 的引导方式与Windows XP 有很大不同,引入了新的启动管理器来承载新旧两个时期的系统引导菜单,所以在平时如果引导被破坏或者安装操作系统时需要修复,方法和Windows XP 都是不一样的。以下笔者列出大家在平时可能会遇到的一些典型问题进行修复方案的讲解,希望能够对您有所帮助。
    情景1 :用户购买了预装Windows Vista 的品牌计算机,但是由于种种情况不习惯Windows Vista 的操作,想在该计算机上安装Windows XP 与Vista 共存。
   
Windows Vista 肯定是安装在C 盘当中,当用户在将Windows XP 安装在其他分区后,启动计算机时Windows Vista 的启动管理菜单消失,直接进入Windows XP。
    由于Windows XP 和Windows Vista 理想的共存环境是先安装Windows XP,然后再将Windows Vista 安装在其他分区,Windows Vista 启动管理器会自动建立拥有Windows XP 的选择界面。解决上段当中的问题,我们可以借助Windows Vista 的启动菜单管理配置工具Bcdedit 来手动建立一个还有Windows XP 启动选项的BCD 数据库文件,从而解决后安装Windows XP 造成的Vista 启动菜单丢失情况。以下是具体的修复步骤:
    进入Windows XP,为了方便命令行的操作,将Windows Vista 所在分区“Windows\System32”目录下的Bcdedit.exe 文件复制到C 盘根目录,可以使用搜索功能找到该文件。
    通过快捷键【Windows 徽标+R】调出Windows XP 的运行对话框,输入CMD 并确定,调出命令行窗口。
    在命令行当中输入:
X:\> c:
    然后依次输入:
C:\>bcdedit /createstore c:\bcd
操作完成。
    该命令为在C 盘根目录创建一个空白的bcd 数据库文件,然后通过以下步骤我们来将信息写入该数据库文件当中。
C:\>bcdedit /store c:\bcd /create {bootmgr} /d "Windows Boot Manager"项{bootmgr}成功创建。
{bootmgr}说明建立一个新的启动菜单管理器入口。
C:\>bcdedit /store c:\bcd /create {ntldr} /d "早期版本的 Windows"项{ntldr}成功创建。
    命令说明:/store 参数说明bcdedit 针对指定的bcd 文件进行操作,如果不加该参数,则针对BOOT 文件夹内的BCD 文件进行操作;/create 参数为建立一个新的项目;{ntldr}代表Windows Vista 以前操作系统的引导文件,如果要添加Windows XP/2000/2003/NT 操作系统启动选项就必须加入该引导文件的ID;/d 参数后跟显示在启动管理菜单当中旧式系统引导页面的名称,这里我们根据标准的“早期版本的 Windows”为例。
C:\>bcdedit /store c:\bcd /create /d "Microsoft Windows Vista" /application osloader
项{a73fa296-83bf-11dc-8554-f0ff3424afb0}成功创建。
    该命令说明: /application osloader 参数为建立Windows Vista 的菜单选项。注意该处{ a73fa296-83bf-11dc-8554-f0ff3424afb0 }为随机生成的Windows Vista 启动ID,每一次都会有所不同,所以您所获取的ID 不会与此处的相同。将您获取的该ID 记录到文本当中方便下面的命令使用。
C:\>bcdedit /store c:\bcd /set {bootmgr} device partition=c:
操作成功完成。
    该命令说明提供启动管理器所在文件的分区。
C:\>bcdedit /store c:\bcd /set {ntldr} device partition=c:
操作成功完成。
    该命令指定早期版本操作系统ntldr 文件所在分区,如C 盘。
C:\>bcdedit /store c:\bcd /set {ntldr} path \ntldr
操作成功完成。
    该命令指定早期版本操作系统由ntldr 引导。
C:\>bcdedit /store c:\bcd /set {a73fa296-83bf-11dc-8554-f0ff3424afb0} device partition=c:
操作成功完成。
    该命令加入{ a73fa296-83bf-11dc-8554-f0ff3424afb0} ID 引导信息。
C:\>bcdedit /store c:\bcd /set {a73fa296-83bf-11dc-8554-f0ff3424afb0} path \windows\system32\winload.exe
操作成功完成。
    该命令设置{a73fa296-83bf-11dc-8554-f0ff3424afb0}对应c:\windows\system32\winload.exe。
C:\>bcdedit /store c:\bcd /displayorder {ntldr} /addlast
操作成功完成。
C:\>bcdedit /store c:\bcd /displayorder {a73fa296-83bf-11dc-8554-f0ff3424afb0} /addlast
操作成功完成。
    以上两条命令行是将Windows XP 与Windows Vista 的引导信息加入启动菜单管理器。
C:\>bcdedit /store c:\bcd /set {a73fa296-83bf-11dc-8554-f0ff3424afb0} osdevice partition=c:
操作成功完成。
    设置{a73fa296-83bf-11dc-8554-f0ff3424afb0}ID 对应的Windows Vista 在C 盘。
C:\>bcdedit /store c:\bcd /set {a73fa296-83bf-11dc-8554-f0ff3424afb0} systemroot \windows
操作成功完成。
    该命令指定{a73fa296-83bf-11dc-8554-f0ff3424afb0} ID Windows 目录为 C 盘Windows 文件夹。
C:\>bcdedit /store c:\bcd /timeout 30
操作成功完成。
该命令指定启动菜单的等待选择时间为30 秒。
C:\>bcdedit /store c:\bcd /default {ntldr}
操作成功完成。
    该命令指定Windows XP 为缺省选项。如果要指定Windows Vita 为缺省,则将ID 替换为{a73fa296-83bf-11dc-8554-f0ff3424afb0}。
C:\>bcdedit /store c:\bcd /set {bootmgr} locale zh-CN
操作成功完成。
    该命令指定启动菜单管理器语言为简体中文,否则默认英文界面无法正常显示中文项目。
    以上就完成了一个BCD 数据库文件的编写,之后将该文件导入系统引导文件夹当中,使用bcdedit /import c:\bcd 或者直接将bcd 文件覆盖到C 盘boot 文件夹内即可。
    注意:如果使用复制的方法将另外生成的数据库文件覆盖Boot 文件夹内的BCD 数据库文件,那么必须拥有该文件的权限或者在非当前系统环境下操作,也就是可以借助WinPE 或者另外的操作系统,如当前计算机还装有Windows XP。
    情景2 :Windows XP 与Windows Vista 双系统情况下,由于启动管理器被破坏或者BCD 数据库文件损坏或者丢失,导致无法进入Windows XP 或者Windows Vista 任意系统;或者由于Windows XP 在C 盘,用户需要将C 盘的Windows XP 格式化重新安装,但是忘记备份Windows Vista 的引导文件boot 文件夹、bootmgr以及bcd 数据库文件,格式化后造成这些文件的丢失。
   
这时,通过Windows Vista 的安装DVD 引导计算机进行启动管理器自动修复,重建boot 文件夹、bootmgr 以及bcd 数据库文件,虽然可以修复Windows Vista的启动管理器并且登录Vista,但是Windows XP 的启动选项从启动管理器当中消失,这是因为如果BCD 数据库文件损坏或者丢失,通过DVD 引导计算机自动修复会扫描硬盘上的Windows Vista,但是并不包括Vista以前版本的Windows 的扫描,所以这时候我们只能通过修改修复后的BCD数据库文件,向其中添加Windows XP 的启动信息。(有关通过Windows Vista DVD 安装光盘引导计算机进行自动修复的方法在后面的系统维护管理与修复部分笔者会为您详细讲解)
    在情景1 当中,笔者详细的列出了手动重建一个包含Windows XP 的Windows Vista 启动管理器BCD数据库文件,其中涉及到了建立Windows XP 引导信息的相关命令参数,我们可以参照这些参数来使用Bcdedit 向BCD 数据库文件内添加Windows XP 的相关引导参数,以下笔者给出一个修改过程实例:
    在Windows Vista 系统环境下,以管理员身份运行cmd 命令行窗口。在进行Windows XP 启动信息添加前,笔者需要提醒大家注意,在情景1 当中,笔者是另外建立一个BCD 数据库文件进行创建,然后导入系统boot 文件夹。而下面的命令参数由于是针对Boot 文件夹内的BCD 文件,也就是系统启动管理器所使用的BCD 数据库,所以命令行参数上与情景1 有所不同。
    在命令行当中依次输入:
C:\>Bcdedit /create {ntldr} /d "早期版本的 Windows"
C:\>Bcdedit /set {ntldr} device partition=x:
C:\>Bcdedit /set {ntldr} path \ntldr
C:\>Bcdedit /displayorder {ntldr} /addlast
    以上命令在情景1 当中都已经给出了具体的解释,所以这里笔者就不再重复讲解,但需要注意,在第二条命令行中的“partition=x:”,x 代表在Windows Vista 下查看XP 系统所在的盘符。
    这样就完成了向BCD 数据库文件中添加Windows XP 的启动信息操作,如果要设置缺省启动项,同样可以参考情景1 当中的命令行进行操作。当然如果在将C 盘原有的Windows XP 进行了重新安装并且格式化C 盘前你就已经把应该备份的Windows Vista 三个启动引导文件复制到了其他路径,那么当安装完Windows XP 后,只需要登录XP,然后将boot 文件夹和bootmgr 重新放置在C 盘根目录,然后将BCD 数据库文件导入,即可修复原有的双重启动管理器菜单。在Windows XP 下使用Bcdedit 命令行工具以及导入BCD 数据库文件的相关操作方法同样可以参考情景1 当中笔者的讲解。
    通过以上两个情景的模拟,基本上可以解决其他类似的启动菜单配置问题,如果你在多系统情况下遇到了启动菜单的烦恼,都可以参考以上两个情景进行解决。
    除了以上demo 当中所使用到的bcdedit 命令行工具参数外,如果您想更改启动项目在启动管理器界面当中所显示的名称,例如将默认的“早期版本的 Windows”改为“Windows XP Professional”;将“Microsoft Windows Vista”改为“Windows Vista Ulitmate”,那么可以使用以下两条命令行参数:
    更改Windows Vista 的启动条目显示名称:
bcdedit /set {current} Description "Windows Vista Ultimate"
    更改Windows Vista 以前版本系统的启动显示条目名称:
bcdedit /set {ntldr} Description "Windows XP Professional"
    如果要获取更多有关bcdedit 命令行工具的使用参数,可以在命令行窗口内输入:
Bcdedit /?
    也可以通过访问微软在线帮助获取更加丰富的内容。

  评论这张
 
阅读(2004)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017