好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

使用COM口对Hyper-V虚拟机配置内核调试.pdf

7页
  • 卖家[上传人]:豆浆
  • 文档编号:3586624
  • 上传时间:2017-08-08
  • 文档格式:PDF
  • 文档大小:642.29KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 尘封メ心 @WinOS 使用 COM 口对 Hyper-V 虚拟机配置内核调试 从一道题库说开来 我们先看一道 微软认证题 : Your network contains an Active Directory domain named . The domain contains a server named Server1 that runs Windows Server 2012. Server1 has the Hyper- V server role installed. The domain contains a virtual machine named VM1. A developer wants to attach a debugger to VM1. You need to ensure that the developer can connect to VM1 by using a named pipe. Which virtual machine setting should you configure? A. Network Adapter B. BIOS C. Processor D. COM 1 这道题问的是如何对 Hyper-V 上的一台名为 VM1 的虚拟机通过命名管道方式进行调试。

      当然 从我们这篇文章标题就知道答案是 D接下来让我们看看到底如何通过 COM 口进行内核调试 先说说 什么是调试模式 细心的朋友, 如果早期接触过 Windows Server 2000/2003 系统 ,可能会在安全模式中找到 “ 调试模式 ” ,如图 1 所示: 图 1 而在 Windows 8 中,你会发现这个启动调试界面相比老的版本,会奢华高调很多: 尘封メ心 @WinOS 图 2 简单的说,调试模式它会将 Windows 系统的启动和运行中的 信息 ,通过 将串行电缆线连接 串行端口,例如 COM 口 , 发送给其他安装了调试工具的计算机,以便 IT 专业 人员 利用这些信息来查找 、分析 问题所在PS:不擅长调试不用自责,毕竟这是一件高端洋气上档次的工作,况且,人生已经很艰难,我们也不要去抢微软 资深 工程师和产品组的 饭碗,让他们来吧 如何开启调试 1. 先简单介绍一下环境我有一台 Windows Server 2012 R2 的 Hyper-V 物理主机,上面运行了一台Windows 8 的虚拟机假设某天这台虚拟机抽风打摆子,询问了众多老中医均无良方,我们只好对这台 Windows 8 的虚拟机启用内核调试, 权当死马当作活马医。

      来 看看如何来操作: 1. 登录 Windows 8 的虚拟机,以管理员身份打开 “ 命令提示符 ” ,输入命令启用内核调试: bcdedit /debug on 尘封メ心 @WinOS 图 3 2. 继续运行如下命令, 设置在 COM1 口上以波特率 115200(建议别修改波特率)进行串行调试: bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200 图 4 注: 内核调试的方式有很多,有串口方式、有 1394 方式、有 USB 方式、也有网络方式等等 配置完成后,可以输入 如下 命令来确认一下: bcdedit /dbgsettings 图 5 3. 现在需要在 Windows 8 虚拟机上配置的工作就完成了很简单吧,其实就跑了两条命令现在在Hyper-V 物理主机上,打开“ Hyper-V 管理器 ”,右击 Windows 8 虚拟机选择 “ 设置 ” ,按下图方式进行 COM1 口的配置: 图 6 管道名称可以随便写,记得下面的那个命名管道的路径即可 ,后面我们会用到 4. 重启 Windows 8 的虚拟机让修改生效。

      5. 在 Hyper-V 的物理 主机 服务器上 安装 64 位的 Debugging Tools for Windows这个工具不少人都或多或少用过,例如经常用它来分析蓝屏后产生的 DUMP 文件 安装好后,以管理员身份打开windbg.exe,如图: 尘封メ心 @WinOS 图 7 6. 接下来我们对这个调试工具进行简单的配置在软件主界面中,点击 “ File” 、 “ Kernel Debug” 、选择 “ COM” 选项卡,做如下配置: Baud Rate:保持默认的 115200,如果你在前面的 BcdEdit 命令中修改过 波特率 ,请保持两边都匹配 Port:输入 \\.\pipe\debug,需要和 Hyper-V 中设置的命名管道路径保持匹配 勾选 Pipe 和 Reconnect 复选框 Reset 保持为 0 图 8 尘封メ心 @WinOS 图 9 7. 配置完成后点击 “ 确定 ” 开始调试 此时会显示等待重连,下方也会显示当前并没有 连接稍等片刻后,点击 “ Debug” 、 “ Break” ,如图所示: 图 10 尘封メ心 @WinOS 图 11 8. 然后在调试窗口中多敲入几次回车,就能看到新的信息出来了。

      我们可以看到当前已经成功通过 虚拟的 COM 口方式连接到了 Windows 8 虚拟机 下方的 KD 字样表示内核调试,你可以输入诸多命令开启你的调试苦逼之旅…… 这里不讲如何调试,有兴趣的可以自行查阅微软 MSDN 官方资料,这个话题不在本文讨论范畴 尘封メ心 @WinOS 图 12 写在末尾 本文重点不在于如何进行内核级别的调试 操作况且 ,调试本身是一项非常具备技术含量和难度的工作本文的 目的 是纠正许多朋友一直 以来 误以为 Hyper-V 中的 COM 口是用来将物理主机上的 COM 口映射到虚拟机中供其使用 的错误观念 ,如映射主机上的老式加密狗 相信阅读本文后,应该不会再有人还会这样误解了 另外 通过本文直观的操作步骤 对 如何实现调试 也是我的初衷 FAQ Q:既然 Hyper-V 中不能将物理主机的 COM 口设备映射给虚拟机使用,那么是否有第三方解决方案? A: 有, Serial over Ethernet它非常类似众所周知的 USB over Network 这样的产品,也是将设备安装在主机上,然后通过网络的方式共享给虚拟机使用 这种方式 但是可能会对串口设备有兼容性要求。

      Q: 微软未来是否会考虑加入映射物理主机 COM 口设备给虚拟机使用的 功能? A: 个人认为够呛, 毕竟 串口设备 属于淘汰的老设备了当然 你可以憧憬,可以幻想 ,那是您的权利 …… 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.