NetRoc's Blog

N-Tech

 

WinDbg 文档翻译----8

cc682/NetRoc

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

Boot.ini引导参数参考

引导入口参数又称引导参数,是可选的特定系统的包含配置选项的开关。可以为系统的某个引导入口添加引导参数。

本节描述基于x86、x64及Itanium处理器的,运行Windows Server 2003或更早版本基于NT内核的Windows系统和驱动开发、测试、调试相关的引导参数。

注释

除非特别说明,本参考里面的引导参数适用于所有运行Windows Server 2003、Windows XP和Windows 2000的机器。这些参数不适用于Windows Vista及之后的Windows。

本文描述的是和驱动开发、测试人员相关的引导参数。通常使用的引导参数列表,可以在 Microsoft Windows XP Professional 资源包文档中查看"在基于x86系统中检查和改正Boot.ini的引导参数"和"在基于Itanium的系统中检查和改正NVRAM中的启动设置"。

/3GB

在32位版本Windows 上,/3GB参数启用4GT内存调整,既一个将用户模式虚拟地址空间扩展到3GB并将内核的地址空间控制到1GB的特性。

/3GB [ /userva=SizeInMB ] 

子参数

/userva

为以/3GB参数引导的操作系统指定用户模式虚拟地址空间的候选值。

SizeInMB

指定用户模式虚拟地址空间以MB为单位的大小数值。这个值可以是2048(2GB)和3072(3GB)中的一个十进制值。Windows使用剩下的地址空间(4GB减去指定值)作为内核地址空间。

注释

Windows Server 2003、Windows XP、Windows 2000支持/3GB参数。在Windows Vista及之后的Windows中,使用BCDEdit的IncreaseUserVA 元素(element,查看WMI的BCDEdit说明)。

Windows中默认情况下低2GB空间为用户模式程序保留,而高2GB内存地址空间为内核模式程序保留。可以用这个参数来测试驱动程序在1GB内核空间中的运行情况。

4GT内存调整(4 GT RAM Tuning)被以下系统完全支持:Microsoft Windows NT Server 4.0企业版并包含Service Pack 3;Microsoft Windows 2000 Advanced Server;Microsoft Windows 2000 Datacenter Server;以及所有版本的Windows XP、Windows Server 2003、Windows Vista和之后版本的Windows。

在其他版本Windows NT和Windows 2000中,系统限定了内核使用3GB分界线以上的空间。所以用户模式应用程序最多访问2GB地址空间。

/userva 子参数是为需要介于2GB和3GB用户模式地址空间,特别是运行内存密集型用户模式程序的计算机设计。当不使用 /3GB 参数时,/userva 被跳过。

/3GB/userva参数只在基于x86或x64处理器上运行的32位Windows系统的引导入口中有效。

用户模式应用程序要获得使用3GB开关的好处,必须用/LARGEADDRESSAWARE 选项链接。

在64位版本Windows Server 2003上,系统不需要/3GB引导参数就自动为以/LARGEADDRESSAWARE 选项链接的应用程序扩展地址空间。在Windows Server 2003 RTM(没有Service Pack 1)上,32位程序最多访问3GB内存地址空间。在包含Service Pack1的Windows 2003上,他们可以访问4GB虚拟内存空间。原生的64位用户模式程序可以访问最高8TB的虚拟地址空间。

使用/3GB参数减少系统中内核可使用的地址空间总数 。为了在剩下的1GB虚拟内存中协调所有内核资源,Vista之前的基于NT内核的系统限定物理内存只能在16GB以下,而Windows Vista限定可以在64GB以下。Windows Vista中内存资源的分配是动态的,所以更加灵活和有效,因此系统可以提供更多内存用于地址映射来供应更多物理内存。

下面的表格列出了支持适用4GB以上物理内存的32位Windows系统在使用和不使用/3GB引导参数的情况下的物理内存限制。

操作系统

没有使用/3GB时的物理内存限制

使用/3GB时的物理内存限制

Windows Vista

4GB

4GB(无效)

Windows Vista, Datacenter Edition

128GB

64GB

Windows Server 2003, Enterprise Edition

32GB

16GB

Windows Server 2003, Enterprise Edition SP1

64GB

16GB

Windows Server 2003, Datacenter Edition

128GB

16GB

Windows Server 2003, Datacenter Edition SP1

128GB

16GB

Windows XP (all editions)

4GB

4GB(无效)

 

在Windows XP上,有一些驱动,特别是某些具有板载RAM的显示适配器驱动,不能在/3GB参数下运行,因为他们需要多于1GB的内核地址空间支持。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB /userva=3030

Bootcfg命令

bootcfg /raw "/3GB" /A /ID 1
bootcfg /raw "/3GB /userva=3030" /A /ID 2

/basevideo

/basevideo 参数指定Windows使用VGA显示模式。

/basevideo 

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /basevideo

Bootcfg 命令

bootcfg /addsw BV /ID 1

注释

/basevideo 参数只在Windows Server 2003、Windows XP和Windows 2000上支持。在Windows Vista上,通过BCDEdit设置vga参数。查看BCDEdit /set

/bootlog

/bootlog 参数用于记录在引导过程中加载的驱动程序名字,并且将排序的列表保存在%SystemRoot%\ntbtlog.txt 文件中。

/bootlog 

注释

/bootlog参数只在Windows Server 2003、Windows XP和Windows 2000上支持。在Windows Vista及之后的Windows中,使用BCDEdit的LogInitialization 元素。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /bootlog

Bootcfg 命令

bootcfg /raw "/bootlog" /A /ID 1

/break

/break 对HAL的初始化设置一个断点。

/break 

注释

/bootlog参数只在Windows Server 2003、Windows XP和Windows 2000上支持。在Windows Vista及之后的Windows中,使用BCDEdit的 HALBreakPoint元素。

/break参数和/debug参数一起使用时,HAL将在断点处等待,直到调试器连接上来。

/break没有和/debug参数一起适用时,Windows产生Bug Check 0x78: PHASE0_EXCEPTION,并且在遇到这个断点的时候蓝屏。

该参数主要用于HAL的开发和调试。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /break

Bootcfg 命令

bootcfg /raw "/break" /A /ID 1

/burnmemory

/burnmemory 参数将Windows能使用的内存总数控制在指定值。

/burnmemory=SizeInMB 

子参数

SizeInMB

指定内存总数(MB为单位)。输入一个十进制整数。总内存数量减去这个值之后的内存才会分配给系统使用。

注释

/burnmemory参数只在Windows Server 2003、Windows XP和Windows 2000上支持。在Windows Vista及之后的Windows中,使用BCDEdit的 removememory 参数。

该参数和/maxmem 类似,都指定了Windows可以使用的内存总数。但是,因为/maxmem 实际上是设置Windows可以使用的内存地址上限,而系统内存的分配可能会有一些空隙,所以/burnmemory 参数比/maxmem 要更加精确。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /burnmemory=256

Bootcfg命令

bootcfg /raw "/burnmemory=256" /A /ID 1

/crashdebug

/crashdebug 建立内核调试器连接,但是直到bug check发生之前都不会启用调试。在这之前,保留给调试用的端口可以用作其它用途。

这个选项是为Windows 2000和Windows XP设计的。在Windows Server 2003中,使用/debug=disable 参数。更多信息可以查/debug

/crashdebug [/debugport=COMx] [/baudrate=BaudRate

子参数

/debugport

指定内核调试器在启动调试时使用的串口。

COMx

指定一个通信端口。合法的COMx是任何可用的COM端口,例如COM1或者COM2。默认使用排位最高的端口。

/baudrate

指定内核调试连接的速度。

BaudRate

指定内核连接以每秒bit数(BPS)为单位的速度。合法的BaudRate 有9600,19200, 38400,57600和 115200。默认值是19200。

注释

这个参数对于调试随机的内核错误是非常有用的。

如果引导入口同时包含/debug/crashdebug/debug参数被跳过。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /crashdebug

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /crashdebug /debugport=COM1 /baudrate=57600

Bootcfg命令

bootcfg /raw "/crashdebug" /A /ID 1
bootcfg /raw "crashdebug /debugport=COM1 /baudrate=57600" /A /ID=2

/debug

/debug参数启用内核调试连接。

以下语法只适用于Microsoft Windows 2000 和 Windows XP。

/debug

/debug /debugport=COM/baudrate=BaudRate ] 

/debug /debugport=1394 [/channel=Channel 

/debug /debugport=usb /targetname=String

以下语法只适用于Microsoft Windows Server 2003。

/debug

/debug[={autoenable | disable | noumex},...] /debugport=COM/baudrate=BaudRate ]

/debug[={autoenable | disable | noumex},...] /debugport=1394 [/channel=Channel ]

/debug[={autoenable | disable | noumex},...] /debugport=usb /targetname=String

子参数

/debugport

指定内核调试器使用的串口。

COM一起x/debugport启用使用调试电缆(null modem)的调试。

1394一起, /debugport 启用使用IEEE 1394电缆的调试。

usb一起, /debugport 启用使用USB 2.0调试电缆的调试。

COMx

指定使用null modem 电缆的内核调试使用的通信端口。合法的值是任何可用的COM端口,例如COM1或者COM2。

/baudrate

当使用/debugport=COMx 参数时,用于指定内核调试连接的速度。

BaudRate

指定内核调试器连接的速度,以BPS为单位。合法的BaudRate 有9600,19200, 38400,57600和 115200。默认值是19200。

1394

指定使用IEEE 1394(火线)电缆进行调试。这个特性只在目标机和主控机都使用Windows XP或更迟版本Windows 的情况下有效。

注意  通过1394电缆进行内核调试之前,还需要在主控机和目标机上进行额外的软件配置。查看禁用1394控制器安装1394虚拟驱动获取详细信息。

/channel

指定使用IEEE 1394电缆调试时使用的1394总线频道。默认值是0。

Channel

指定1394频道。默认值为0。Channel 的值必须是0到62之间的一个十进制整数,并且,必须和主控机使用的频道号相同。参数中指定的频道号和选择的物理1394适配器端口无关。

usb

指定使用USB 2.0调试电缆进行调试。这个特性只有当主控机运行Windows 2000或之后的系统,并且目标机运行Windows Vista或之后的系统地情况下可用。

注意  通过USB 2.0电缆进行内核调试之前,还需要其它设置。查看设置USB 2.0 调试电缆连接 获取更详细的信息。

/targetname

指定一个字符串用于标识USB 2.0连接。这个字符串可以是任意值。

String

指定一个字符串用于标识USB 2.0连接。这个字符串可以是任意值。

autoenable

指定内核调试器在出现异常或其它紧急事件时自动启用。在这之前,调试器都是激活但是禁用的。

disable

指定内核调试器当使用kdbgctrl 清空使能块(enable block)的时候启用。在此之前,调试器都是激活但是禁用的。

/debug=disable 参数被设计成为/crashdebug的首选替代。关于KDbgCtrl 的更多信息,查看Windows调试工具文档

noumex

指定内核调试器不会因为用户模式异常而中断下来。默认的,内核调试器会因为特定的用户模式异常中断,例如STATUS_BREAKPOINT 和STATUS_SINGLE_STEP 。/debug=noumex 参数只在当没有用户模式调试器附加到进程的时候起效。

注释

/debug 参数只在Windows Server 2003,Windows XP,和Windows 2000下支持。在Windows Vista和之后版本Windows中,使用BCDEdit和/dgbsettings 参数及它的子参数来为所有引导入口进行调试器设置。然后,使用/debug 选项来为特定引导入口启用调试。

启用本地(单机)调试,只使用/debug 参数。

启用调试电缆(null-modem)调试,使用/debug/debugport=COMx/baudrate 子参数。

启用IEEE 1394(火线)电缆调试,使用 /debug/debugport=1394/channel 子参数。

由于/debugport 会使得指定的端口被保留下来,所以如果不进行调试的话就不要使用它。

使用串口进行内核调试,Windows会将该串口从系统设备列表中去除。结果是,拥有ACPI BIOS的机器上,该端口不会在任何设备列表中出现,例如设备管理器。在没有ACPI BIOS的机器上,会出现一条错误信息,如"没有足够资源使用该端口。"("Not enough resources to use this port.")。这些消息表明端口被主控机控制,并不是说明出现了故障。

要测试电缆连接,应该在连接电缆之后,启用调试之前。

如果某个调试入口配置为启用调试,在引导菜单显示的友好名后面会添加上粗体的[启用调试]( [debugger enabled])。但是如果他们加起来超过70个字符的话,boot loader省略掉这些粗体字。要它显示出来,需要缩短友好名。

在Windows Server 2003上,可以使用autoenabledisablenoumex 子参数来只在需要的时候才启用调试器。可以一次使用多于一个的子参数,这时需要用逗号分割每个子参数。(一次不要使用多于一个的/debug,如果这样,Windows使用第一个并且跳过其它的。)

例如,/debug=autoenable,noumex在异常或紧急事件时启用调试器,但跳过用户模式的事件。

关于/debug 参数和它更多变化的细节,查看启用调试的引导参数

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /debug

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /debug /debugport=COM1 /baudrate=115200

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /debug /debugport=1394 /channel=44

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows Server 2003, Standard" /noexecute=optout /fastdetect /debug=autoenable /debugport=1394 /channel=44

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows Server 2003, Standard" /noexecute=optout /fastdetect /debug=disable,noumex /debugport=COM1 /baudrate=115200

Bootcfg命令

bootcfg /debug ON /ID 1
bootcfg /debug ON /port=COMx [/baud=115200] /ID 2
bootcfg /dbg1394 ON /channel=44 /ID 3

/execute

/execute 参数禁用数据执行保护(DEP)和物理地址扩展(PAE)。

注意  DEP是很有效的安全特性。如果不是必须,不要禁用DEP。

注意  /execute 参数在Windows Server 2003 SP1中支持用来禁用DEP和PAE。要在Windows XP Service Pack 2和Windows Vista中禁用,使用/noexecute=alwaysoff 。更多信息,查看/noexecute

更多关于使用/execute 参数和其他参数来设置DEP的信息,查看用于配置DEP和PAE的引导参数

/execute

注释

什么是DEP?

DEP由硬件和软件方法组成。只作用于用户模式进程的软件DEP必须由操作系统支持。硬件DEP在页表入口设置了一位用于避免只应该包含数据的虚拟内存页面被当作代码执行。硬件DEP必须由操作系统和处理器一起提供支持。如果操作系统支持DEP,但是处理器不支持,只有软件DEP会被启用。

操作系统支持

在Windows Server 2003 SP1,Windows XP SP2,Windows Vista和之后版本的Windows 都支持DEP。/execute 选项只在Windows Server 2003 SP1和Windows XP SP2支持。在Windows Vista和之后的Windows中,需要使用ECDEdit的NX元素。

32位和64位支持

/execute 参数只在32位进程上起效。在64位进程中,DEP默认启用,并且不能被禁用。在这些进程上,/execute 参数被忽略。在64位系统中,/execute 参数只对系统中运行的32位进程起效。

启用和配置DEP

在Windows Server 2003 SP1和Windows XP SP2上启用、禁用和配置DEP,使用/noexecute 引导选项。

DEP 和PAE

在32位系统上,硬件DEP要求PAE支持。因此当支持硬件DEP的机器上启用DEP时,32位版本的Windows自动启用PAE。 (查看 /pae)。

/execute参数同时禁用DEP和PAE。

在Windows XP,Windows Vista和更迟版本Windows上,禁用DEP同时也会禁用PAE。在Windows XP上,/execute 参数和/noexecute=alwaysoffnoexecute=alwaysoff /nopae 具有相同作用;他们都禁用DEP 和 PAE。

但是,在Windows Server 2003 SP1上,/noexecute=alwaysoff 禁用掉DEP,但不会禁用PAE,并且系统跳过/nopae。在Windows Server 2003上同时禁用DEP和PAE,必须使用/execute

/fastdetect

/fastdetect 参数禁用NTDETECT 在指定端口的串口和并口设备检测。如果没有指定端口,该参数将关闭所有串、并行端口上的检测功能。

/fastdetect[=COMx | =COMx,y,z...] 

子参数

COMx, y, z

/fastdetect 参数限制在指定端口上。X,yz是指定的一个或多个端口。

注释

由于/fastdetect 允许即插即用(PnP)在端口上检测设备,并且避免检测不支持设备,所以一般会使得引导更加快速可靠。

安装程序会自动为Windows Server 2003、Windows XP和Windows 2000设置/fastdetect 参数(未指定端口)。

当使用只需要BIOS知道(Windows未知)的设备时,省略掉/fastdetect 。例如,可以省略掉/fastdetect 来测试需要对PnP隐藏的端口。

该参数只在Windows Server 2003、Windows XP和Windows 2000上支持,在Windows NT 4.0上,该参数被命名名为/noserialmice

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect=COM2

Bootcfg命令

bootcfg /raw "/fastdetect" /A /ID 1
bootcfg /raw "/fastdetect=COM2" /A /ID 2

/hal

/hal 参数指定boot loader为操作系统加载指定的硬件抽象层(HAL)文件。默认的HAL文件是hal.dll。

/hal=HALFile 

子参数

HALFile

指定一个HAL文件。这个文件必须在%SystemRoot%\system32目录下,并且文件名必须符合8.3字符格式。

注释

/hal 选项只在Windows Server 2003 SP1和Windows XP SP2上支持。在Windows Vista和之后的Windows上,使用BCDEdit的HAL 元素。

可以使用这个参数来测试HAL补丁,或者和/kernel 参数配合加载一个局部调试版(partial checked build)系统。

如果不是安装了不同的HAL,不要使用这个参数。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /hal=HALtest.dll

Bootcfg命令

bootcfg /raw "/hal=HALtest.dll" /A /ID 1

/kernel

/kernel 参数指定boot loader为系统加载一个另外的内核文件。

/kernel=KernelFile 

子参数

KernelFile

指定一个内核文件。这个文件必须在%SystemRoot%\system32目录下,并且文件名必须符合8.3字符格式。

注释

/execute选项只在Windows Server 2003 SP1和Windows XP SP2上支持。在Windows Vista和之后的Windows上,使用BCDEdit的Kernel元素。

少于4GB内存的机器上,默认内核文件是ntoskrnl.exe ,在等于或高于4GB内存机器上,默认内核文件是ntkrnlpa.exe 。

如果不是安装了另外的内核,不要使用本参数。可以用它来测试内核补丁,或者和/hal参数配合加载一个局部调试版(partial checked build)系统。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /hal=KRNLtest.dll

Bootcfg命令

bootcfg /raw "/kernel=KRNLtest.dll" /A /ID 1

/maxmem

/maxmem 限制可供Windows使用的物理内存。

/maxmem=SizeInMB 

子参数

SizeInMB

指定可供Windows使用的物理内存总数。输入一个MB为单位的10进制内存限制值。

注释

该参数实际限制Windows使用 的内存地址小于或者等于指定值。由于该内存空间中的一些内存可能被保留为非系统使用,Windows 实际能使用的内存可能小于指定的大小。

/maxmem 参数在Windows Server 2003、Windows XP和Windows 2000上支持。在Windows Server 2003和Windows XP中,使用/burnmemory来更精确地限制系统内存。在Windows Vista和之后的 Windows中,可以使用BCDEdit /set 命令的removememorytruncatememory 参数。

该参数可以用来测试驱动程序在低内存条件下的情况。例如,可以将一台1GB内存的机器限制为只能使用256M内存。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /maxmem=256

Bootcfg 命令

bootcfg /addsw /MM 256 /ID 1

/nodebug

/nodebug参数禁用内核调试。

/nodebug 

注释

/nodebug 只在Windows Server 2003 SP1和Windows XP SP2上支持。在Windows Vista和之后版本Windows,在BCDEdit中使用/debug 命令及OFF 值(bcdedit /debug [ID] OFF)。

如果包含/nodebug/debug参数和它的 /debugport/baudrate,和 /targetname都被跳过。 如果包含了/crashdebug参数,则/nodebug 被跳过。

可以使用该参数来在不删除引导选项中的调试设置的情况下禁用调试。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /nodebug

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /debug /debugport=1394 /channel=52 /nodebug

Bootcfg 命令

bootcfg /raw "/nodebug" /A /ID 1n

/noguiboot

/noguiboot 禁止引导过程中的所有位图显示,包括启动画面、登陆提示之前的进度条和bug check屏幕的蓝色背景。

/noguiboot 

注释

该引导参数在Windows Server 2003、Windows XP和Windows 2000中支持。

/noguiboot 选项只在Windows Server 2003 SP1和Windows XP SP2中支持。(根据原文直接翻过来的,有误?)

在Windows Vista中,使用BCDEdit的quietboot 选项。quietboot 使得显示一个高解析度的位图来代替Windows引导屏幕和动画。

使用/noguiboot 时,系统不初始化bootvid.dll ,该组件用于在显示驱动加载之前提供基本的图形支持。由于bootvid.dll 未工作,所以在引导过程中不能显示位图。

可以使用该参数来调查显示设备的问题。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /noguiboot

Bootcfg 命令

bootcfg /addsw /NG /ID 1

/noexecute

/noexecute 参数启用、禁用和设置数据执行保护(DEP)——即一组用于防止有害代码在被保护内存空间中被执行的硬件和软件技术。

关于使用/noexecute 参数和其他和DEP设置有关的参数的信息,查看用于配置DEP和PAE的引导参数

注意  DEP能够很大的提高安全性,如果没有特别原因不要禁用DEP。

/noexecute={alwayson | optout | optin | alwaysoff}

子参数

alwayson

为系统和所有进程启用DEP,包括Windows 内核和驱动程序。所有试图禁用DEP的操作都会被跳过。

optout

为系统和所有进程启用DEP,包括Windows 内核和驱动程序。但是管理员可以在控制面板的系统(System)中选择禁用指定程序的DEP。

optin

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

alwaysoff

禁用DEP。Disables DEP. Attempts to enable DEP selectively are ignored.

在Windows XP SP2上,该子参数同时禁用物理地址扩展(PAE)。但是在Windows Server 2003 SP1上不会禁用PAE。

注释

什么是 DEP?

数据执行保护由硬件和软件方法结合。软件DEP必须由操作系统支持,而硬件DEP在应该只包含数据的页表入口中设置了一位来避免被当作代码执行。硬件DEP必须由处理器和操作系统配合支持。如果操作系统支持DEP,但是处理器不支持,则只有软件DEP会被启用。

操作系统支持

DEP在Windows Server 2003 SP1、Windows XP SP2、Windows Vista和之后的Windows中都被支持。

/noexecute 参数只在Windows Server 2003 SP1、Windows XP SP2中支持,在Windows Vista中,使用BCDEdit的NX元素。

32位和64位支持

/noexecute 只在32位进程上起作用。它启用软件DEP,并且如果硬件支持的话,也启用硬件DEP。

在64位进程中,DEP默认启用并且不能被禁用掉(和/noexecute=alwayson效果一样)。在这些进程上,/noexecute 参数被跳过。在64位操作系统上,/noexecute 只作用于32位进程。

默认值

Windows SP2上,安装程序在引导入口中添加/noexecute=optin

在Windows 2003 SP1上,安装程序在引导入口添加/noexecute=optout

无论如何,在所有支持DEP的操作系统上,如果没有在引导入口指定/noexecute ,则系统默认使用/noexecute=optin 的特性。、

DEP 和 PAE

在32位系统中,硬件DEP需要物理地址扩展(PAE)的支持。因此,当支持硬件DEP的机器启用DEP是,32位Windows 自动启用PAE并跳过/nopae

在Windows XP SP2上,使用/noexecute=alwaysoff禁用DEP时,Windows同时禁用DEP和PAE。如同使用了/noexecute=alwaysoff /nopae 。要在支持硬件DEP的系统上禁用DEP并启用PAE,使用/noexecute=alwaysoff /pae来明确启用PAE。

但是,在Windows Server 2003 SP1上,使用/noexecute=alwaysoff 来禁用DEP时,Windows 只禁用DEP。PAE仍然启用并且系统跳过禁用PAE的外在的尝试,例如/nopae参数。要在Windows Server 2003 SP1上同时禁用DEP和PAE,使用/execute

获取关于这些参数和他们作用的表格,查看用于配置DEP和PAE的引导参数

在控制面板中设置DEP

要设置/noexecute=optin/noexecute=optout 特性,或者在某些可执行文件禁用DEP,可以打开控制面板,双击系统(System),点击性能(Performance)下的高级(Advanced)选项卡,点击设置(Performance)并点击数据执行保护(Data Execution Prevention)悬线卡。要使设置起效,必须重起计算机。

关于DEP的更多信息,查看Windows XP Service Pack2的功能改变,第三部分:内存保护技术

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /noexecute=alwayson

Bootcfg 命令

bootcfg /raw "/noexecute=alwayson" /A /ID 1

/nolowmem

/nolowmem 参数指定将操作系统、驱动程序和所有应用程序加载于4GB地址边界以上,并且制定Windows 在4GB地址之上分配所有内存池。

/nolowmem 

注释

该参数只在x86或x64处理器上运行的32位系统,并且物理地址扩展(PAE)启用时有效。

本参数只在Windows Server 2003、Windows XP和Windows 2000上支持。

在Windows Server 2003 SP1之前的系统,如果/nolowmem/3GB 同时使用,则/nolowmem 跳过。Windows Server 2003 SP1之后的系统它们可以同时使用。

在Windows Vista和之后的Windows,使用BCDEdit的NoLowMem 元素。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /nolowmem

Bootcfg 命令

bootcfg /raw "\nolowmem" /A /ID 1

参见

/pae

/nopae

/nopae 禁用物理地址扩展,并且强制boot loader加载非PAE版本的Windows 内核。

关于/nopae 和其他PAE配置的其他参数的信息,查看用于配置DEP和PAE的引导参数

/nopae 

注释

该参数仅在基于x86和x64处理器的32位Windows引导入口中有效。

/nopae 选项只在Windows Server 2003 SP1和Windows XP SP2支持。在Windows Vista和之后的Windows中,使用BCDEdit的PAE元素和ForceDisable值。

当启用PAE的时候有设备不能正常运行时,考虑使用本参数。

一般来说不需要该参数,因为如果没有使用/pae 参数的话PAE不会启用。但是,在x86处理器的系统上,当机器在Static Resource Affinity Table (SRAT)表中为热添加内存设备(hot-add memory devices)配置超过4GB范围的内存时,自动启用PAE。热添加内存设备(Hot-add memory supports memory devices )可以在不关闭机器电源的情况下添加到系统中。这种情况下,由于PAE必须在系统启动时启用,所以系统在重起之前即可食用扩展的内存。(在这些系统上禁用PAE就禁用了热添加内存)。热添加内存仅在Windows Server 2003 企业版和Windows Server 2003Datacenter版以及以后的Windows的企业版和Datacenter版中支持,并且必须由ACPI BIOS、x86处理器和其他特殊设备支持。

在支持硬件数据执行保护(DEP)的,运行支持DEP的32位Windows上,当DEP启用时,即使设置了/nopae ,PAE也会自动被启用。在除了Windows Server 2003 SP1之外的所有支持DEP的32位Windows系统上,禁用DEP时,也自动禁用PAE。但是可以使用/pae 来打开它。关于DEP的更多信息,查看/noexecute

PAE在Windows 2000和之后的Windows中支持。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /nopae

Bootcfg 命令

bootcfg /raw "/nopae" /A /ID 1

参见

/pae

/pae

/pae 参数启用物理地址扩展(PAE)。该参数指定系统加载PAE版本的Windows 内核。

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

/pae 

注释

/pae 只在Windows Server 2003、Windows XP和Windows 2000中支持。在Windows Vista和之后的Windows中,使用BCDEdit /set 命令和PAE元素。

PAE是一种在32位地址空间的系统中使用一个页面翻译层来寻址超过4GB物理内存的寻址策略。PAE也支持一些高级的系统和处理器特性,如数据执行保护(DEP;"No execute")、非均匀内存架构(NUMA)、和热添加内存,所以PAE也用在少于4GB内存的机器上。 PAE必须由处理器和操作系统共同支持。

从Windows 2000开始的操作系统提供对PAE的支持。

操作系统

PAE支持的最大内存

Windows 2000 Advanced Server

8GB物理内存

Windows 2000 Datacenter Server

32GB物理内存

Windows XP (所有版本)

4GB物理内存*

Windows Server 2003 (和 SP1), Standard Edition

4GB物理内存*

Windows Server 2003, Enterprise Edition

32GB物理内存

Windows Server 2003, Datacenter Edition

64GB物理内存

Windows Server 2003 SP1, Enterprise Edition

64GB物理内存

Windows Server 2003 SP1, Datacenter Edition

64GB物理内存

* 在这些版本的Windows中,总物理内存寻址空间被限制在4GB。当PAE启用并且安装了4GB内存时,可用的内存总数可能比期望的要少。关于内存使用的更多信息,查看知识库文章Q88813, "The amount of RAM reported by the System Properties dialog box and the System Information tool is less than you expect after you install Windows XP Service Pack 2"

pae 参数只在基于x86和x64的32位Windows的引导入口上有效。在32位Windows上,PAE默认禁用,必须使用/pae 来启用它。

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

在支持硬件数据执行保护(DEP)的,运行支持DEP的32位Windows上,当DEP启用时,即使设置了/nopae ,PAE也会自动被启用。在除了Windows Server 2003 SP1之外的所有支持DEP的32位Windows系统上,禁用DEP时,也自动禁用PAE。要在这时启用DEP,必须使用/noexecute=alwaysoff /pae。关于DEP的更多信息,查看/noexecute/execute

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

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /pae

Bootcfg 命令

bootcfg /raw "\pae" /A /ID 1

/pcilock

/pcilock 参数防止HAL在PCI总线上重新指派I/O和IRQ资源。BIOS设置的I/O和内存资源被保留。

/pcilock 

注释

该参数只在基于x86和x64处理器的32位Windows上有效。

/pcilock 被Windows Server 2003、Windows XP和Windows 2000支持。在Windows Vista和之后的Windows中使用BCDEdit的UseFirmwarePCISettings 元素。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /fastdetect /pcilock

Bootcfg 命令

bootcfg /raw "/pcilock" /A /ID 1

/redirect

/redirect 在Windows服务器上启用紧急管理服务控制台重定向。

具有ACPI BIOS和SPCR表的计算机

在下面的[boot loader] 节中:

redirect=COMx 
[redirectbaudrate=BaudRate]

- OR -

redirect=USEBIOSSETTINGS

   

在 [operating systems]节中:

/redirect 

   

具有BIOS固件但是没有SPCR表的计算机

[boot loader] 节中:

redirect=COMx
[redirectbaudrate=BaudRate]

   

[operating systems]节中:

/redirect 

   

EFI固件的计算机

/redirect

   

参数

redirect=

为EMS控制台重定向指定端口。必须和OOB管理(out-of-band management )使用的端口一样。 (关于out-of band management,这里有一段描述In computer administration out-of-band management refers to system console access provided, even in the event of primary network subsystem (hard and/or software) failure. This can be done via a console server or with a remote access card (RAC) which has its own processor, memory, battery, network connection, and access to the system bus.)

本参数只在BIOS固件的机器上需要和有效。它在Boot.ini文件的[boot loader]节中,并且作用于所有的引导入口。

下表说明了redirect= 的值。

说明

COMx

指定一个串口,合法值是COM1、COM2、COM3和COM4。将这个值设置成在固件中指派的OOB管理使用的串口。不能再用同一个端口进行调试或者EMS控制台重定向。

本值只在BIOS固件的,没有ACPI串口控制台重定向(SPCR)表的机器上需要。

在拥有SPCR表的机器上,这个值用语替代SPCR表中的设置。

USEBIOSSETTINGS

使用固件中指派的用于OOB管理的端口和连接速度。

只在BIOS固件的拥有ACPI串口控制台重定向(SPCR)表的机器上有效。

 

redirectbaudrate=

指定EMS传输的连接速度。这个值只在和redirect=COMx一起使用时有效。如果在任何具有BIOS固件的机器上省略这个参数,默认的EMS传输速率是9600Kbps。

redirect=COMxredirectbaudrate= 在拥有SPCR表的机器上使用时,指定的COM端口和传输速率会替代SPCR表中的设置。

下表说明了redirectbaudrate= 参数的值。

说明

BaudRate

指定EMS传输的连接速度。合法值为9600、19200、57600和115200Kbps。(38400不是合法值)。默认值是9600Kbps。

 

/redirect

启用引导入口相关的Windows服务器系统的EMS控制台重定向。本参数在Windows Server 2003和之后的Windows服务器系统在所有机器上的引导入口中都可以使用。

注释

/redirect 参数只在Windows Server 2003、Windows XP和Windows 2000上支持。在Windows Vista和之后的Windows中,使用BCDEdit和/emssettings 参数及它的子参数来为所有引导入口进行EMS配置。然后,使用/ems 参数来启用特定引导入口的EMS。

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

EMS在所有基于x86、x64和Itanium的机器上运行的Windows Server 2003和之后的Windows中支持。

要在Windows安装之后启用EMS控制台重定向,Windows需要知道用于OOB传输的端口和传输速率。Windows为EMS控制台重定向使用同样的设置。

在EFI固件的机器上,Windows自动从EFI固件获得OOB设置。在使用BIOS的机器上,Windows必须从Boot.ini文件获得OOB设置。

在具有BIOS和ACPI串口控制台重定向(SPCR)表的机器上,Windows可以通过读取BIOS中的SPCR表来获得OOB设置。在这些系统中,可以在Boot.ini中添加redirect=USEBIOSSETTINGS 参数指定Windows在SPCR表中获取设置,或者通过redirect=COMxredirectbaudrate= 来覆盖SPCR表中的设置。

在具有BIOS,但是没有SPCE表的机器上,需要在Boot.ini文件中进行OOB设置。使用redirect=COMx参数指定端口,redirectbaudrate= 指定传输速率。

在所有系统中,在引导入口使用/redirect 参数来为它加载的系统启用EMS控制台重定向。

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

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

更多关于EMS的信息,查看帮助和支持中的"紧急管理服务"。也可以在Windows硬件开发者中心的站点上的Server Platform Design - Overview页的"Headless Server and Emergency Management Services Design"节查看。

示例

没有SPCR表的机器(或者覆盖SPCR表)

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
redirect=COM1
redirectbaudrate=115200
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /fastdetect /redirect

有SPCR表的机器

[boot loader]
timeout=2
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
redirect=USEBIOSSETTINGS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /fastdetect /redirect

EFI固件的机器 (Bootcfg 显示)

Boot Options
------------
Timeout:             30
Default:             \Device\HarddiskVolume3\WINDOWS
CurrentBootEntryID:  1

Boot Entries
------------

Boot entry ID:    1
OS Friendly Name: Microsoft Windows .NET Enterprise Server
OsLoadOptions:     /redirect
BootFilePath:     \Device\HarddiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsFilePath:       \Device\HarddiskVolume3\WINDOWS

Bootcfg 命令

bootcfg /ems ON /port COM1 /baud 115200 /ID 1
bootcfg /ems ON /port BIOSSET /ID 1
bootcfg /ems ON /ID 1
bootcfg /ems EDIT /port COM1 /baud 115200 /ID 1

/sos

/sos 参数显示在引导过程中加载的驱动程序名。

/sos 

注释

/sos 参数在Windows Server 2003、Windows XP和Windows 2000中支持。在Windows Vista和之后的Windows中,使用BCDEdit的SOS选项。

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /sos

Bootcfg 命令

bootcfg /addsw SO /ID n

posted on 2008-03-31 13:54 NetRoc 阅读(1935) 评论(0)  编辑 收藏 引用 所属分类: WinDbg文档翻译

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

导航

统计

常用链接

留言簿(7)

随笔档案(99)

文章分类(35)

文章档案(32)

Friends

Mirror

搜索

最新评论

阅读排行榜

评论排行榜