使用Hyper-V创建Windows虚拟机-笔记
Preface
WSL2(Windows Subsystem for Linux第二代)非常好用,我却没有使用,因为它仅有的一个缺点——需要开启Hyper-V。
最近不得不需要在Windows下使用Docker。不巧的是,Docker构建在大量Liunx内核特性之上,Windows并不存在这些特性,因此必须使用虚拟化技术才得以正常工作,最新版本的Docker Desktop for Windows需要启用Hyper-V。Hyper-V是Windows原生支持的功能,所以无需担心配置的繁琐与适配问题。
上文提到了开启HV后会导致许多不便,现在我选择了忍耐。既然为此付出了很小的代价,为何不折腾一下,随便玩玩呢?
Install Windows 11 on Hyper-V
Enable Hyper-V
首先,仅 Windows 10/11 Pro 及以上的版本支持开启HV,家庭版无法开启。网络上能找到强行开启的方法,但我强烈不建议使用这种方法。
在满足系统要求的设备上,搜索「启用或关闭Windows功能」,随后勾选 Hyper-V 选项,并确保子目录下Hyper-V管理工具、Hyper-V平台同样被勾选启用。点击「完成」后,重新启动计算机即可生效。
Fetch Windows ISO
推荐前往 MSDN, I Tell You 获取纯净的ISO镜像。由于我不希望原版 Windows 中存在的无用程序占用过多内存,我选择了精简版的 Windows 11.0.22622.586 Pro WorkStation (22H2 Tunnel)。下载自懒得勤快/2198,作者未知。
Create Virtual Machine
Win+R组合键打开「运行」窗口,输入virtmgmt.msc
打开 Hyper-V 管理器。图片展示了管理器的主页面。点击右侧、电脑名称下方的「新建」来创建一个虚拟机。
在「指定代数」步骤必须选择第2代。「安装选项」步骤指定系统ISO镜像。开启前,请确保「固件」选项卡中DVD驱动器处于最上方。其他选项暂时无需更改,在下文#满足Windows11最低标准内会详细说明。
Meet the lowest standard of Windows 11
由于Windows 11的最低限制,内存不得低于4096MB,磁盘空间不得低于64GB,否则无法进入安装程序。安装、OOBE完成后可自行降低配置。在管理工具右侧、虚拟机名称正下方点击「设置」按钮进入设置面板更改。
这一步骤非常重要,且极易忽略:
顺应Win11最低标准,需要启用TPM并调整CPU核心数。在安全选项卡中启用受信任的平台模块。随后在处理器选项卡中增加处理器核心数大于等于2。
Installation
启动虚拟机,正常情况下将直接进入安装程序。若出现以下界面,参考我的解决方案。
启动时不断点击F2,出现Press Any Key to Boot字样后点击虚拟机左上角按钮(Ctrl+Alt+Delete)呼出安装程序。
非常迷惑,我不清楚为什么点那个按钮就能呼出。本着能运行就无事发生的原则,我没有深究。
Skip Microsoft Account Experience
M$更新Win11后,要求登入Microsoft账号才可完成OOBE,且删除了跳过按钮,解决方案:
在账号/邮箱地址栏填写[email protected]
,密码随意填写(建议填写FUCKYOUMICROSOFT
),尝试登录后弹出账户密码错误次数过多,即可使用本地账户登录。
本方法未被证实是由M$预留的,所以在未来可能失效。
至此,Windows 11虚拟机安装完成。
Enjoy M$! Share love and peace to the world.
Share Files with VM
我使用SMB共享文件。其他可用选项:挂载虚拟磁盘、增强模式。
Random
仅作为个人记录。
https://github.com/LSPosed/MagiskOnWSALocal
Proxy Settings(Clash)
$WinNetIP=$(Get-NetIPAddress -InterfaceAlias 'vEthernet (WSL)' -AddressFamily IPV4)
adb connect 127.0.0.1:58526
adb shell settings put global http_proxy "$($WinNetIP.IPAddress):7890"
Enable Zygisk
https://github.com/LSPosed/LSPosed#download
接下来就是安装 Lsposed Manager,(因为WSA是没有拨号盘,无法通过拨号盘调出 Lsposed Manager),使用 adb shell 命令进入 shell 模式:
adb shell
redfin:/ $
在 Android 的 shell 中输入 su 提权,在弹出窗口允许 shell 的管理员权限申请:
redfin:/ $ su
redfin:/ # id
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0
进入 Lsposed 的目录复制 Lsposed manager 的 apk 文件并安装:、
redfin:/ # cp /data/adb/lspd/manager.apk /data/local/tmp/
redfin:/ # pm install /data/local/tmp/manager.apk
Success
出现 Success 则代表安装完成,在 Magisk 中重启安卓子系统即可使用 Lsposed。( Lsposed manager 管理器图标在 Windows 11 的开始菜单中)
Reference: https://www.morfans.cn/archives/3306
My WSL, WinOnWin Experience
太方便啦!
Differences between WSL1 and 2
- WSL 1 linux 系统调用翻译成 windows 系统调用,而WSL 2 使用了一个轻量级的、自动管理的VM。
- WSL 2 使用一个 VHD 虚拟磁盘文件存储,不能直接访问 Windows 文件。
- WSL 2 必须启用 Hyper-V。
比较功能
功能 | WSL 1 | WSL 2 |
---|---|---|
Windows 和 Linux 之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
与传统虚拟机相比,占用的资源量少 | ✅ | ✅ |
可以与当前版本的 VMware 和 VirtualBox 一起运行 | ✅ | ✅ |
托管 VM | ❌ | ✅ |
完整的 Linux 内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
跨 OS 文件系统的性能 | ✅ | ❌ |
My WSA Experience
WSA占用约2G内存。没有 Launcher,只能通过开始菜单的快捷方式进入应用,这一点与传统Android模拟器有很大区别,体验一般。
性能方面不错,跑分软件测试出的结果较为优秀。
ADB截屏不知道为什么只能截出来纯黑图片。