无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5215|回复: 33
打印 上一主题 下一主题

谁有 BCD 的详细资料

[复制链接]
跳转到指定楼层
1#
发表于 2009-8-27 15:11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图,有没有了解 BCD 的,或者有详细资料的,说明一下微软这些垃圾的意义。

未命名.PNG (14.54 KB, 下载次数: 76)

未命名.PNG
2#
发表于 2009-8-27 15:13:42 | 只看该作者
看不懂,顶一下老九。
回复

使用道具 举报

3#
发表于 2009-8-27 15:23:51 | 只看该作者
不知道是不是这个,

http://www.geoffchappell.com/vie ... oot/bcd/objects.htm


http://bbs.wuyou.net/forum.php?mod=viewthread&tid=134756

[ 本帖最后由 Zokor 于 2009-8-27 15:27 编辑 ]

TT截图未命名.jpg (106.74 KB, 下载次数: 83)

TT截图未命名.jpg
回复

使用道具 举报

4#
发表于 2009-8-27 15:25:27 | 只看该作者
微软官方文档
http://download.microsoft.com/do ... 8336565f5b/BCD.docx

另外还有这里,有一些官方文档中没提到的东西
http://www.geoffchappell.com/vie ... /index.htm&tx=5
回复

使用道具 举报

5#
 楼主| 发表于 2009-8-27 15:55:32 | 只看该作者
呵呵,一堆鸡肠,要慢慢消化。。。。。
回复

使用道具 举报

6#
发表于 2009-8-27 16:22:55 | 只看该作者
要这些干嘛????我很想知道。
如果有用的话。。。
回复

使用道具 举报

7#
发表于 2009-8-27 17:07:37 | 只看该作者
了解 BCD ,启动必备,学习下哈,呵呵
回复

使用道具 举报

8#
发表于 2009-8-27 17:36:04 | 只看该作者
有些东东没有公布,特别是winre部分,只能尝试操作
提供的工具就bcdedit和bcdboot
回复

使用道具 举报

9#
 楼主| 发表于 2009-8-27 17:53:43 | 只看该作者
原帖由 玄天 于 2009-8-27 17:36 发表
有些东东没有公布,特别是winre部分,只能尝试操作
提供的工具就bcdedit和bcdboot


本人手动修改编辑了一个BCD,只有12K,已传上论坛了,适用于XP/2003系统安装WinPE2.x和WinPE3.x。
不知能否精简到8K。
回复

使用道具 举报

10#
发表于 2009-8-27 17:54:26 | 只看该作者
bootmgr功能强大,远超syslinux和grub4dos, 够学一阵了的了,呵呵。
回复

使用道具 举报

11#
发表于 2009-8-27 18:08:01 | 只看该作者
原帖由 lxl1638 于 2009-8-27 17:53 发表


本人手动修改编辑了一个BCD,只有12K,已传上论坛了,适用于XP/2003系统安装WinPE2.x和WinPE3.x。
不知能否精简到8K。



我试了一下,不显示菜单项,直接启动就是8k. 加了菜单项目{bootmgr} 就是256K, 其实大小没啥问题啊,如何才能简便的修改才是最重要的。
回复

使用道具 举报

12#
 楼主| 发表于 2009-8-27 18:56:43 | 只看该作者
原帖由 jamesdai2002 于 2009-8-27 18:08 发表

我试了一下,不显示菜单项,直接启动就是8k. 加了菜单项目{bootmgr} 就是256K, 其实大小没啥问题啊,如何才能简便的修改才是最重要的。


如果是制作 XP/2003 安装 Win7PE 的工具,精简一下BCD很有必要。
现在的问题是如何防止 BOOTMGR 读取 BOOT.INI ,看来要用 GD4DOS 了。
回复

使用道具 举报

13#
发表于 2009-8-27 19:20:32 | 只看该作者
原帖由 lxl1638 于 2009-8-27 18:56 发表


如果是制作 XP/2003 安装 Win7PE 的工具,精简一下BCD很有必要。
现在的问题是如何防止 BOOTMGR 读取 BOOT.INI ,看来要用 GD4DOS 了。

很简单,把bootmgr中的boot.ini替字符串换成别的,它就不读boot.ini了
回复

使用道具 举报

14#
发表于 2009-8-27 19:37:33 | 只看该作者
10楼的胡扯了吧,什么远超SYSLINUX和GRUB4DOS,差一截呢。
回复

使用道具 举报

15#
发表于 2009-8-27 20:09:19 | 只看该作者
原帖由 lrbin50 于 2009-8-27 19:37 发表
10楼的胡扯了吧,什么远超SYSLINUX和GRUB4DOS,差一截呢。


功能是强大啊,单公开的文档就有几十页, 如果使用vista/win7/pe 2.0不可能绕开这个的,那么多参数你又了解多少呢,当然微软的东西对dos和linux支持是不太好, 我打算用来作为pxe启动管理器, 也可以加载pxelinux啊

bootmgr pxe加载pe1.0和pxelinux  参考 http://jamesdai2002.spaces.live.com/
加载grldr.0失败, 可能是因为文件本身大了一些。

[ 本帖最后由 jamesdai2002 于 2009-8-28 08:38 编辑 ]
回复

使用道具 举报

16#
发表于 2009-8-27 21:23:31 | 只看该作者

回复 #17 zhxy9804 的帖子

回复

使用道具 举报

17#
发表于 2009-8-28 00:18:46 | 只看该作者
本来就不算大,所以也没想取精简它,有些东东现在还只能改注册表定义名称和本地化(比如win7安装源的winre,这东东的标识符不确定)
回复

使用道具 举报

18#
发表于 2009-8-28 00:46:48 | 只看该作者
只要BCD菜单里面没有NTLDR项就不读BOOT.INI了吧,记得是如此的.

#11
出现256KB,只要把BCD的注册表导出到一个新的文件一般情况下就只有12KB了.
回复

使用道具 举报

19#
发表于 2009-8-28 08:43:00 | 只看该作者

回复 #21 zhxy9804 的帖子

版主转贴我的文章也不注明出处,唉.....
回复

使用道具 举报

20#
发表于 2009-8-28 15:16:33 | 只看该作者
另外,bootmgr其实可以不通过ntldr直接引导xp/2003。

方法就是把vista的winload.exe放到xp的windows\system32文件夹下,然后建立一个类似vista/win7的启动项指向xp中的winloade.exe,这样就能启动xp了(有时要关掉驱动签名验证)
回复

使用道具 举报

21#
 楼主| 发表于 2009-8-28 18:29:10 | 只看该作者
原帖由 fujianabc 于 2009-8-28 15:16 发表
另外,bootmgr其实可以不通过ntldr直接引导xp/2003。

方法就是把vista的winload.exe放到xp的windows\system32文件夹下,然后建立一个类似vista/win7的启动项指向xp中的winloade.exe,这样就能启动xp了(有时 ...


那么说来,XP这样的系统可以从WIM中启动?
回复

使用道具 举报

22#
发表于 2009-8-28 19:45:02 | 只看该作者
原帖由 lxl1638 于 2009-8-28 18:29 发表


那么说来,XP这样的系统可以从WIM中启动?

这需要vista的ramdisk.sys,wimfsf.sys支持才能启动,但vista的ramdisk.sys不能用在xp上,而xp/2003的ramdisk.sys不支持wim
回复

使用道具 举报

23#
发表于 2009-8-29 08:07:16 | 只看该作者
这种东西微软的学习网站上有很多
回复

使用道具 举报

24#
发表于 2009-8-29 08:08:06 | 只看该作者
楼主 慢慢在微软上泡一泡就懂了
回复

使用道具 举报

25#
发表于 2009-8-29 08:09:14 | 只看该作者
这种东西微软的学习网站上有很多 你应该到那里去求得真经才对
回复

使用道具 举报

26#
发表于 2009-8-29 08:25:40 | 只看该作者
一般是都是用一个vbs脚来生成BCD的,脚本如下:
Dim WshShell, FSO
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

WSHShell.run "bcdedit /createstore G:\bcd", 0, TRUE

WSHShell.run "Bcdedit /store G:\bcd /create {bootmgr} /d ""Windows Boot Manager""", 0, TRUE
WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} device boot", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /create {ramdiskoptions}", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set {ramdiskoptions} ramdisksdidevice boot", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set {ramdiskoptions} ramdisksdipath \boot\PE\boot.sdi", 0, TRUE

Set getGUID = WshShell.Exec("bcdedit /store G:\bcd /create /d ""Microsoft Windows PE X86"" /application OSLOADER")
Do While getGUID.Status = 0
     WScript.Sleep 100
Loop

        'Fun little set of code to grep out the GUID
        strGUID = getGUID.StdOut.ReadAll
        arr1GUID = Split(strGUID, "{")
        arr2GUID = Split("{"&arr1GUID(1), "}")
        ttrGUID = arr2GUID(0)&"}"
               
WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" device ramdisk=[boot]\boot\PE\boot32.wim,{ramdiskoptions}", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" path \windows\system32\boot\winload.exe", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" osdevice ramdisk=[boot]\boot\PE\boot32.wim,{ramdiskoptions}", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" systemroot \windows", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" winpe yes", 0, TRUE
WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" detecthal yes", 0, TRUE

WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} displayorder "&ttrGUID&" /addfirst", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /timeout 5", 0, TRUE

这样生成的BCD文件也是12K,修改也方便。

[ 本帖最后由 tdq868xin 于 2009-8-29 12:28 编辑 ]
回复

使用道具 举报

27#
发表于 2009-8-29 12:29:52 | 只看该作者
上面的脚本原来有两处错误,已经修改
WSHShell.run "bcdedit /store G:\bcd /create {ramdiskoptions}", 0, TRUE
WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} displayorder "&ttrGUID&" /addfirst", 0, TRUE
回复

使用道具 举报

28#
发表于 2009-9-4 10:01:38 | 只看该作者
原帖由 macowen 于 2009-8-29 08:09 发表
这种东西微软的学习网站上有很多 你应该到那里去求得真经才对

这位小朋友很诚恳,老九会按你说的做的
回复

使用道具 举报

29#
发表于 2009-9-4 16:35:12 | 只看该作者

原文地址:http://user.qzone.qq.com/732397741

BCDEDIT 详细介绍

bcdedit /export <filename>
此命令将系统存储的内容导出到文件。以后可以使用此文件还原系统存储的状态。
此命令仅对系统存储有效。
<filename>          将用作导出目标的文件名。如果文件名包含空格,则必须将其
                    括在引号("")中。
示例:
下列命令将系统存储导出到指定的文件:
    bcdedit /export "C:\Data\BCD Backup"

bcdedit /import <filename> [/clean]
此命令使用以前使用 /export 命令生成的备份数据文件
还原系统存储的状态。在进行导入前,
将删除系统存储中的所有现有项。此命令
仅对系统存储有效。
    <filename>      将导入系统存储的文件的名称。
                    如果文件名包含空格,则必须将其
                    括在引号("")中。
    /clean          指定应删除所有现有固件启动项
                    (仅影响 EFI 系统)。
示例:
以下命令将指定的文件导入系统存储。
    bcdedit /import "C:\Data\BCD Backup" /clean


BCDEDIT - 启动配置数据存储编辑器
Bcdedit.exe 命令行工具用于修改启动配置数据存储。
启动配置数据存储包含启动配置参数并
控制操作系统的启动方式。这些参数以前位于
Boot.ini 文件中(在基于 BIOS 的操作系统中)或位于稳定
RAM 项中(在基于可扩展固件接口的操作系统中)。可以
使用 Bcdedit.exe 在启动配置数据存储中添加、删除、
编辑和附加项。

有关命令和选项的详细信息,请键入 bcdedit.exe /? <command>。
例如,若要显示有关 /createstore 命令的详细信息,请键入:

     bcdedit.exe /? /createstore
有关本帮助文件中按字母顺序排列的主题列表,请运行 "bcdedit /? TOPICS"。
对存储执行的命令
================================
/createstore    新建空的启动配置数据存储。
/export         将系统存储的内容导出到文件。以后
                可以使用该文件还原系统存储的状态。
/import         使用 /export 命令创建的备份文件来
                还原系统存储的状态。
/sysstore       设置系统存储设备(仅影响 EFI 系统,
                在重新启动后不再有效,且仅用于
                系统存储设备不确定的情况下)。

对存储中的项执行的命令
===========================================
/copy           复制存储中的项。
/create         在存储中新建项。
/delete         删除存储中的项。
/mirror         创建存储中项的镜像。

运行 bcdedit /? ID 可获得有关这些命令使用的标识符的信息。
对项选项执行的命令
======================================
/deletevalue    删除存储中的项选项。
/set            设置存储中的项选项值。

运行 bcdedit /? TYPES 可获得这些命令使用的数据类型的列表。
运行 bcdedit /? FORMATS 可获得有效数据格式的列表。

控制输出的命令
============================
/enum           列出存储中的项。
/v              命令行选项,完整显示项标识符,
                而不是使用已知标识符的名称。
                单独使用命令 /v 可完整显示活动类型
                的项标识符。

单独运行 "bcdedit" 等同于运行 "bcdedit /enum ACTIVE"。
控制启动管理器的命令
======================================
/bootsequence   为启动管理器设置一次性启动序列。
/default        设置启动管理器将使用的默认项。
/displayorder   设置启动管理器显示多重引导菜单
                的顺序。
/timeout        设置启动管理器的超时值。
/toolsdisplayorder  设置启动管理器显示工具菜单
                    的顺序。

控制启动应用程序紧急管理服务的命令
==========================================================================
/bootems        启用或禁用启动应用程序的
                紧急管理服务。
/ems            启用或禁用操作系统项的
                紧急管理服务。
/emssettings    设置全局紧急管理服务参数。

控制调试的命令
==============================
/bootdebug      启用或禁用启动应用程序的启动调试。
/dbgsettings    设置全局调试程序参数。
/debug          启用或禁用操作系统项的内核
                调试。
/hypervisorsettings  设置虚拟机监控程序的参数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-10-2 12:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表