bcdedit的研究

系统引导安装 2009-11-12 22:21:13 阅读13 评论0 字号:大中

首先说明下引导:

微软在Vista之前的系统,采用的是Ntldr来进行引导系统,使用的是boot.ini文件。

在目前的Vista和win7中,采用的是新的引导方式Windows Boot Manager(就是Bootmgr),这个引导从修改的角度来说变成了数据库的形式,不能采取通过记事本修改的方法了,为此微软提供了修改的程序——bcdedit.exe。

提醒:个别功能可以执行msconfig进行修改!或者安装管理软件修改,如easy bcd等。

首先贴出一个bcdedit的例子:

==========================================================

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=C:
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {4f73a4f4-bfa7-11de-8f62-ebb3d51eb702}
displayorder            {current}
                        {4f73a4f5-bfa7-11de-8f62-ebb3d51eb702}
                        {ntldr}
toolsdisplayorder       {memdiag}
timeout                 2

Windows 启动加载器
-------------------
标识符                   {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {4f73a4f6-bfa7-11de-8f62-ebb3d51eb702}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {4f73a4f4-bfa7-11de-8f62-ebb3d51eb702}
nx                      OptIn

Windows 旧 OS 加载器
------------------------
标识符                  {ntldr}
device                  partition=C:
path                    \ntldr
description             Windows XP

==========================================================

标识符及代号说明:

{4f73a4f6-bfa7-11de-8f62-ebb3d51eb702}    这个就是Windows7

简单的bcdedit命令:

<查看帮助>

bcdedit /?                      查看帮助

bcdedit /? set                查看set命令参数的帮助

bcdedit /? createstore   查看createstore命令参数的帮助

...

<备份与恢复>

bcdedit /export "D:\backup"  保存BCD数据库到D盘backup文件

bcdedit /import "D:\backup"  从D盘backup文件恢复BCD引导

<多菜单修改>

bcdedit /timeout 30    修改启动界面等待时间为30秒

bcdedit /default     设置当前系统为默认启动系统。

bcdedit /default {ntldr} 设置标识符为{ntldr}的系统为默认系统。

bcdedit /displayorder {ntldr} {4f73a4f6-bfa7-11de-8f62-ebb3d51eb702}

启动菜单顺数改为第一个为{ntldr},第二个为{4f73a4f6-bfa7-11de-8f62-ebb3d51eb702

bcdedit /displayorder {ntldr} /addlast 将{ntldr}放到启动菜单的最后一个。

除addlast外,还有addfirst(放到第一位)和remove(移除此选项)

注意:bcdedit /displayorder后面必须接标识符,此处如果是{current}也不可以省略。bcdedit /displayorder /addlast是语法错误。

<菜单创建>

bcdedit /create {ntldr} /d "之前的 Windows系统"       创建一个描述为(/d后面的内容)"之前的 Windows系统"的菜单,这个可以用于创建XP等系统引导。

bcdedit /create /d "Windows Vista" /application osloader   创建一个描述为"Windows Vista"的菜单,这个用于Vista和win7等系统的引导。(和上面的就差在最后的/application osloader一句话)

<菜单删除>

bcdedit /delete {4f73a4f4-bfa7-11de-8f62-ebb3d51eb702} 删除标识符为{4f73a4f4-bfa7-11de-8f62-ebb3d51eb702}的菜单
bcdedit /delete {ntldr} /f  删除标识符为{ntldr}的菜单。(删除ntldr的菜单需要后面加上一个/f)

<菜单修改>

bcdedit /set description "windows 7 AT ONE"  将当前系统描述修改为"windows 7 AT ONE"

bcdedit /set {ntldr} description "windows XP AT ONE"  将标识符为{ntldr}的菜单描述修改为"windows XP AT ONE"

bcdedit /set {4f73a4f4-bfa7-11de-8f62-ebb3d51eb702} device partition=C:   设定标识符为"cbd971bf-b7b8-4885-951a-fa03044f5d71"的菜单的引导分区为"C:"

bcdedit /set {4f73a4f4-bfa7-11de-8f62-ebb3d51eb702} path \windows\system32\winload.exe     设定标识符为{4f73a4f4-bfa7-11de-8f62-ebb3d51eb702}的菜单的系统引导文件为"windows\ system 32\ winload.exe"

bcdedit /set {4f73a4f4-bfa7-11de-8f62-ebb3d51eb702} nx optin    设定设定标识符为{4f73a4f4-bfa7-11de-8f62-ebb3d51eb702}的菜单系统开启DEP保护

Bootmgr下面添加NTLDR范例:

bcdedit /create {ntldr}
bcdedit /set {ntldr} device partition=C:
bcdedit /set path \ntldr
bcdedit /set description "WinXP"

第二行的C:是bootmgr启动所在分区,之后要把NTLDR的启动文件拷贝到该分区。

BCDedit 研究的更多相关文章

  1. bcdedit的研究

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

  2. Bcdedit命令使用详解使用方法

    XP,WIN2003,VISTA,万indows,WIN2008多盘多系统多引导bcdedit的使用windows出了新系统vista,2008想赏赏鲜学习学习~~但又习惯于用旧的XP,2003,然而 ...

  3. bcdedit

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

  4. 闲来无聊,研究一下Web服务器 的源程序

    web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...

  5. SQLSERVER聚集索引与非聚集索引的再次研究(上)

    SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻 ...

  6. 深入研究Visual studio 2017 RC新特性

    在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...

  7. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  8. 对一致性Hash算法,Java代码实现的深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

  9. SQLSERVER聚集索引与非聚集索引的再次研究(下)

    SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...

随机推荐

  1. spring框架--IOC容器,依赖注入

    思考: 1. 对象创建创建能否写死? 2. 对象创建细节 对象数量 action  多个   [维护成员变量] service 一个   [不需要维护公共变量] dao     一个   [不需要维护 ...

  2. JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求

    JSON 介绍 1. JSON: JavaScript Object Notation 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是 ...

  3. OC-之NSDate、万年历

    万年历计算星期-基姆拉尔森公式 #include /* * 基姆拉尔森计算公式* W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7*/int week(int ...

  4. android开发进阶学习博客资源

    Android开发者博客推荐 Android入门级 - 罗宪明 http://blog.csdn.net/wdaming1986 Android入门级 - 魏祝林 http://blog.csdn.n ...

  5. POJ 3548 Restoring the digits

    暴力搜索.注意题目说每个字母对应的数字不同,这句话表明最多只有10个字母,所以暴力DFS绝对不会TLE. #include<cstdio> #include<cstring> ...

  6. 第五节 面向连接传输:TCP

    第五节 面向连接传输:TCP   TCP概述RFCs:793,1122,1323,2018,2581   点对点:   一个发送方,一个接收方   可靠,按序的字节流:   无“报文边界”,无结构但有 ...

  7. Autofac 组件、服务、自动装配(2)

    一.组件 创建出来的对象需要从组件中来获取,组件的创建有如下4种(延续第一篇的Demo,仅仅变动所贴出的代码)方式: 1.类型创建RegisterType AutoFac能够通过反射检查一个类型,选择 ...

  8. 如何在sharepoint里通过correlation id查找详细的错误信息

    Sharepoint里我们经常遇到这样的错误信息: 我们能通过下面的power shell 命令来查到详细的错误信息: $correlationid = "943e6e9c-b5d9-207 ...

  9. 这种方法在受到.NET版本和访问注册表权限时,是最佳解决方案,虽然代码看起来很多,不过下面的类直接拿走用就可以了。

    public class FileContentType  {      private static IDictionary<string, string> _mappings = ne ...

  10. .htaccess重写URL讲解

    使用ThinkPHP和Laravel等框架的都知道,所以的请求都需要经过index.php文件入口,无论你的URI是什么. 当然除了访问的是静态文件或者访问路径的文件真实存在,例如你访问xxx.com ...