封面来源:LANCET-2换装中 | 小黄鸡叽叽叽叽叽叽 #pixiv https://www.pixiv.net/artworks/88627175
国产软件,在下一向「哀其不幸,恨其不争」。然而,这样的软件大环境木已成舟,虽有千百数据隐私之风险,但亿万国民却不得不用。甚幸此局并非不可破,使用虚拟机大法,便可解之。
至于虚拟机种类之挑选,在下并没有做过多的犹豫,而是直接选择了 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 专业版用户,打开控制面板-程序与功能-启动或关闭 Windows 功能,在其中找到 Hyper-V,并将其勾选。
Windows 11 专业版用户还可以通过打开设置-应用-可选功能-更多 Windows 功能中找到 Hyper-V 并勾选。
而对于 Windows 家庭版用户,则无法直接开启此功能,但仍有方法:
新建一个文本文档,并输入如下代码
1
2
3
4
5pushd "%~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保存,并将其重命名为
Hyper-V.cmd
,注意文件扩展名需要变更为.cmd
。右击 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 依赖库。
x64 x86若为 64 位系统,则下载含有 x64 字样的文件,将之移至 C 盘根目录,并打开 Windows Powershell(管理员),执行以下代码:
1 | Add-AppxPackage -Path "C:\Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.Appx" |
若为 32 位系统,则下载含有 x86 字样的文件,将之移至 C 盘根目录,并打开 Windows Powershell(管理员),执行以下代码:
1 | 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 + 空格 + 虚拟机名称
,如原目标栏中为:
1 | C:\Windows\System32\vmconnect.exe |
则对应改为:
1 | C:\Windows\System32\vmconnect.exe localhost 虚拟机名称 |