NetRoc's Blog

N-Tech

 

WinDbg 文档翻译----9

cc682/NetRoc

http://netroc682.spaces.live.com/

BCD引导选项参考

引导入口参数,又称引导参数,是可选的针对特定系统的配置选项。可以为某个操作系统的引导入口添加引导参数。

本节描述在基于x86、x64和Itanium处理器的运行Windows Vista和之后版本的Windows机器上与驱动程序开发、测试和调试相关的引导选项。可以将这些引导参数添加到Windows的引导入口中。

BCDEdit选项和元素到Boot.ini选项的映射

下表描述了Windows Vista之前使用Boot.ini的引导参数到Windows Vista和之后的系统BCDEdit选项、BCD元素之间的对应关系。关于BCD引导元素的信息,可以在MSDN中查看BCD Reference

Boot.ini

BCDEdit 选项

BCD 元素类型

/3GB

increaseuserva

BcdOSLoaderInteger_IncreaseUserVa

/BASEVIDEO

vga

BcdOSLoaderBoolean_UseVgaDriver

/BOOTLOG

bootlog

BcdOSLoaderBoolean_BootLogInitialization

/BREAK

halbreakpoint

BcdOSLoaderBoolean_DebuggerHalBreakpoint

/CRASHDEBUG

/dbgsettings /start

 

/DEBUG, BOOTDEBUG

/debug

/bootdebug

 

BcdLibraryBoolean_DebuggerEnabled

/DEBUG

/debug

BcdOSLoaderBoolean_KernelDebuggerEnabled

/DEBUG, /DEBUGPORT=

/dbgsettings

BcdLibraryInteger_DebuggerType

/DEBUGPORT=

/dbgsettings 调试类型[debugport:端口]

[baudrate:波特率]

[channel:频道]

[targetname:目标名]

[/start {Active |Autoenable |Disable} /noemux]

BcdLibraryInteger_SerialDebuggerPort

BcdLibraryInteger_SerialDebuggerBaudRate

BcdLibraryInteger_1394DebuggerChannel

BcdLibraryString_UsbDebuggerTargetName

/EXECUTE

nx

BcdOSLoaderInteger_NxPolicy

/FASTDETECT

   

/HAL=

hal

BcdOSLoaderString_HalPath

/KERNEL=

kernel

BcdOSLoaderString_KernelPath

/MAXMEM=

truncatememory

BcdLibraryInteger_TruncatePhysicalMemory

/NODEBUG

/debug

 

/NOEXECUTE

nx {

BcdOSLoaderInteger_NxPolicy

/NOGUIBOOT

quietboot

BcdOSLoaderBoolean_DisableBootDisplay

/NOLOWMEM

nolowmem

BcdOSLoaderBoolean_NoLowMemory

/NOPAE

Pae

BcdOSLoaderInteger_PAEPolicy

/ONECPU

onecpu

BcdOSLoaderBoolean_UseBootProcessorOnly

/PAE

pae

BcdOSLoaderInteger_PAEPolicy

/PCILOCK

usefirmwarepcisettings

BcdOSLoaderInteger_UseFirmwarePciSettings

/REDIRECT

/ems

/emssettings [ BIOS ] |

[ EMSPORT:{端口} | [EMSBAUDRATE: {波特率}] ]

BcdOSLoaderBoolean_EmsEnabled

/SOS

sos

 

 

BCDEdit /debug

/debug 引导选项启用或禁用当前或指定的Windows boot loader的内核调试器。

bcdedit /debug [{ID}] [ on | off ]

参数

{ID}

{ID} 是该引导入口关联的GUID。如果没有指定{ID},命令修改当前激活的系统。如果要指定引导入口,它的GUID必须用大括号{}括起来。例如,下面的命令启用GUID为49916baf-0e08-11db-9af4-000bdbd316a0的引导入口的内核调试器。

bcdedit /debug {49916baf-0e08-11db-9af4-000bdbd316a0} on

on

为指定的引导入口启用内核调试器。如果没有指定引导入口,则当前系统的内核调试器被启用。

off

为指定的引导入口禁用内核调试器。如果没有指定引导入口,则当前系统的内核调试器被禁用。

注释

/debug 引导选项为指定的引导入口启用调试。使用/dbgsettings 选项来指定调试连接的类型(debugtype)以及连接参数。如果该引导入口没有指定/dbgsettings ,则使用全局调试设置。全局调试设置的默认值在下表中列出。

Dbgsetting参数

默认值

Debugtype

串口

Debugport

1

Baudrate

115200

 

BCDEdit /dbgsettings

/dbgsettings 选项设置或显示计算机当前的全局调试设置。启用或禁用内核调试器,使用BCDEdit /debug 选项。

bcdedit /dbgsettings [ debugtype [DEBUGPORT:port] [BAUDRATE:baud] [CHANNEL:channel] [TARGETNAME:targetname] /start startpolicy /noemux ]

参数

debugtype

指定调试连接的类型。主控机和目标机之间的调试连接可以是串口、IEEE 1394(火线)或者USB 2.0。

debugtype

参数

Serial

DEBUGPORT:端口, BAUDRATE:波特率

1394

CHANNEL:频道

USB

TARGETNAME:目标名

 

当使用BCDEdit来设置调试连接参数时,必须指定debugtype 。例如,下面在全局调试设置中设定使用串口,并指定COM2为通信端口。

bcdedit /dbgsettings serial DEBUGPORT:2

DEBUGPORT:端口

指定当debugtypeSerial 的时候作为调试端口的串口。这是一个可选设置,默认端口为1(COM1)。当修改DEBUGPORT 参数时debugtype 必须设置为Serial

BAUDRATE:波特率

指定当debugtypeSerial时使用的波特率。这个参数是可选的。合法值的波特率为9600,19200,38400,57600和115200。默认是115200 bps。

CHANNEL:频道

指定当debugtype1394时使用的频道号。频道的值必须是0到62之间的10进制整数,并且必须和主控机上设置的一样。这个频道值和所使用的物理的1394端口没有关系。默认的频道是0。

TARGETNAME:目标名

debugtypeUSB时用于指定一个名字字符串。

字符串可以为任意值。

/start 启动策略

对于所有调试器类型,该选项都指定调试器的启动策略。下表显示了启动策略的各种选择项。

启动策略

描述

ACTIVE

指定内核调试器被激活。

AUTOENABLE

指定当发生异常或者其他临界条件时,调试器被自动启用。在这之前调试器都是激活但禁用的。

DISABLE

指定当输入kdbgctrl来清空启用块(enable block)时启用调试器。在此之前调试器都是激活但禁用的。

 

如果启动策略没有指定,则默认为ACTIVE 。

/noumex

指定内核调试器跳过用户模式异常。默认情况下,内核调试器会因为特定的用户模式异常而中断下来,例如STATUS_BREAKPOINT 和STATUS_SINGLE_STEP 。/noumex 只在没有用户模式调试器附加到该进程上时起作用。

注释

/dbgsettings 用于配置全局调试设置,但是并不启用调试。必须使用/debug 选项来为指定 引导入口启用调试。如果某个引导入口没有自己的调试设置,则会使用全局调试设置。要覆盖全局设置,必须使用BCDEdit /set 命令来指定引导入口ID和调试参数。

全局设置的默认值是使用COM1和串口通信,波特率为115200。

/dbgsetting参数

默认值

Debugtype

Serial

DEBUGPORT: 端口

1

BAUDRATE:波特率

115200

 

示例

下面的示例设置全局调试设置。使用串口COM2进行通信,波特率为115200。

bcdedit /dbgsettings serial debugport:2 baudrate:115200

下例中,第一条命令设置为使用USB 2.0调试,并且目标名为myVistaTarget 。第二条命令为当前系统启用调试器。

bcdedit /dbgsettings usb targetname:myVistaTarget

bcdedit /debug ON

BCDEdit /ems

/ems 选项为指定的引导入口启用或禁用紧急管理服务(EMS)。

bcdedit /ems [{ID}] {on | off }

{ID}

{ID} 是该引导入口关联的GUID。如果没有指定{ID},命令修改当前激活的系统。如果要指定引导入口,它的GUID必须用大括号{}括起来。例如,下面的命令启用GUID为49916baf-0e08-11db-9af4-000bdbd316a0的引导入口的EMS。

bcdedit /ems {49916baf-0e08-11db-9af4-000bdbd316a0} on

注释

在Windows Vista中,使用BCDEdit /emssettings 命令来为所有引导入口进行EMS设置。然后使用BCDEdit /ems 命令为单个引导入口启用EMS。

EMS允许用户远程控制服务器的特定部分,即使服务器没有连接到网络或其他标准远程管理工具。关于EMS的更多信息,在Microsoft TechNet站点上搜索Emergency Management Services。

示例

下面的命令启用ID为{49916baf-0e08-11db-9af4-000bdbd316a0}的引导入口的EMS。

bcdedit /ems {49916baf-0e08-11db-9af4-000bdbd316a0} on

BCDEdit /emssettings

/emssettings 选项为机器进行全局的紧急管理服务(EMS)设置。要启用或禁用EMS,使用/ems 选项,/emssettings 并不为引导入口启用或禁用EMS。

bcdedit /emssettings [ BIOS ] | [ EMSPORT: port | [EMSBAUDRATE: baudrate] ]

参数

BIOS

指定系统将使用BIOS中的EMS配置。只在BIOS支持EMS的系统上有效。

EMSPORT: 端口

指定EMS通信使用的串口。该参数不能和BIOS选项一起使用。

EMSBAUDRATE: 波特率

指定EMS使用的串口波特率。该参数不能和BIOS一起使用。波特率是可选的,默认值为9600 bps。

注释

要在Windows安装之后启用EMS控制台重定向,Windows需要知道OOB通信(out-of-band communication)使用的端口和传输速率。Windows为EMS控制台重定向使用同样设置。

在具有BIOS固件和ACPI串口控制台重定向(SPCR)表的机器中,Windows可以通过读取SPCR中的入口来在BIOS中获得OOB(out-of-band)设置。在这些机器中,可以使用BIOS 参数来指定Windows直接在SPCR表中读取端口设置,或者使用emsport:端口emsbaudrate:波特率参数来覆盖SPCR表中的设置。

在具有BIOS固件但是没有SPCR表的机器上,使用BCDEdit和/emssettings 命令、emsport:端口emsbaudrate:波特率子参数来指定端口和传输速度。

在所有系统上,都可以使用BCDEdit /ems 命令来为引导入口加载的系统启用EMS控制台重定向。

本节中描述的内容用于在Windows安装之后启用EMS控制台重定向。关于在Windows安装和升级过程中启用EMS的信息,可以在 Microsoft TechNet站点上搜索"Enabling Emergency Management Services。

获取示例,查看用于启用EMS重定向的引导参数

BCDEdit /set

/set 命令在引导配置数据存储中设置引导入口的选项值。使用该命令来配置指定引导入口的元素,例如内核调试设置、数据执行保护(DEP)和物理地址扩展(PAE),或者指定加载某个硬件抽象层(HAL)和内核文件。

bcdedit  /set [{ID}] datatype value

参数

[{ID}

{ID} 是该引导入口关联的GUID。如果没有指定{ID},命令修改当前激活的系统。如果要指定引导入口,它的GUID必须用大括号{}括起来。要查看所有激活的引导入口的GUID值,使用bcdedit /enum 命令。

datatype value

bootlog [ yes | no]

启用系统初始化日志。

hal 文件

设置系统加载指定的HAL文件。该文件必须放在%SystemRoot%\system32 目录下,并且文件名要符合8.3字符格式。

increaseuserva Megabytes

为用户模式虚拟地址空间指定以MB为单位的内存总数。这个变量可以是2048(2GB)到3072 (3 GB)MB之间的任何10进制值。Windows为内核使用剩下的地址空间(4GB减去指定的值)。

kernel 文件

设置系统加载指定的内核文件。该文件必须放在%SystemRoot%\system32 目录下,并且文件名要符合8.3字符格式。

nolowmem [ on | off ]

控制低内存的使用。当设置了nolowmem on 时,操作系统、设备驱动和所有应用程序都加载到4GB边界的内存空间以上,并且指定Windows在4GB边界以上分配所有内存池。

nx [Optin |OptOut | AlwaysOn |AlwaysOff]

启用、禁用和配置数据执行保护(DEP),既一组用于防止恶意代码在被保护内存上执行的硬件和软件技术。关于使用控制面板来修改DEP设置的信息,查看Windows帮助和操作方法站点上的更改数据执行保护设置(Change Data Execution Prevention settings) 页面。

Optin

只为包括Windows内核和驱动程序在内的系统组件启用DEP。管理员可以使用应用程序兼容性工具(Application Compatibility Toolkit (ACT))在选定的可执行文件上启用DEP。

Optout

为包括Windows 内核和驱动程序在内的所有进程启用DEP。但是,管理员可以在控制面板里面的系统中为选定的可执行文件禁用DEP。

AlwaysOn

为包括Windows 内核和驱动程序在内的所有进程启用DEP。禁止所有试图禁用DEP的尝试。

AlwaysOff

禁用DEP。所有试图启用DEP的操作都被跳过。

在Windows Vista中,这个参数同时禁用物理地址扩展(PAE)。在Windows Server 2008中该参数不禁用PAE。

onecpu [ on | off ]

在多于一个逻辑处理器的机器上,强制只使用引导的CPU。

例如,下面的命令设置只使用一个处理器。

bcdedit /set onecpu on

pae [ Default | ForceEnable | ForceDisable ]

pae 参数只在基于x86和x64处理器的运行32位Windows的机器中有效。在32位Windows中,PAE默认是禁用的。但是,在x86处理器的系统上,当机器在Static Resource Affinity Table (SRAT)表中为热添加内存设备(hot-add memory devices)配置超过4GB范围的内存时,自动启用PAE。热添加内存设备(Hot-add memory supports memory devices )可以在不关闭机器电源的情况下添加到系统中。这种情况下,由于PAE必须在系统启动时启用,所以系统在重起之前即可食用扩展的内存。热添加内存仅在Windows Server 2008企业版、Windows Server 2003 企业版和Windows Server 2003Datacenter版中支持,并且必须由ACPI BIOS、x86处理器和其他特殊设备支持。

在所有支持硬件数据执行保护(DEP)的运行支持DEP的32位Windows的机器上,当DEP被打开时PAE也自动启用;在除了Windows Server 2003 SP1之外的32位Windows 系统中,禁用DEP时同时也禁用PAE。要在DEP禁用的情况下启用PAE,必须使用/set nx AlwaysOff/set pae ForceEnable命令明确启用PAE 。关于DEP的更多信息,查看用于配置DEP和PAE的引导参数

在x86处理器的机器上使用高速缓存连贯的非均匀内存架构(称为ccNUMA或NUMA)必须要PAE的支持,尽管Windows可以在支持NUMA的机器上没有PAE运行于非NUMA模式下。即使需要,PAE也不是自动启用的。NUMA在Windows XP所有版本和Windows Vista、Windows Server 2003的Enterprise 和Datacenter版本上支持。

pae 参数和其他作用于PAE配置的参数的信息,查看用于配置DEP和PAE的引导参数

如果在安装了4GB内存的计算机上运行32位Windows Vista,能够使用的内存总数可能比预期的要少。更多关于内存使用的信息,可以在Microsoft知识库中查看Q929605号文章"The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4 GB of RAM is installed"

quietboot [ on | off ]

控制在Windows引导时的屏幕中控制引导过程中的所有位图显示。在Windows Vista之前的系统中,/noguiboot 参数有相似的作用。

removememory Megabytes

在操作系统可使用的总内存减少一部分。

例如,下面的命令将指定引导入口加载的系统的可用内存减少256M。

bcdedit /set {49916baf-0e08-11db-9af4-000bdbd316a0} removememory 256

sos [ on | off ]

控制在引导过程中对加载的驱动程序名字的显示。使用sos on 显示名字,sos off 禁止显示。

truncatememory 地址

限制Windows使用的物理内存总数。使用这个选项时,Windows忽略大于指定的物理地址的所有内存。以字节为单位指定地址。

例如,下面的命令限制物理地址在1GB。可以用十进制(1073741824)或16进制(0x40000000)来指定。

bcdedit /set {49916baf-0e08-11db-9af4-000bdbd316a0} truncatememory Ox40000000

usefirmwarepcisettings [ yes | no ]

启用或者禁用BIOS中设置的周边元件扩展接口(PCI)资源。

vga [ on | off ]

强制使用VGA显示驱动。

注释

关于特定BCD元素和引导选项的信息,可以使用BCDEdit /? OSLOADERBCDEdit /? TYPES OSLOADER命令查看。

查看当前引导入口和它的设置,使用bcdedit /enum 命令。该命令显示当前激活的引导入口和它的全局唯一标识符(GUID)。在/set 命令中用这个标识符来配置特定引导入口的选项。

关于BCDEdit的一般使用的命令,查看Boot Configuration Data Editor Frequently Asked Questions

posted on 2008-04-02 15:21 NetRoc 阅读(1485) 评论(0)  编辑 收藏 引用 所属分类: WinDbg文档翻译

只有注册用户登录后才能发表评论。

导航

统计

常用链接

留言簿(7)

随笔档案(99)

文章分类(35)

文章档案(32)

Friends

Mirror

搜索

最新评论

阅读排行榜

评论排行榜