hyper-v虛擬機器使用教程

Python成长路發表於2024-10-31

原文連結: https://mp.weixin.qq.com/s/zNubQcNOePB7Y4AWfou0Yg

前言

從前幾年開始,我平時使用的虛擬機器就換成了hyper-v,當然PVE也會使用(作為伺服器掛機用,後面出個文章說下),VMware是完全拋棄不用了。

至於為什麼不用VMware,好像也沒啥理由,就感覺hyper-v使用更順手一點。我現在所有的工作都在虛擬機器裡操作,主機現在基本沒裝什麼軟體,這樣方便遷移和備份。

安裝

控制皮膚\程式\程式和功能中的啟用或關閉Windows功能裡勾選你需要的,說個小技巧,在檔案資源管理器輸入路徑回車後可以直接開啟這個介面

如果你只需要使用hyper-v的話勾選紅色的即可,我一般是將Linux子系統(WSL)和Windows沙盒一起勾選了。hyper-v用來跑Windows,WSL則是跑Linux(雖然hyper-v也能安裝Linux,但是實測下來不如WSL好用)。

勾選後等待安裝完成後會提示重啟(注意需要開啟Windows更新,如果之前禁用了Windows更新會失敗),重啟後就能在開始選單欄裡搜尋到一個Hyper-v管理器

如果是家庭版系統,需要使用powershell指令碼安裝,百度搜尋一下很多文章,基本都是一樣的指令碼內容。

操作

新建

快速建立這個沒用過, 我都用的第二個新建,下面簡單截圖一下流程:

指定代數這個選項我一般都選第二代,能選最新的就不選舊的。

分配的記憶體大小可以按需自己填寫,這個動態記憶體的勾我一般是不選的,因為我電腦記憶體是64G的,不會出現記憶體不夠的情況。

網路的話就選預設建立的網路,後面再細說一下怎麼設定網路橋接。

虛擬機器磁碟大小的話也是按需填寫,預設建立的磁碟是動態擴充套件的磁碟,也就是有多少檔案佔用多少空間,但是它有一個問題:當你刪除檔案時不會自動釋放空間,得你手動用powershell命令釋放空間。

所以我一般新建完虛擬機器後再新建一個固定大小的磁碟,將預設建立的磁碟替換掉,我很少用動態擴充套件型別的磁碟。

下一步選擇需要安裝的系統ISO映象檔案

建立完虛擬機器後先不著急啟動,先右鍵進入設定頁面,將檢查點關了,也可以調整一下cpu的核數。檢查點類似VMware的快照,可以恢復虛擬機器狀態。如果你需要的話可以先不關,但我覺得不太好用。

如果是安裝的win11則還需要勾選啟用受信任的平臺模組

接著就是啟動虛擬機器(右鍵連線然後點啟動),啟動的過程中需要按F2,可以狂點直到虛擬機器進去轉圈頁面。如果不按F2就會出現下面的錯誤介面

後面就跟正常安裝系統一樣了,就不多說了,沒有安裝完成的時候是無法全屏顯示。這是因為rdp服務還沒有正常啟動,hyper-v的增強服務其實就是rdp的封裝。

匯入匯出虛擬機器

需要先右鍵某個虛擬機器選擇匯出,然後才能在以後或者其他機器上匯入。如果是其他機器的Win11的虛擬機器,還需要同時匯入相關證書才能啟動。不然會出現The key protector could not be unwrapped的錯誤,這個遇到的時候自己百度下。

Hyper-v設定

這個沒什麼可說的,就設定下新建虛擬硬碟和虛擬機器預設儲存位置,其他設定我也沒用過。

虛擬網路交換機

這裡的外部就是橋接網路(可以選擇橋接哪個網路卡),內部是Nat網路,專用這個沒用過不知道是什麼。

要新增網路的話在虛擬機器設定裡網路介面卡切換網路,或者新增硬體在新增一個網路介面卡

編輯磁碟

這個編輯磁碟只能擴充套件磁碟空間,不能用於壓縮磁碟空間。如果需要壓縮磁碟大小隻能用powershell來操作,之前用過已經忘了怎麼操作了,到時候用到的時候再看

其他操作

即使沒開啟檢查點,也可以右鍵在執行的虛擬機器選擇儲存可以將當前執行的虛擬機器狀態儲存到磁碟檔案,下次直接啟動就會恢復。這個功能還挺好用的,比如我的筆記本中午太吵了,我就會先儲存虛擬機器,睡完午覺再啟動。

顯示卡共享

直接建立的虛擬機器無法使用主機顯示卡,需要一些特殊的操作才能讓虛擬機器共享主機顯示卡。

參考連結: https://blog.shigure.fun/laptop_gpu_hyperv/

總結來說總共就兩個步驟:

  1. 設定顯示卡共享
  2. 複製顯示卡驅動

設定顯示卡共享

先用管理員執行powershell執行(設定指令碼為寬鬆模式,不然執行不了指令碼):Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

將下面的儲存為gpu.ps1

# 虛擬機器名稱
$vm = "win10"
# 顯示卡的路徑
$gpu_path = "\\?\PCI#VEN_10DE&DEV_249D&SUBSYS_128C1043&REV_A1#4&29f08f2d&0&0009#{064092b3-625e-43bf-9eb5-dc845897dd59}\GPUPARAV"
# 移除原先設定的顯示卡,如果之前沒有設定會報錯,可以註釋掉
Remove-VMGpuPartitionAdapter -VMName $vm
# 設定顯示卡路徑
Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu_path

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

Set-VM -GuestControlledCacheTypes $true -VMName $vm
# 設定虛擬機器能使用的最小視訊記憶體
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
# 設定虛擬機器能使用的最大視訊記憶體
Set-VM -HighMemoryMappedIoSpace 32GB –VMName $vm

顯示卡的路徑可以透過Get-VMPartitionableGpuGet-VMHostPartitionableGpu檢視(Name欄位),如果有多個顯示卡,不知道是哪個的話可以在裝置管理器裡硬體Id看,

顯示卡共享

顯示卡的驅動路徑也在裝置管理器裡的驅動程式詳細資訊裡看

主機驅動路徑(驅動大小大概1G多): C:\WINDOWS\System32\DriverStore\FileRepository\nvcvi.inf_amd64_3fb1ec653d065ff1

虛擬機器目錄(需要自己建立): C:\WINDOWS\System32\HostDriverStore\FileRepository

先將虛擬機器關機,然後雙擊虛擬機器的磁碟檔案將磁碟掛載到主機。將主機驅動整個資料夾複製到虛擬機器目錄裡,接下來複制宿主機中的 C:\Windows\System32\nvapi64.dll 到虛擬機器中的C:\Windows\System32

然後將掛載的磁碟分離後開啟虛擬機器就能在虛擬機器的裝置管理器看到顯示卡是正常工作的。這個在工作管理員不會顯示。

之前按其他文章設定出現顯示卡43錯誤,應該是沒有設定顯示卡路徑的原因。按上面給的那個文章的話顯示卡就正常工作。

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章