NetRoc's Blog

N-Tech

 

WinDbg 文档翻译----10

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命令和truncatememoryremovememory 选项来限制操作系统可使用的内存。

/burnmemory 在Windows Server 2003和Windows XP上有效,可以将Windows能使用的内存控制在指定值。 它以MB为单位。可以将它的值设置为小于系统中实际物理内存的任意值。

/maxmem 指定Windows可以使用的内存最大值。以MB为单位。可以将它的值设置为小于系统中实际物理内存的任意值。

/maxmem 参数实际是指定Windows 能使用的最大内存地址。由于在映射物理内存时有缝隙,Windows能使用的内存可能小于/maxmem 的值。如果要精确设置,使用/burnmemory

truncatememoryremovememory 在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=COMxredirectbaudrate= 参数。这些参数设置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=COMxredirectbaudrate= 参数。然后在引导入口添加/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参数或者emsportemsbaudrate 参数。为引导入口启用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 选项或emsportemsbaudrate 选项。如果使用BIOS选项,则不要这支emsportemsbaudrate选项。

在EFI固件或没有ACPI SPCR标的ACPI BIOS固件的机器上配置EMS时,可以用BCDEdit /emssettings 命令并指定emsportemsbaudrate 选项。

emsportemsbaudrate 选项设置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 命令和nxpae 选项。

重要  DEP能很打提高系统的安全特性,如果没有特殊原因不要关闭它。默认的DEP和PAE设置在大多数系统上都是最优的。如果它们没有妨碍基本的处理任务,就不要修改默认设置。本节包含如何配置这些特性的内容,但是并不推荐修改这些默认设置。

DEP和PAE引导参数

在Windows Vista之前的操作系统中,DEP和PAE在引导时就启用,并且有下面四个引导参数配置:

在Windows Vista上,DEP和PAE在引导时启用,并通过使用BCDEdit /set 命令和nxpae 参数配置。

这些引导参数有些冲突的效果。要配置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上)

 

posted on 2008-04-03 17:43 NetRoc 阅读(1131) 评论(0)  编辑 收藏 引用 所属分类: WinDbg文档翻译

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

导航

统计

常用链接

留言簿(7)

随笔档案(99)

文章分类(35)

文章档案(32)

Friends

Mirror

搜索

最新评论

阅读排行榜

评论排行榜