惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
量子位
B
Blog
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
T
The Exploit Database - CXSecurity.com
N
News | PayPal Newsroom
Cloudbric
Cloudbric
A
About on SuperTechFans
AI
AI
Hacker News: Ask HN
Hacker News: Ask HN
S
Schneier on Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
T
The Blog of Author Tim Ferriss
Simon Willison's Weblog
Simon Willison's Weblog
有赞技术团队
有赞技术团队
H
Heimdal Security Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
D
Docker
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic
IT之家
IT之家
Know Your Adversary
Know Your Adversary
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
B
Blog RSS Feed
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
博客园 - 叶小钗
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
The Hacker News
The Hacker News
Y
Y Combinator Blog
I
Intezer
The Register - Security
The Register - Security
F
Full Disclosure
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler

澄沨的漫游茶记

岁暮杂记 在 KOReader 上显示直排文本 虎落平阳:TNO 美国罗伯特·F·肯尼迪线·前篇 烟火·乙巳 蜀都行纪 实习日 事故小记 烟火·甲辰 藏地行纪 元旦杂记 浴火重生:TNO 东方红西北国防阵线党权线·后篇 太阳旗之下:TNO 东方红西北国防阵线党权线·前篇 尚在人间:TNO 乌克兰-苏维埃社会主义共和国线 上海电信 SDN 网关全局域网皆可收看 IPTV 的实现 论 AList 的滥用:多平台串联搭建个人影音-番剧流媒体服务 俄罗斯已逝:TNO 俄罗斯科米-神俄线·后篇 紫日高悬:TNO 俄罗斯科米-神俄线·前篇 The Pure WINDOWS Project: 使用 Windows Sandbox 隔离腾讯系软件的笔记 廣東手艺人:TNO 广东国索尼-长江实业线 使用 PaaS 服务部署 umami 统计工具的笔记 柏林春晓:TNO 德国施佩尔左线 闲话 COMICUP 与敝站 解决小米手机在 fastboot 模式下不被 Windows 识别的问题 贺正·癸卯 MIUI 下观看 Netflix 等流媒体时 Widevine DRM L1 认证失效之解决 崇明骑行纪事·合 磊哥小传 崇明骑行纪事·转 让 Hyper-V 虚拟机支持调用 USB 摄像头 崇明骑行纪事·起承 炎夏小憩 飞哥小传 さよなら、WordPress 使用 Cloudflare Workers 加速甲骨文存储桶 博客流浪纪事 moe-counter-cf:将萌萌计数器部署到 Cloudflare Workers 烟火·迪士尼 红十字救护员培训小记 迁移到了狗云 探索优雅纯粹的追番体验:蜜柑计划 + Resilio Sync Moe-counter: 给网站装上多种风格可选的萌萌计数器 疫情,在下的朋友圈拾遗 Postcrossing 初探小记 解决 Github 同步复刻上游仓库时冲突的问题 使用甲骨文免费云服务器搭建 frp 内网穿透工具的笔记 「在下」的两周年 The Pure MIUI Project: 小米 10 刷机笔记 烟火·壬寅 贝恩小传「大盛り」 非法侵入住宅罪之浅究 碧蓝航线舰娘原型考据「铁血驱逐篇」 贰拾 火警纪事 观 EDG 夺冠有感 华硕路由器实现远程唤醒局域网设备的笔记 军训随笔 夏日蓝调 在 Wordpress 博客里创建彩色标签云页面的笔记 贝恩小传 迁移到了 Bandwagon Host 杂诗二首 来给 WordPress 添加一个书单页面吧 乡影随摄 从刑法的报复主义论中国刑法的发展 漫谈二次元的「破圈」 浅谈「FBI WARNING」 とある魔都の ACGN 巡礼目録 桜色 在 WordPress 上添加 moc3 Live2d 看板娘的超简单方法 COVID-19 疫苗接种全纪录 Steam 转区小记 元旦 更新主题为 Sakurairo 华为 HarmonyOS / EMUI 安装 GMS 谷歌框架的笔记 下载没有下载权限的钉钉直播回放的笔记 Re:从零开始的 Windows 简明优化指南 Re:从零开始的计算机使用指南 使用 ADB 工具箱卸载手机预装应用 基于宝塔面板的 Google Drive 百宝箱搭建笔记 The Story of the Snake | 蛇纪事 参议院纪事 箱轮纪事
The Pure WINDOWS Project: Hyper-V 虚拟机使用笔记
澄沨 · 2022-02-11 · via 澄沨的漫游茶记

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

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

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

配置虚拟机

首先,需要准备一台电脑去 BIOS 检查是否打开了 CPU 虚拟化功能。

准备系统映像

前往 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. 新建一个文本文档,并输入如下代码

    1
    2
    3
    4
    5
    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 依赖库。

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 虚拟机名称