国产软件,在下一向「哀其不幸,恨其不争」。然而,这样的软件大环境木已成舟,虽有千百数据隐私之风险,但亿万国民却不得不用。甚幸此局并非不可破,使用虚拟机大法,便可解之。

至于虚拟机种类之挑选,在下并没有做过多的犹豫,而是直接选择了 Hyper-V。平心而论,在下并没有什么虚拟机的使用经验,恰巧 Hyper-V 本就为 Windows 原生支持,开启只需简单地打开开关,不需要经历下载安装的步骤;又因为其属于系统级内置,之后使用过程中奇奇怪怪的问题应该也会少些。

对于虚拟机系统的权衡,在下最终敲定了 Windows LTSC 的方案。LTSC,即 Long-Term Servicing Channel,长期服务频道,该版本为企业特定用户提供长达五年甚至十年支持,在有效的生命支持周期内用户无需升级操作系统。使用 LTSC 版本的用户不会像普通版本一样被强制更新,因而,在使用期间更为稳定;并且其精简了一些系统组件,自然性能开销也会更少,想来也更适合安装在虚拟机上。

配置虚拟机

准备系统映像

前往 MSDN,需要注意的是这并非微软的 Microsoft Developer Network,即微软开发者网络,而是一个中国开发者的「个人性质的原版软件信息收录站点」,它提供了微软官方公开的原版软件下载链接。鉴于国内复杂的网络环境,其网站的易用程度较微软的 MSDN 要好得多。

目前 Windows LTSC 最新的版本是 Windows 10 Enterprise LTSC 2021,找到 Windows 10 - Windows 10 Enterprise LTSC 2021 (x64) - DVD (Chinese-Simplified),复制下载链接并用相应下载工具完成下载。

开启 Hyper-V 功能

首先要做的,是打开 Windows 的 Hyper-V 虚拟机功能。

对于 Windows 专业版用户,打开控制面板-程序与功能-启动或关闭 Windows 功能,在其中找到 Hyper-V,并将其勾选。

Windows 11 专业版用户还可以通过打开设置-应用-可选功能-更多 Windows 功能中找到 Hyper-V 并勾选。

而对于 Windows 家庭版用户,则无法直接开启此功能,但仍有方法:

  1. 新建一个文本文档,并输入如下代码
    pushd "%~dp0"
    dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
    for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
    del hyper-v.txt
    Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
  2. 保存,并将其重命名为 Hyper-V.cmd ,注意文件扩展名需要变更为 .cmd
  3. 右击 Hyper-V.cmd,选择以管理员身份运行

新建虚拟机

打开 Hyper-V 管理器,若是找不到快捷方式,可以通过任务栏的搜索按钮或 Windows+S 键搜索。

在打开的管理页面中选择 新建 - 虚拟机,然后选择虚拟机代数,选择第 1 代或者第 2 代均可。注意,只可以在第 2 代虚拟机上安装 64 位操作系统。

接着根据向导提示设置虚拟机,内存分配最好不要低于 2G,其余设置自定,内存大小和 CPU 线程数分配策略均可以在完成配置后在管理页面的设置中更改。

进行安装选项时,在配置网络处选择 Default Switch,在安装选项处,选择从可启动的 CD/DVD-ROM 安装操作系统,选择准备好的 Windows LTSC 系统映像,之后启动虚拟机,就会自动启动系统安装程序,跟随提示一路完成安装即可。

注意,如果首次启动时没有成功被引导到安装程序,而是出现提示 the boot loader failed,这是第 2 代虚拟机的独有问题,解决方法是重启虚拟机的同时随便按住一个键即可。

优化使用环境

激活 Windows LTSC

该步骤可选,激活教程敬请通过搜索引擎搜索,此处不做赘述。

虚拟机与主系统的文件传输/USB 读取问题

在连接虚拟机时,应会弹出连接选项,单击显示选项,就能看到本地资源选项卡,单击更多,勾选驱动器其他支持的即插即用(PnP)设备即可在虚拟机访问主系统驱动器,读取插入的 USB 驱动器。

CPU 异常占用/微软输入法不显示候选栏问题

这是一个很具有印度互联网公司特色的问题,阿三程序员们在打包 Windows LTSC 2021 的时候,精简了 Microsoft Store 组件,但是没有从 Windows 的屎山代码里优化 AppXSVC 和 ClipSVC 这两个服务的运行逻辑。他们是 Microsoft Store 用来负责安装、部署和更新 UWP 应用的两个服务,一直在尝试安装 Windows 功能体验包中的 VCLib 依赖库,而 VCLib 依赖库是要通过 Microsoft Store 联网更新的,结果 LTSC 2021 根本没有 Microsoft Store 组件,于是 AppXSVC 和 ClipSVC 这两个服务陷入了死循环,导致了 CPU 占用率异常的问题。此外,新版本微软输入法的候选框也需要用到这个依赖库。

因此解决方案就是手动把这个运行库给安装上去就行了,首先下载 VCLib 依赖库。

若为 64 位系统,则下载含有 x64 字样的文件,将之移至 C 盘根目录,并打开 Windows Powershell(管理员),执行以下代码:

Add-AppxPackage -Path "C:\Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.Appx"

若为 32 位系统,则下载含有 x86 字样的文件,将之移至 C 盘根目录,并打开 Windows Powershell(管理员),执行以下代码:

Add-AppxPackage -Path "C:\Microsoft.VCLibs.140.00_14.0.30704.0_x86__8wekyb3d8bbwe.Appx"

安装完成后,问题就能得到解决。

创建虚拟机的快捷方式

Hyper-V 并没有提供创建虚拟机快捷方式的功能,虚拟机创建完成后,每次都要通过 Hyper-V 管理器打开虚拟机,稍微有些麻烦。但也可另辟蹊径,解决这个痛点。

首先要找到 vmconnect.exe 这个可执行文件的路径,其有可能在 C:\Windows\System32 下,也有可能在 C:\Program Files\Hyper-V 下,如若寻觅不得,可以通过 Powertoys 或者是 Everything 这类工具搜索。

右击将 vmconnect.exe 发送到桌面快捷方式,再右击这个快捷方式,选择高级-用管理员身份运行,并确认。

目标栏中追加键入 空格+localhost+空格+虚拟机名称,如原目标栏中为:

C:\Windows\System32\vmconnect.exe

则对应改为:

C:\Windows\System32\vmconnect.exe localhost 虚拟机名称

封面来源:莱茵生命 | Pencil #pixiv https://www.pixiv.net/artworks/75191358


Stay hungry, Stay foolish.