cc682/NetRoc
http://netroc682.spaces.live.com/
使用引导参数
驱动程序开发、测试人员经常需要添加、删除和修改引导入口的参数以在不同条件下测试他们的驱动。本节描述了一些共通的用于配置保存在Boot.ini和NVRAM中的引导参数的情况和策略建议。
本节包含以下主题:
用于启用调试的引导参数
用于操作内存的引导参数
用于加载局部调试版系统的引导参数
用于启用EMS重定向的引导参数
用于配置DEP和PAE的引导参数
用于启用调试的引导参数
当内核调试连接建立起来之后,系统给予内核调试器自己执行的控制权。同样,当发生bug check或者内核模式程序和调试器进行通信的时候,计算机在继续执行之前都要等待内核调试器的相应。
有四种可以通过引导参数来配置的基本的调试方法:
- 单机(本地)调试
- 通过null-modem电缆调试
- 通过IEEE 1394电缆调试(只在Microsoft Windows XP和之后的版本)
- 使用USB 2.0调试电缆调试(只在Microsoft Windows XP和之后的版本)
Windows Vista之前的系统中用于本地调试的引导参数
要在单台机器上启用内核调试,需要在引导入口添加/debug 参数。不要在引导入口中添加任何其它调试相关的参数。
下面的示例Boot.ini文件中的第一条引导入口包含/debug 参数。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Local Debugging" /fastdetect /debug
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
下面的Bootcfg命令启用本地调试。Bootcfg的/debug 开关和ON 值一起使用,会在引导入口中添加/debug 参数。/ID 开关指定引导入口。
bootcfg /debug ON /ID 1
下面是一个使用Boot.ini文件的系统上的Bootcfg显示结果。第一个引导入口被配置为使用本地调试。
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: Windows XP Local Debugging
Path: multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
OS Load Options: /fastdetect /debug
Boot entry ID: 2
OS Friendly Name: Microsoft Windows XP
Path: multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
OS Load Options: /fastdetect
Windows Vista中本地调试的引导配置
使用BCDEdit /debug 调试选项来启用单机内核调试。
使用BCDEdit,要使用提升的权限打开一个命令行窗口(右键点击命令提示符并在快捷菜单中点击用管理员方式启动)。
/debug 选项的语法如下:
bcdedit /debug [{ID}] { on | off }
{ID}是引导入口被指派的GUID。如果{ID}没有指定,则修改当前的引导入口。下面的命令启用当前系统的引导入口的内核调试:
bcdedit /debug on
下面的命令启用指定的引导入口的系统地内核调试:
bcdedit /debug {18b123cd-2bf6-11db-bfae-00e018e2b8db} on
可以使用bcdedit /enum 命令来查看当前所有引导入口、他们的设置和分配的GUID。
在Windows Vista之前的系统中用于配置Null-modem电缆调试的引导参数
要 启用null-modem 电缆调试,需要在引导入口中添加/debug 参数和/debugport 、 /baudrate 子参数。
下面Boot.ini文件中的第一个引导入口配置为使用null modem电缆调试。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Debugging with Cable" /fastdetect /debug /debugport=COM1 /baudrate=57600
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
设置/debugport 子参数的值为机器上某一个COM端口。/baudrate 子参数的值为电缆的连接速度。(默认值为19200 bps)
下面的Bootcfg命令启用第一个引导入口的调试。设置调试端口为COM1,波特率为57600 bps。
Bootcfg的/debug 开关和ON 值在引导入口中添加/debug 参数。Bootcfg 的/port 开关添加/debugport 子参数和值COM1。/baud 开关添加/baudrate 子参数和值57600。/ID 开关指定引导入口。
bootcfg /debug ON /port COM1 /baud 57600 /ID 1
下面的Bootcfg示例显示了一个基于Itanium系统的引导入口结果。新添加的参数在下面以粗体标识。
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: Windows Server 2003, Enterprise
OsLoadOptions: /debug /debugport=COM1 /baudrate=57600
BootFilePath: \Device\HarddiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsFilePath: \Device\HarddiskVolume3\WINDOWS
Windows Vista使用Null-modem电缆的引导选项
在Windows Vista中,调试设置可以配置为全局或者针对单个引导入口。默认的全局调试设置是串口通信的,使用COM1,波特率为115200。
要显示当前设置,使用下面的命令:
bcdedit /dbgsettings
debugtype Serial
debugport 1
baudrate 115200
使用BCDEdit,要使用提升的权限打开一个命令行窗口(右键点击命令提示符并在快捷菜单中点击用管理员方式启动)。
使用如下语法来将全局调试设置修改为串口通信:
bcdedit /dbgsettings serial [DEBUGPORT:端口] [BAUDRATE:波特率]
下面的是将全局调试设置指定为串口通信的示例:
bcdedit /dbgsettings serial debugport:1 baudrate:115200
使用下面的语法来设置指定引导入口或当前入口的调试设置:
bcdedit /set [{ID}] [ debugtype serial | [DEBUGPORT port] | [BAUDRATE baud] ]
如果没有指定{ID},则修改当前激活的引导入口。
下面的例子表明了如何为特定引导入口指定串口调试设置。
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} debugtype serial
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} debugport 1
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} baudrate 115200
可以使用bcdedit /enum 命令查看当前的所有引导入口和他们的设置。
在Windows Vista之前的系统中用于1394电缆调试的引导参数
如果主控机和目标机都运行Windows XP或之后地系统,就可以用IEEE 1394(火线)电缆进行内核调试。
要启用IEEE 1394电缆调试,要在引导入口中添加/debug 参数和/debugport 、/channel 子参数。将/debugport 子参数设置为1394,将/channel 设置为传输使用的频道。
下面的示例Boot.ini文件中第一个引导入口配置为使用1394电缆调试。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Debugging with 1394" /fastdetect /debug /debugport=1394 /channel=44
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
下面的Bootcfg命令启用1394电缆调试,并将调试频道设置为44。/dbg1394 开关和值ON 在引导入口中添加/debug 和/debugport=1394子参数,/ch 开关添加/channel 子参数。/id 开关指定第二个引导入口。
bootcfg /dbg1394 ON /ch 44 /id 2
下面的Bootcfg输出显示了该命令在Boot.ini文件的系统上的结果。新添加的参数在下面用粗体标识。这台机器现在有不启用调试和启用1394电缆调试的两种引导选项。不启用调试的一个是默认。
Boot Entries
------------
Boot entry ID: 1
Friendly Name: "Microsoft Windows XP Professional"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect
Boot entry ID: 2
Friendly Name: "1394 Debug Windows XP"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect /debug /debugport=1394 /channel=44
注意 在使用1394电缆进行内核调试之前,还要在目标机和主控机上进行额外的软件配置。查看禁用1394控制器和安装1394虚拟驱动获取详细信息。
Windows Vista 中的1394电缆调试引导参数
在Windows Vista中启用IEEE 1394调试,使用BCDEdit并将debugtype 参数设置为1394。可以使用/dgbsettings 选项来进行全局调试设置,或者用/set 来设置指定引导入口。
使用BCDEdit,要使用提升的权限打开一个命令行窗口(右键点击命令提示符并在快捷菜单中点击用管理员方式启动)。
使用下面语法将全局设置改为1394:
bcdedit /dbgsettings 1394 [channel:频道]
下例将全局调试设置指定为使用1394:
bcdedit /dbgsettings 1394 channel:32
使用下面语法为指定的引导入口或当前入口进行调试设置:
bcdedit /set [{ID}] [ debugtype 1394 | channel channel ]
如果{ID} 未指定,则应用到当前入口。
下面的例子说明了如何为指定的引导入口设置1394调试,以及如何用/debug 选项为制定引导入口启用内核调试。
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} debugtype 1394
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} channel 32
bcdedit /debug {18b123cd-2bf6-11db-bfae-00e018e2b8db} on
可以使用bcdedit /enum 命令查看当前的所有引导入口和他们的设置。
在Windows Vista之前的系统中的USB 2.0调试引导参数
要启用USB 2.0电缆调试,需要在引导入口添加/debug 参数和/debugport 、/targetname 子参数。将/debugport 的值设置为usb,/targetname 的值设置为任意字符串。该字符串用于指定内核调试器连接。
注意 进行USB 2.0电缆调试之前,需要进行额外配置。查看设置USB 2.0 调试电缆连接获取详细信息。
Windows Vista上的USB 2.0调试引导参数
如果目标机运行Windows Vista,并且主控机运行Windows 2000和之后的系统,就可以使用USB 2.0调试电缆进行内核调试。
要在Windows Vista上启用USB电缆调试,使用BCDEdit并将debugtype 参数设置为USB。可以使用/dgbsettings 设置全局调试设置,或用BCDEdit /set 选项设置单个引导入口。
使用BCDEdit,要使用提升的权限打开一个命令行窗口(右键点击命令提示符并在快捷菜单中点击用管理员方式启动)。
使用下面语法将全局调试设置修改为使用USB:
bcdedit /dbgsettings usb [targetname:目标名]
下例将全局调试设置指定为USB。
bcdedit /dbgsettings usb targetname:U1
用如下语法为单个引导入口进行设置:
bcdedit /set [{ID}] [ debugtype usb | targetname targetname ]
如果没有指定{ID},则应用到当前入口。
下例说明了如何为单个引导入口指定USB调试设置,以及如何用/debug 命令为它启用内核调试。
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} debugtype usb
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} targetname u2
bcdedit /debug {18b123cd-2bf6-11db-bfae-00e018e2b8db} on
可以使用bcdedit /enum 命令查看当前的所有引导入口和他们的设置。
用于操作内存的引导参数
可以不改变机器的物理内存总数就模拟低内存环境。可以在Windows Server 2003和Windows XP上使用/burnmemory 和 /maxmem引导参数,在Windows Vista上使用BCDedit /set命令和truncatememory 或 removememory 选项来限制操作系统可使用的内存。
/burnmemory 在Windows Server 2003和Windows XP上有效,可以将Windows能使用的内存控制在指定值。 它以MB为单位。可以将它的值设置为小于系统中实际物理内存的任意值。
/maxmem 指定Windows可以使用的内存最大值。以MB为单位。可以将它的值设置为小于系统中实际物理内存的任意值。
/maxmem 参数实际是指定Windows 能使用的最大内存地址。由于在映射物理内存时有缝隙,Windows能使用的内存可能小于/maxmem 的值。如果要精确设置,使用/burnmemory 。
truncatememory 或 removememory 在Windows Vista中有效。truncatememory 选项忽略指定的物理地址和它之上的所有内存。removememory 选项将Windows可以使用的内存减少指定值(以MB为单位)。两个选项都可以减少内存,但是removememory 在算上内存空隙的时候限制系统使用的内存更好。
在Windows Vista之前的操作系统中用于在低内存环境进行测试的引导参数
要在Windows Server 2003和Windows XP上模拟低内存环境,需要在引导入口添加/burnmemory 参数。将它的值设置为系统总物理内存数减去测试期望使用的内存大小。
例如,要将一台1GB物理内存的及其限制为最多使用128MB内存,将/burnmemory 参数设置为896((1 GB (1024 MB) - 128 MB = 896 MB)。
下面的示例Boot.ini文件的第一个引导入口具有/burnmemory 参数。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Low Memory" /fastdetect /burnmemory=896
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
使用Bootcfg 为引导入口添加/burnmemory 参数。由于Bootcfg没有为/burnmemory 设置的开关,所以需要使用Bootcfg /raw 开关,它允许为引导入口指定任何参数。
下面的Bootcfg命令中,/raw 开关在引导入口中添加"/burnmemory=896"这段字符串内容。/A 开关指定Bootcfg直接在入口中添加字符串,但是不替换入口中已有的任何引导参数。/ID 开关指定引导入口号。
bootcfg /raw "/burnmemory=896" /A /ID 1
下面的Bootcfg输出显示了Boot.ini文件的系统中的命令运行结果。
Boot Entries
------------
Boot entry ID: 1
Friendly Name: "Microsoft Windows XP Professional"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect /burnmemory=896
Windows Vista中进行低内存环境测试的引导参数
要在Windows Vista中模拟低内存环境,用BCDedit /set命令和removememory 选项来修改引导入口。将removememory 的值设置为系统总物理内存数减去测试期望使用的内存大小。
例如,要将一台2GB物理内存的机器的内存限制为512MB,将removememory 的值设置为1536 (1 GB (2048 MB) - 512 MB = 1536 MB)。
下面的BCDEdit命令将指定引导入口的系统可用内存减少1536MB。
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} removememory 1536
也可以使用bcdedit /set 命令和truncatememory 参数达到同样目的。例如,下面的命令将系统可用内存限制到512MB。
bcdedit /set {18b123cd-2bf6-11db-bfae-00e018e2b8db} truncatememory 512
由于removememory 选项是的系统内存使用更加有效率,所以建议用它代替truncatememory 。
Windows Vista之前的系统中进行低内存环境测试的引导参数
要在Windows 2000中模拟低内存环境,需要在引导入口添加/maxmem 参数。将它的值设置为期望的内存值。
下面的示例Boot.ini文件的第一个引导入口包含/maxmem 参数。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Low Memory" /fastdetect /maxmem=128
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
下例中,/maxmem 参数将Windows可用内存限制到128MB, 并且配置为使用调试电缆(null modem)调试。将使用两个Bootcfg命令。
第一条Bootcfg命令使用Bootcfg /addsw (add switch)开关和/MM 参数、值128,在引导入口中添加/maxmem 参数,并设置值为128(MB)。/ID指定引导入口号。
bootcfg /addsw /MM 128 /ID 1
第二条Bootcfg命令使用Bootcfg /debug 开关和值ON为引导入口添加/debug参数。使用/port 开关和值COM1添加/debugport 参数并设置为COM1,使用/baud 开关合值19200添加/baudrate参数并设置为19200 bps。/ID参数指定引导入口号。
bootcfg /debug ON /port COM1 /baud 19200 /ID 1
下面的Bootcfg输出显示了引导入口的结果。新添加的参数在下面用粗体显示。
Boot Entries
------------
Boot entry ID: 1
Friendly Name: "Windows XP 128MB Debug"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect /maxmem=128 /debug /debugport=COM1 /baudrate=19200
用于加载局部调试版系统的引导参数
局部调试版包含调试版的内核和HAL以及其他发行版操作系统系统组件。更多信息,在Windows Driver Kit(WDK)中查看Checked Operating System and HAL 。
在Windows Vista之前的操作系统中配置局部调试版系统
在Windows 2000、Windows XP或Windows Server 2003中配置局部调试版系统,需要在引导入口添加/kernel和/hal参数。由于Bootcfg没有对应的开关来添加/kernel和/hal ,需要使用Bootcfg /raw 开关直接在引导入口添加参数。
下面的示例Boot.ini文件中第一个入口加载一个Windows XP的局部调试版系统。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Partial Checked Build" /fastdetect /kernel=ntoskrnl.chk /hal=halacpi.chk
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
下面的Bootcfg命令,/raw 开关在引导入口中添加字符串"/kernel=ntoskrnl.chk /hal=halacpi.chk"。/A 开关指示Bootcfg直接在引导入口中加入字符串而不替代任何已有参数。/ID指定引导入口号。
如果没有加入/A ,则指定的参数会覆盖掉第二个引导入口中所有参数,在下面的例子中是为/fastdetect。
bootcfg /raw "/kernel=ntoskrnl.chk /hal=halacpi.chk" /A /id 1
下面的Bootcfg输出显示了该命令在EFI NVRAM中的引导选项结果。命令添加的参数在下面用粗体标识。
Boot Options
------------
Timeout: 30
Default: \Device\HarddiskVolume3\WINDOWS
CurrentBootEntryID: 1
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: Windows Server 2003, Enterprise
OsLoadOptions: /fastdetect /kernel=ntoskrnl.chk /hal=halacpi.chk
BootFilePath: Device\HarddiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsFilePath: \Device\HarddiskVolume3\WINDOWS
在Windows Vista中配置局部调试版系统
要在Windows Vista中配置局部调试版系统,使用BCDedit /set 命令和kernel 、hal选项。
以下命令配置引导入口使用调试版内核和硬件抽象层(HAL)。
查看命令结果,输入bcdedit /enum。/enum选项列出所有引导入口。 修改为使用调试版内核和HAL的引导入口也被配置来使用串口内核调试。
Windows Boot Loader
-------------------
identifier {18b123cd-2bf6-11db-bfae-00e018e2b8db}
device partition=C:
path \Windows\system32\winload.exe
description PartialCheckedBuild
locale en-US
inherit {bootloadersettings}
debugtype serial
debugport 1
baudrate 115200
osdevice partition=C:
systemroot \Windows
kernel ntoskrnl.chk
hal halacpi.chk
resumeobject {d7094401-2641-11db-baba-00e018e2b8db}
nx OptIn
debug Yes
用于启用EMS重定向的引导参数
紧急管理服务(EMS)技术允许当服务器未连接到网络或其他标准远程管理工具时,远程控制服务器的选定组件。EMS在所有基于x86、x64、Itanium的机器上所有版本的Windows Server 2003系统上支持。
更多EMS的信息,可以在Microsoft TechNet 站点上搜索Emergency Management Services。
注意 本主题说明如何在运行Windwos Server 2003的计算机上启用EMS。本节中说明的引导参数在Windows Vista中不适用。
当使用BIOS固件的机器上的引导入口被配置为使用EMS,boot loader会在引导菜单中显示的友好名后面加上中括号括起的后缀[ems enabled]。但是,如果友好名和后缀加起来超过70个字符,则boot loader忽略掉后缀。要显示出来,需要修改短友好名。
要确认计算机是否有ACPI固件,可以使用设备管理器(devmgmt.msc)。在设备管理器中,展开计算机节点。在有ACPI固件的机器上,计算机里面包含的节点包含ACPI这一条。
在运行Windows Server 2008以前的没有ACPI SPCR表的机器上启用EMS
在拥有BIOS固件但是没有ACPI串口控制台重定向(SPCR)表的机器上启用EMS控制台重定向,需要在Boot.ini文件的[boot loader] 节中添加redirect=COMx 和redirectbaudrate= 参数。这些参数设置EMS控制台重定向使用的端口和传输率。使用和BIOS中为OOB(out-of-band)通信设定的端口和传输率。然后再引导入口中添加/redirect 参数。
下面的Bootcfg命令启用列表中第一个引导入口的EMS控制台重定向。设置为使用COM2并且传输速率为115200 bps。这和在BIOS中为OOB端口设置的值一样。
bootcfg /ems ON /port COM2 /baud 115200 /id 1
下面的Bootcfg输出显示了命令结果。新加入的参数在下面以粗体标识。
Boot Loader Settings
--------------------
timeout: 3
default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
redirect: COM2
redirectbaudrate: 115200
Boot Entries
------------
Boot entry ID: 1
Friendly Name: "Windows Server 2003, Standard with EMS"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect /redirect
下例显示了在Boot.ini文件中同样命令的结果。
[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
redirect=COM2
redirectbaudrate=115200
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="EMS boot" /fastdetect /redirect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Standard" /fastdetect
在运行Windows Server 200的没有ACPI SPCR表的几起重启用EMS
在拥有BIOS固件但是没有ACPI串口控制台重定向(SPCR)表的机器上启用EMS控制台重定向,使用BCDEdit /emssettings 命令设置COM端口和波特率。
这些参数设置EMS控制台重定向的全局端口和传输速率。使用和BIOS中为OOB传输指定的同样端口的传输率。
然后,用BCDEdit /ems 命令为引导入口启用EMS。
下面的命令设置全局EMS重定向设置为使用COM2,波特率为115200,并且为指定引导入口启用EMS。
bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
bcdedit /ems {18b123cd-2bf6-11db-bfae-00e018e2b8db} on
在运行Windows Server 2008之前系统的拥有SPCR表的机器上启用EMS
在拥有ACPI BIOS固件和ACPI SPCR表的机器上启用EMS,可以使用redirect=USEBIOSSETTINGS 参数或者redirect=COMx 和redirectbaudrate= 参数。然后在引导入口添加/redirect参数。
下面示例了redirect=USEBIOSSETTINGS 参数的使用。下面的Bootcfg命令在引导入口中第一个入口启用EMS控制台重定向。
bootcfg /ems ON /port BIOSSET /id 1
下面Bootcfg的输出显示了命令结果。新添加的参数用粗体标识。
Boot Loader Settings
--------------------
timeout: 1
default: multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
redirect:USEBIOSSETTINGS
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: EMS boot
Path: multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
OS Load Options: /fastdetect /redirect
Boot entry ID: 2
OS Friendly Name: Windows Server 2003, Standard
Path: multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
OS Load Options: /fastdetect
下例显示同样命令在Boot.ini文件中的结果。
[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
redirect=USEBIOSSETTINGS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="EMS boot" /fastdetect /redirect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Standard" /fastdetect
在运行Windows Server 2008的拥有SPCR表的机器上启用EMS
在拥有ACPI BIOS 固件和ACPI SPCR表的机器上启用EMS,可以使用BCDEdit /emssettings 并指定BIOS参数或者emsport 和emsbaudrate 参数。为引导入口启用EMS,使用BCDEdit /ems 命令。
下例指示如何使用BIOS参数。第二个BCDEdit命令为当前引导入口启用EMS控制台重定向。
bcdedit /emssettings bios
bcdedit /ems on
在运行Windows Server 2008之前系统的EFI固件机器上启用EMS
在EFI固件机器上启用EMS,使用Bootcfg为引导入口添加/redirect 参数。Windows会在固件中读取SPCR表获得OOB端口和它的设置,并应用到EMS控制台重定向中。
下面的Bootcfg命令在一台基于Itanium的机器上启用EMS重定向。使用Bootcfg /ems开关和值OM来为引导入口添加/redirect 参数。/id 开关指定引导入口号。
bootcfg /ems ON /id 1
下面Bootcfg的输出显示了命令执行后EFI NVRAM中的引导选项结果。第一个引导入口被配置为加载系统并启用EMS控制台重定向。
Boot Options
------------
Timeout: 30
Default: \Device\HarddiskVolume3\WINDOWS
CurrentBootEntryID: 1
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: Windows Server 2003, Enterprise with EMS
OsLoadOptions: /fastdetect /redirect
BootFilePath: \Device\HarddiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsFilePath: \Device\HarddiskVolume3\WINDOWS
在运行Windows Server 2008并使用EFI固件的机器上启用EMS
在EFI固件机器上启用EMS,使用BCDEdit /ems 命令并指定一个引导入口。Windows读取SPCR表获得OOB端口和设置,并应用在EMS控制台重定向上。
下面的命令在GUID为{18b123cd-2bf6-11db-bfae-00e018e2b8db}的入口上启用EMS控制台重定向。
bcdedit /ems {18b123cd-2bf6-11db-bfae-00e018e2b8db} on
在运行Windows Server 2008之前系统的使用BIOS固件的机器上修改EMS设置
在单个引导入口配置EMS时,在Boot.ini文件的[boot loader] 节添加redirect= 参数。但是,当在更多的引导入口启用EMS时,不需要再次添加redirect= 参数。和[boot loader] 中所有入口一样,redirect= (和 redirectbaudrate=)应用到机器中的所有引导入口。
下面的Bootcfg命令为第二个引导入口启用EMS。因为端口和波特率已经设置了,所以不需要/port 和/baud开关。
bootcfg /ems ON /id 2
要修改端口和波特率设置,使用Bootcfg /ems 开关及EDIT 参数。下面的命令将EMS端口修改为COM1,波特率修改为57600 Kbps。
bootcfg /ems EDIT /port COM1 /baud 57600
在引导入口禁用EMS,使用Bootcfg /ems 开关和OFF参数。下面的命令在第一个引导入口禁用EMS。
bootcfg /ems OFF /id 1
如果EMS在任何其他引导入口都没有启用,Bootcfg会删除在Boot.ini文件中[boot loader]节里面设置的EMS端口和波特率。
在运行Windows Server 2008的机器上修改EMS设置
在拥有ACPI BIOS固件和ACPI SPCR表的机器的引导入口配置EMS时,可以使用BCDEdit /emssettings 命令并指定BIOS 选项或emsport 和emsbaudrate 选项。如果使用BIOS选项,则不要这支emsport和 emsbaudrate选项。
在EFI固件或没有ACPI SPCR标的ACPI BIOS固件的机器上配置EMS时,可以用BCDEdit /emssettings 命令并指定emsport 和emsbaudrate 选项。
emsport 和emsbaudrate 选项设置EMS控制台重定向的串口和传输速率。这些设置对计算机中所有引导入口起效。要使用emsbaudrate ,必须同时设置emsport 选项。默认的,传输速率设置为9600(9600 Kbps)。
例如,下面的命令将EMS端口修改为COM2,波特率修改为57600 Kbps。
bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:57600
为某个引导入口启用或禁用EMS,使用BCDEdit /ems 命令。
例如,下面的命令启用GUID为{173075c9-2cb2-11dc-b426-001558c41f5c}的引导入口的EMS。
bcdedit /ems {173075c9-2cb2-11dc-b426-001558c41f5c} on
禁用当前引导入口的EMS,使用如下命令。
bcdedit /ems off
注意 每个引导入口都使用一个GUID作为标识。如果没有指定标识,BCDEdit命令都修改当前引导入口。如果指定了标识,引导入口的GUID必须用大括号{ }括起来。要查看所有激活的引导入口的GUID,使用bcdedit /enum命令。
用于配置DEP和PAE的引导参数
本主题说明了如何在支持这些特性的系统上使用引导参数启用、禁用和配置数据执行保护(DEP)和物理地址扩展(PAE)。
获取Windows Vista之前的操作系统和DEP有关的引导选项的信息,包括系统支持的和默认的参数,查看 /noexecute 和/execute。关于PAE的类似信息,查看/pae 和 /nopae。
获取Windows Vista上和DEP、PAE有关的引导参数信息,查看BCDEdit /set 命令和nx 、pae 选项。
重要 DEP能很打提高系统的安全特性,如果没有特殊原因不要关闭它。默认的DEP和PAE设置在大多数系统上都是最优的。如果它们没有妨碍基本的处理任务,就不要修改默认设置。本节包含如何配置这些特性的内容,但是并不推荐修改这些默认设置。
DEP和PAE引导参数
在Windows Vista之前的操作系统中,DEP和PAE在引导时就启用,并且有下面四个引导参数配置:
在Windows Vista上,DEP和PAE在引导时启用,并通过使用BCDEdit /set 命令和nx 、pae 参数配置。
这些引导参数有些冲突的效果。要配置DEP和PAE,只能按照文档和本主题中对每个参数组合的描述。不要试验这些冲突的参数,特别是在业务使用的系统上。
DEP和PAE引导参数的交互作用
有两种类型的DEP:
- 硬件DEP为内核模式和用户模式进程都启用DEP。必须由处理器和操作系统共同支持。
- 软件DEP只为用户模式进程启用DEP。必须由操作系统支持。
Windows SP2、Windows Server 2003 SP1 、Windows Vista和之后的Windows版本支持DEP。
在32位Windows中,硬件DEP要求PAE的支持。所有支持DEP的Windows操作系统都支持PAE。当使用支持硬件DEP的处理器的机器上的DEP启用时,Windows自动启用PAE,并跳过所有试图禁用它的引导参数。
在每个Windows操作系统上这些参数的组合在下节中概括描述。
DEP和PAE参数的结合使用
下表说明了用于配置DEP和PAE的参数的组合。
作用
|
Windows Vista之前的系统
|
Windows Vista
|
启用DEP
(选择一个参数组合)
当在支持硬件DEP的机器上启用DEP时,这些参数组合也启用PAE
|
/noexecute=alwayson /noexecute=optin /noexecute=optout
|
/set {ID} nx AlwaysOn
/set {ID} nx OptIn
/set {ID} nx OptOut
|
在软件DEP的系统上启用DEP和PAE
(选择一个参数组合)
在支持硬件DEP的机器上,当DEP启用时,自动启用PAE。
|
/noexecute=alwayson /pae /noexecute=optin /pae /noexecute=optout /pae
|
/set {ID} nx AlwaysOn
/set {ID} pae default
/set {ID} nx OptIn
/set {ID} pae default
/set {ID} nx OptOut
/set {ID} pae default
|
禁用DEP,但是启用PAE
|
/noexecute=alwaysoff /pae
(Windows XP SP2)
|
/set {ID} nx AlwaysOff
/set {ID} pae ForceEnable
|
禁用DEP,但是启用PAE
|
/noexecute=alwayoff /noexecute=alwaysoff /pae
(只在Windows Server 2003 SP1上)
(这些参数组合是等价的。)
|
/set {ID} nx AlwaysOff
/set {ID} pae ForceEnable
|
同时禁用DEP和PAE
|
/noexecute=alwaysoff /noexecute=alwaysoff /nopae
(Windows XP SP2)
(这些参数组和是等价的)
|
/set {ID} nx AlwaysOff
/set {ID} pae ForceDisable
|
同时禁用DEP和PAE
|
/execute
(只在Windows Server 2003 SP1上)
| |