VirtualKD 2.3

朋友很早向我推荐VirtualKD,说比windbg的模拟串口快很多。但直到最近我发现VirtualKD 2.3也出来了,便有了试试的想法。安装相当简单,先启动vmmon64.exe或vmmon.exe,然后启动VMware target OS,在target OS中安装“\target” 目录下的程序,系统会自动重启。在vmmon中设置好windbg/kd的路径后,vmmon会自动启动windbg/kd,相当方便。

虽然windbg的模拟串口对我来说还够用,但试过VirtualKD之后,发现VirtualKD确实很贴心。呵呵!

顺便测试了VMware 7.0.0-203739,VirutalKD 2.3已加入对VMware 7的支持。

相关键接: http://sourceforge.net/projects/virtualkd http://virtualkd.sysprogs.org/

恼人的bootmgr

我有一台专门运行vmware的host server,差不多所有的开发/调试都在此机器上进行。但上面存储的东西越来越多,原来的80G硬盘容不下了。正好用空闲下来的的200G的盘来替换原来的80G的。共两个分区:第一个分区是xp i386,第二个分区是server 2008 x64。移动数据很简单,不二的选择就是ghost。但ghost后的问题却是意料之外的。

ghost移动数据花了近两个小时。之后用新的硬盘来启动,结果bootmgr提示出错: winload.exe报0xc000000e。试了几种办法,包括用系统盘进行recovery/修复,但都不见效。

无奈之下重新挂上原来的硬盘,枚举所有的boot配置,然后与ghost后的配置进行比对,终于发现问题原由:设备盘符不对。枚举命令如下(可启动PE运行,也可以用VistaBootPro导出): bcdedit /enum all

错误的配置: Windows Boot Loader

identifier {default} device partition=D: path \Windows\system32\winload.exe description Microsoft Windows Server 2008 locale en-US inherit {bootloadersettings} osdevice boot systemroot \Windows resumeobject {48c4f6e7-1e4e-11de-b96b-dfd52951c806} nx OptOut custom:250000f0 0 detecthal Yes

Resume from Hibernate

identifier {48c4f6e7-1e4e-11de-b96b-dfd52951c806} device partition=F: path \Windows\system32\winresume.exe description Windows Resume Application locale en-US inherit {resumeloadersettings} filedevice partition=F: filepath \hiberfil.sys debugoptionenabled No

Windows Legacy OS Loader

identifier {ntldr} device partition=C: path \ntldr description Earlier Version of Windows

原来盘上的配置: Windows Boot Loader

identifier {default} device partition=D: path \Windows\system32\winload.exe description Microsoft Windows Server 2008 locale en-US inherit {bootloadersettings} osdevice partition=D: systemroot \Windows resumeobject {48c4f6e7-1e4e-11de-b96b-dfd52951c806} nx OptOut custom:250000f0 0

Resume from Hibernate

identifier {48c4f6e7-1e4e-11de-b96b-dfd52951c806} device partition=D: path \Windows\system32\winresume.exe description Windows Resume Application locale en-US inherit {resumeloadersettings} filedevice partition=D: filepath \hiberfil.sys debugoptionenabled No

Windows Legacy OS Loader

identifier {ntldr} device partition=C: path \ntldr description Earlier Version of Windows

知道症结所在之后,修复的问题就好办了: bcdedit /set {default} device "partition=D:" bcdedit /set {default} osdevice "partition=D:" bcdedit /set {48c4f6e7-1e4e-11de-b96b-dfd52951c806} device "partition=D:" bcdedit /set {48c4f6e7-1e4e-11de-b96b-dfd52951c806} filedevice "partition=D:"

重启后问题解决!真不知道微软怎么想的,原来的boot.ini既明了又方便,非得再搞个bootmgr出来。并且bootmgr出的问题总是莫名其妙,搞得用户摸不着方向,真是出力不讨好!