页首Html代码

返回顶部

win10在hyper-V下安装windows11 并且启用WSL2 和 WSA(安卓子系统)

起因

现在工作电脑是win10,还不太适合升级win11,但是想琢磨一下win11的 WSA (windows Subssytem For Android).
虽然国内不直接支持 安卓子系统,但是网上有办法离线安装.

为什么要用hyper-V下安装win11+wsa ?

今天看了下vmware新版本是 17 , 想着体验下,vmware17 都出了一个 vctl.exe 容器,跟docker类似,有点厉害。 podman 都还没琢磨, vmware vctl 容器就来了.

使用vmware17 安装了win11 ,速度 挺慢的,然后想着开wsl的时候,突然发现, 我主机已经开启 hyper-V + WSL2 , 这个时候vmware是不支持虚拟化的, 里面的操作系统,是无法再次开启虚拟化的,性能受限, 安装就很慢, 无法开启intel XT CPU虚拟化的. (除非关闭主机hyper-V和wsl2 但我不想)

所以想起了 hype-V 支持嵌套虚拟化, 查了一下, hyper-V 可以安装五层hyper-V 然后就卡的不要不要了.按说hyper-V 虚拟机里面的 应该跟外面的 level 一致的啊??? 算了,反正支持 2层 嵌套虚拟化 对于一般人也够用了.

hyper-V 安装win11 需要注意的地方

1 需要开启TPM2.0 以及 CPU 2核+ 内存4GB+
2 想要开启嵌套虚拟化 , 还需要额外的 使用 PS 来设置 Hyper-V的VM的虚拟化.

实际体验

  • 使用hyper-V 安装win11 , 速度快了很多, 的确微软自己的技术NB的很.
  • win11 使用本地账号的方式修改了, 要用 工作或学校账号, 加入域 这种方式登录.

参考链接

Get-Vm
Set-VMProcessor -VMName win11 -ExposeVirtualizationExtensions $true
Get-VMProcessor -VMName win11 | fl | findstr "ExposeVirtualizationExtensions"

==================================

PS C:\WINDOWS\system32> Get-Vm

Name  State CPUUsage(%) MemoryAssigned(M) Uptime   Status   Version
----  ----- ----------- ----------------- ------   ------   -------
win11 Off   0           0                 00:00:00 正常运行 9.0

PS C:\WINDOWS\system32> Get-VMProcessor -VMName win11 | fl


ResourcePoolName                             : Primordial
Count                                        : 1
CompatibilityForMigrationEnabled             : False
CompatibilityForOlderOperatingSystemsEnabled : False
HwThreadCountPerCore                         : 0
ExposeVirtualizationExtensions               : True
EnablePerfmonPmu                             : False
EnablePerfmonLbr                             : False
EnablePerfmonPebs                            : False
EnablePerfmonIpt                             : False
EnableLegacyApicMode                         : False
AllowACountMCount                            : True
Maximum                                      : 100
Reserve                                      : 0
RelativeWeight                               : 100
MaximumCountPerNumaNode                      : 6
MaximumCountPerNumaSocket                    : 1
EnableHostResourceProtection                 : False
OperationalStatus                            : {}
StatusDescription                            : {}
Name                                         : 处理器
Id                                           : Microsoft:67501139-8CA7-4D2B-895A-8D365C16D154\b637f346-6a0e-4dec-af52-b
                                               d70cb80a21d\0
VMId                                         : 67501139-8ca7-4d2b-895a-8d365c16d154
VMName                                       : win11
VMSnapshotId                                 : 00000000-0000-0000-0000-000000000000
VMSnapshotName                               :
CimSession                                   : CimSession: .
ComputerName                                 : QH-3FD31PC
IsDeleted                                    : False
VMCheckpointId                               : 00000000-0000-0000-0000-000000000000
VMCheckpointName                             :


PS C:\WINDOWS\system32> Set-VMProcessor -VMName win11 -ExposeVirtualizationExtensions $true


-----------
     

MAC 地址欺骗

为了通过两台虚拟交换机路由网络数据包,必须在第一级 (L1) 虚拟交换机上启用 MAC 地址欺骗。 使用以下 PowerShell 命令完成此操作。
PowerShell

Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On


网络地址转换 (NAT)

第二个选项依赖于网络地址转换 (NAT)。 此方法非常适合于无法使用 MAC 地址欺骗的情况,例如在公有云环境中。

首先,必须在主机虚拟机(“中间”虚拟机)中创建一个虚拟 NAT 交换机。 请注意,IP 地址仅作举例之用,会因环境不同有所差异:
PowerShell

New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24”

接下来,将 IP 地址分配给网络适配器:
PowerShell

Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24

每个嵌套的虚拟机必须分配有一个 IP 地址和网关。 请注意,网关 IP 必须指向上一步中的 NAT 适配器。 您可能想要分配 DNS 服务器:
PowerShell

Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.2 -DefaultGateway 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Netsh interface ip add dnsserver “vEthernet (VmNat)” address=<my DNS server>

微软黑科技-hyper-v虚拟机gpu虚拟化

最后总结一下hyper-v开启gpu虚拟化的步骤:

1.管理员模式运行powershell

2.$vm = "我的虚拟机名字"

3.Add-VMGpuPartitionAdapter -VMName $vm

4.Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000

5.Set-VM -GuestControlledCacheTypes $true -VMName $vm

6.Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm

7.Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm

8.虚拟机开机,从主机上复制C:\Windows\System32\DriverStore\FileRepository目录到虚拟机C:\Windows\System32\HostDriverStore\

此时虚拟机上看到是这样的目录结构:C:\Windows\System32\HostDriverStore\FileRepository

备注:HostDriverStore这个目录要自己创建,FileRepository里面本质上只要有主机显卡驱动就可以了,这里偷懒直接复制整个目录,如果只想复制主机显卡驱动目录,可以通过设备管理器查看主机加载的显卡驱动目录

9.重启虚拟机,查看虚拟机设备管理器显卡,运行dxdiag查看显卡特性


微软黑科技-hyper-v虚拟机gpu虚拟化
https://zhuanlan.zhihu.com/p/332032649


posted @ 2023-06-08 21:44  ayanmw  阅读(1098)  评论(0编辑  收藏  举报

页脚Html代码