使用下面方法之前需要bcdedit.exe和bootsect.exe两个文件,bootsect.exe文件在vista和windows 7的安装光盘的boot目录下,而bcdedit.exe文件可以在安装了vista系统或者windows 7系统的电脑上的\windows\system32目录下获得,当然也可以使用imagex命令挂载vista或者windows 7安装光盘里source\install.wim文件,然后到windows\system32下也能找到bcdedit命令。至于imagex命令可以到微软官方下载WAIK工具包。

有3个入口(Entry),每个入口又有细分,最关键的是Identifier,在BCD中,每个入口的唯一标识就是这个Identifier(简称Id)。
共有个三个Id:
{bootmgr}
{ntldr}
{}

关于“/store”参数:
C:\>bcdedit /store c:\bcdwolf /create {ntldr} /d "XP"
说明:如果在bcdedit后面不加这个store参数,则是对系统bcd进行操作;加了则是对指定的文件bcd进行操作。

1、创建BCD数据库
将安装光盘上的boot文件夹和bootmgr文件一起复制到c盘,然后删除C:\Boot\bcd文件。
   进入bcdedit所在目录执行如下命令:
Bcdedit /createstore c:\BCD    //由于我们还没有一个文件bcd,因此我们先创建一个
bcdedit /import c:\bcd    //将c:\bcd还原到系统(即:c:\boot\),备份为/export
Bcdedit /create {bootmgr} /d "Boot Manager"   //创建{bootmgr}入口,这个是主入口,不是菜单,建立的所有菜单都在这个入口中管理
Bcdedit /set {bootmgr} device boot 
bcdedit /set {bootmgr} locale en-US    //可以不设置,默认为英文 (这一段参考了WAIK帮助文档)

2、添加Windows XP启动菜单:
bcdedit /create {ntldr} /d "1. Windows XP Professional"    //创建菜单“1. Windows XP Professional”
bcdedit /set {ntldr} path \ntldr   //设置{ntldr}入口的path值,这里指定引导程序所在路径,xp是在c:\ntldr
bcdedit /set {ntldr} device partition=c:    //设置{ntldr}入口的device值,这里实际是xp所在分区,它在c盘
bcdedit /displayorder {ntldr} -addlast   //将id为{ntldr}的菜单追加到多重菜单的最后

3、添加Windows 7启动菜单
Bcdedit /create /d "2. Windows Seven Ultimate Build 7057" -application osloader    //创建菜单
这条命令完后会返回一个GUID值,如:
The entry {631fdc40-1b9a-11de-aa5e-0010c6ff6db9} was successfully created.
接下来{631fdc40-1b9a-11de-aa5e-0010c6ff6db9}这个GUID值就表示是Windows 7的菜单项。
Bcdedit /set {631fdc40-1b9a-11de-aa5e-0010c6ff6db9} osdevice partition=E:    //设置{}的windows device为E盘
Bcdedit /set {631fdc40-1b9a-11de-aa5e-0010c6ff6db9} device partition=E:    //设置{}入口的device值
Bcdedit /set {631fdc40-1b9a-11de-aa5e-0010c6ff6db9} path \windows\system32\winload.exe   //设置{}入口的path值
Bcdedit /set {631fdc40-1b9a-11de-aa5e-0010c6ff6db9} systemroot \windows    //设置{}的windows root为\windows
Bcdedit/displayorder {631fdc40-1b9a-11de-aa5e-0010c6ff6db9} -addlast    //将id为{}的菜单追加到多重菜单的最后

4、添加PE 1.0启动菜单
bcdedit /copy {ntldr} /d "3. Windows Preinstallation Enviroment 1.0"
//The entry {fcc0bdf0-1ba0-11de-aa5e-0010c6ff6db9} was successfully
bcdedit /set {fcc0bdf0-1ba0-11de-aa5e-0010c6ff6db9} path \LDRXPE
bcdedit /set {fcc0bdf0-1ba0-11de-aa5e-0010c6ff6db9} device partition=c:
bcdedit /displayorder {fcc0bdf0-1ba0-11de-aa5e-0010c6ff6db9} -addlast

5、设置默认的启动条目和选择时间
Bcdedit /default {631fdc40-1b9a-11de-aa5e-0010c6ff6db9}
bcdedit /timeout 7

6、修改启动参数模式
bootsect /nt60 c:

用bcdedit.exe重建bcd的更多相关文章

  1. [Solved]bcdedit.exe文件权限问题

    最近在项目开发过程中,要使用到C:\Windows\system32\bcdedit.exe 但是在使用过程中,发现了一个问题.在命令行下面使用bcdedit.exe,如果是以管理员方式运行的命令行就 ...

  2. UEFI下win10+Ubuntu双启动后完全纯净卸载Ubuntu,重建BCD

    以下内容操作具有风险,操作前请提前备份数据.建议由有丰富经验的人使用,需要掌握diskpart. 背景 使用ubuntu+win10 dual boot后,需要重置回纯净win10系统. BCD是Bo ...

  3. GRUB4DOS入门

    目 录 第1章 GRUB4DOS入门    1 1.1 用途    1 1.2 安装    1 1.2.1 修改MBR    1 1.2.2 修改PBR    3 1.2.3 DOS    4 1.2 ...

  4. bcdedit

    我的电脑装了双系统:Win2003 SP2(C盘)和Win2008 SP2(D盘),最近2003一启动就蓝屏unknown hard error,安全模式也进不去,恢复注册表等方法试过也不行,但200 ...

  5. BCDedit 研究

    bcdedit的研究 系统引导安装 2009-11-12 22:21:13 阅读13 评论0 字号:大中小 首先说明下引导: 微软在Vista之前的系统,采用的是Ntldr来进行引导系统,使用的是bo ...

  6. bcdedit的研究

    首先说明下引导: 微软在Vista之前的系统,采用的是Ntldr来进行引导系统,使用的是boot.ini文件. 在目前的Vista和win7中,采用的是新的引导方式Windows Boot Manag ...

  7. 直接用bcdedit创建bootmgr数据库和修复启动菜单

    直接用bcdedit创建bootmgr数据库和修复启动菜单 使用下面方法之前需要bcdedit和bootsect两条命令,这两条命令可以到vista或者windows 7安装光盘上获得.bootsec ...

  8. win10 bcdedit testsigning

    win10 bcdedit testsigning # 禁用系统完整性检查和禁用驱动签名以及进入测试签名驱动模式> bcdedit.exe /set nointegritychecks on & ...

  9. bcdedit 替代easybcd 编辑grub

    bcdedit这个命令是win7下,继续安装xubuntu时遇到的.当时xubuntu的语言设置为en-us,时区改为HK,可是仍有很多不太适应的地方.于是,删了xubuntu,重装它.同时,grub ...

随机推荐

  1. 升压转换器 (Boost)

    升压转换器 (Boost) 需要将输入电压转换为较高的输出电压时,升压转换器 (Boost)是唯一的选择. 升压转换器透过内部 MOSFET 对电压充电来达成升压输出的目的,而当 MOSFET 关闭时 ...

  2. linux命令显示文件内容行号|linux将内容以行号显示出来

            查看文件内容:cat /etc/shadow里面所有内容         cat命令是全部输出          cat /etc/shadow -n 输出内容及行号,空行业输出了   ...

  3. 三分钟教你学Git (四)之紧急救助

    假设你不小心git reset --hard HEAD^ 然后这个commit又没有在别的git仓库中,怎么办?是不是这次改动就丢了呢? 当然不是,git为我们每次都历史都保留了reference l ...

  4. uboot烧写命令--yaffs、jiffs和ubifs

    如果要烧写的镜像的格式是yaffs2或者yaffs格式的,那么在往Nand Flash中烧写该镜像是必须采用nand write.yaffs,而不能采用nand write: nand write.y ...

  5. Python实现MapReduce,wordcount实例,MapReduce实现两表的Join

    Python实现MapReduce 下面使用mapreduce模式实现了一个简单的统计日志中单词出现次数的程序: from functools import reduce from multiproc ...

  6. leetcode mock Shuffle an Array

    1. shuffle算法: http://www.cnblogs.com/huaping-audio/archive/2008/09/09/1287985.html 注意:我们一般用的是第二种swap ...

  7. Log4j使用指南

    1         概述 本文档是针对Log4j日志工具的使用指南.包括:日志介绍.日志工具介绍.Log4j基本使用.Log4j的高级使用.Spring与log4j的集成等.并进行了举例说明. 本文档 ...

  8. J2EE 中 用 El表达式 和 Jsp 方式 取得 URL 中的参数方法

    使用 el表达式方法: var urlParamValue = "${param.urlVarName}"; 使用 Jsp 表达式 var urlParamValue2 = &qu ...

  9. PHP实现双向链表、栈

    前期写过一个PHP实现单向链表.实现排序单向链表的一篇文章,传送门:http://www.cnblogs.com/yydcdut/p/3777760.html.双向链表写过了,再拿出来提一提:http ...

  10. luigi框架--关于python运行spark程序

    首先,目标是写个python脚本,跑spark程序来统计hdfs中的一些数据.参考了别人的代码,故用了luigi框架. 至于luigi的原理 底层的一些东西Google就好.本文主要就是聚焦快速使用, ...