Windows/Hyper-V

Windows/Hyper-V

Windows 10 自带(需要开启功能)的虚拟化引擎和虚拟机管理器。性能很好,但是除了性能以外的所有地方都是一坨屎。傻逼微软就是做了个垃圾。无数 bug (特别是网络配置部分),易用性极差。通过 rdp 远程配置 Windows 10 里的傻逼 Hyper-V 的虚拟交换机(Virtual Switch Manager)把机器的物理网卡都能搞挂你敢信?而且是永久挂的那种,物理网卡网络配置全部丢失,机器重启后网络仍然断开,必须本地接显示器重新配置网卡才能修好。傻逼微软!!

Windows 10 LTSC 2019 测试用 Hyper V 安装并运行(Linux)虚拟机后某些服务 CPU 占用率很高,解决方法是把这些傻逼服务(包括依赖它们的服务)全部停止并禁用:

  • DNS client
  • Network Location Awareness
  • Network List Service

Hyper-V Manager

创建 vm

  • 类型: Gen 1 vs Gen 2.
    • Gen 2 只能安装 64位 OS。(32位 Windows 安装 iso 镜像直接无法引导启动)

Virtual Switch Manager

在这里配置虚拟机使用的网络虚拟交换机。默认的 Default Switch 是 Internal Network 类型并且无法修改或删除。

Virtual Switch 类型:

  • External Network : 类似与桥接物理网卡。注意必须取消默认选中的 "Allow management operating system to share this network adapter", 否则 Hyper-V 会在系统里创建一堆 "Hyper-V Virtual Ethernet Adapter" 网卡(正常每个使用这个 Switch 的虚拟机会创建1个,但是傻逼微软的智障程序经常抽风创建几十个 Hyper-V Virtual Ethernet Adapter,只能在设备管理器里一个一个删。微软的人就是一群弱智脑残)。这个选项完全不知道干什么用,文档不知所云。傻逼微软。
    • 这个有个最大的坑是这种模式下的 vm 无法与 host 通信(但可以和同一机器里的其他vm或局域网内其他物理机器通信),傻逼微软!
    • 添加 External Network 类型的 switch 可能导致对应的物理网卡断网甚至网络配置丢失!强烈建议接显示器操作(不要在 rdp 里改)。傻逼微软的程序员就是一群弱智。
  • Virtual Switch Manager 里的操作经常可能报错。尝试 reset 方法:
    • regedit 里直接删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmsmp\parameters\SwitchList 里的 Hyper-V 虚拟网卡然后重启。
    • control - network 里右击物理网卡 properties,取消选中 "Hyper-V Extensible Virtual Switch",确定。

Hyper-V 虚拟机配置 (Settings)

  • Hardware - Add Hadrware : 必须(只能)在这里添加硬件(比如加个网卡)。在下面的 Network Adapter 里无法添加网卡,搞得我还以为弱智 Hyper-V 虚拟机只能加1个网卡。傻逼微软!。
  • Hardware - Memory : 默认勾选 "Enable Dynamic Memory" (min memory: 512MB)。这个是动态内存机制。需要 Guest OS 支持 (Win 7旗舰版 / Win 8+ 全系列 / 较新的 Linux 发行版应该都支持)。启用后,虚拟机的可用内存会根据需要动态变化(Linux 系统里可以 free -m 实时看到总内存大小变化)。
  • Hardware - SCSI Controller - DVD Drive: 这里必须选择本地硬盘上的 iso。如果选择局域网 SMB 共享上的文件,保存时会报错。傻逼微软就是弱智。
  • Hardware - Network Adapter: 默认的 Default Switcher 使用 internal network。可以考虑创建个新的 external 类型的 Bridge Switch 指向局域网有线网卡。
  • Hardware - Firmware : 配置启动顺序。
  • Hardware - Security: 关闭 Secure Boot
  • Management - Checkpoints : 取消勾选 "Enable checkpoints"。傻逼 Hyper-V 默认开启的这个玩意就是坑货。我又一次在 Hyper-V 里装完 Windows 10 重启虚拟机后 Hyper-V 突然莫名其妙地提示我是否恢复到上一个 checkpoint,我一时没注意点了 Revert,结果直接重置把数据重置到安装之前,全部白装。傻逼微软脑子纯属有坑。
  • Management - Automatic Start Action: 配置虚拟机是否在物理机开机时自启动。
  • Management - Automatic Stop Action: 配置物理机关机时虚拟机动作。

Hyper-V Manager 里 Connect 某个虚拟机时会用 vmconnect.exe 连接一个 IPV6 地址(不知道是啥地址,傻逼微软)。如果使用了 Proxifier 之类的代理软件注意配置白名单。

多个 Virtual Ethernet Adapter

傻逼 Windows 10 会重复创建一堆 hyper-v 的 Virtual Ethernet Adapter (default switch)(在设备管理器把这些虚拟网卡全删了完全不影响虚拟机网络)。。。傻逼微软做的什么垃圾玩意。

workaround:

  • 测试某些情况下如果禁用了 DNS client 服务会出现这种情况
  • 设备管理器里删除多余的 Virtual Ethernet Adapter

Bridge 网络下虚拟机与宿主机无法连通问题

傻逼 Hyper-V 存在一个严重 bug, 有些时候会导致配置 external network (bridge) switch 类型网络的 vm 和 host 之间无法通信(直接在 layer 2 层就无法连通),但 vm 和 vm 之间,以及 vm 与同一 LAN 里的其它外部机器通信正常。

亲测 win 10 LTSC 2019 / Win 11 等上面的 Hyper-V 均存在这个 bug。StackExchange 上很多人遇到这个问题,没有根本解决方法。可以尝试的 workaround:

  • Hyper-V 管理器里删除 external network switch 然后重建(Win 11 亲测无效)
    • 创建 external network switch 时选中 "Allow management operating system to share this network adapter", 不要选中 "Enable virtual LAN identification for management operating system"。
  • 重置 Windows 网络设置(reset windows network settings),然后在 Hyper-V 里重新创建 external network switch:
    • 重置网络步骤参考这里。可以使用 "netcfg -d" 命令重置网络。重置后需要重启 / 重新登录。

只能说傻逼微软。


Last update: 2022-09-14 07:22:03 UTC