unRaid 顯卡直通保母級教程, 從配置 BIOS 到安裝驅動一把梭

這篇長文是我在經過無數試錯已經在網上多次搜尋資料後總結出來的全套步驟. 如果你發現有任何錯誤, 歡迎在文末指正.

配置 BIOS

我在使用一台老舊的 Dell R720xd 機架式服務器, 教程應該作用於絕大多數的 Dell PowerEdge 系列. 關於如何升級主板固件以及配置 iDrac, 請見我的這篇博文.

开机按 F2 进入 Syetem Setup, 点击 System BIOS.

点击進入 Processor Settings, 確保 「虛擬化技術」打開.

保證 「Virtualization Technology」設為 Enabled

退回到上一步, 進入 「Integrated Devices」選單,打開 「SR-IOV Global Engine」, 關閉 「Memory Mapped I/O above 4GB」. (這個我也不知道為什麼要關, 但是開著好像會導致檢測不到顯卡. 你可以自己試驗一下.)

版載顯卡也就是 Embedded Video Controller

如果版載顯卡那一欄是灰色的, 說明主板並沒有監測到你的顯卡, 注意插在 x16 PCIE 槽上, 並且保證供電充足. 如果版載顯卡的選項是藍色的, 說明主板檢測到了, 如果後續出現衝突的話根據網上的一些教程可以關閉版載顯卡.

但是根據我的實際試驗, 無需關閉版載顯卡, 而且關閉之後會導致 Dell 服務器本身和 iDrac 控制台都沒有顯示, 要改設置看狀態都很麻煩. 所以版載顯卡開著就好.

順便一提, 我的 unRaid 是通過 BIOS 啟動的. 不知道有沒有影響, 但是反正我這麼設置是成功的.

配置完成之後 Save and Exit, 重啟.

配置 UnRaid

配置 PCI 直通

在上方的菜單點擊「工具」 – 「系統設備」, 等待一會後可以看到加載出來的 PCI 和 IOMMU 組列表.

Tools – System Devices

往下翻找到你的顯卡和附帶的聲卡, 勾選兩者並翻到底點擊確認.

如果你的顯卡和聲卡不在一組的話, 你的直通可能會出問題

點擊確認後你可能需要重啟設備來保存更改.

配置 VM 管理器

假設你的 UnRaid 服務器已經安裝完畢, 版本大於等於 6.10 並且陣列具有至少 100 GB 可用空間.

進入 「設置」 – 「虛擬機管理器」, 關閉虛擬機, 點擊應用.
打開右上角的 「高級視圖」, 禁用 PCIE ACS 覆蓋, 因為我們在創建虛擬機的時候一起 Passthrough 聲卡和顯卡, 因此用不著隔離設備.

PCIe ACS override set to Disabled

注意中間的 「默認 Windows VirtIO 驅動程序 ISO (可選)」, 那個一點都不是可選, 而是必須要選. 如果你還沒有下載, 在下拉框中選擇最新的下載就好, 這個很重要.

請選擇最新的 (最上面的版本) 下載

創建虛擬機

進入虛擬機管理器, 點擊 「添加虛擬機」, 選擇 「Windows 11」.

選擇 CPU 的時候, 注意以下幾點:

  1. 我們希望「成對」的選擇 CPU 核心, 超線程核心相互配對效率最高
  2. 並不是核心被虛擬機綁定後就無法同時給其他東西使用, 因此盡可能多勾選幾個核心
  3. 最上面留幾個核心給 unRaid 使用達到最佳效能
就像圖中這樣

機器請選擇 「Q35-6-2」, 或者其他 Q35 系列, BIOS 請選擇 「OVMF TPM」.

接著, 選擇操作系統 ISO 和 VirtIO ISO, 光盤總線保持原樣即可.
虛擬磁盤修改為你希望的大小, 建議 C 盤最多分配 100 G 即可, 軟件遊戲等安裝在後續劃分的 D 盤裡面, 方便管理空間. 因為一旦分配好空間之後, 虛擬磁盤文件大小會逐漸增加直到達到預設大小, 不管是擴容還是縮小都很費事.

虛擬磁盤類型請選擇 「qcow2」, qcow2 在縮減、擴容時更方便, qemu 的兼容係更高.
虛擬磁盤總線請選擇 virtIO, 下文會敘述如何安裝 virtIO 的驅動.

參考圖中配置

顯卡選擇 VNC 顯卡, 然後新建第二張顯卡選擇自己的硬件顯卡. 選擇 VNC 的原因是方便虛擬機的初始安裝直到進入系統, 同時選擇硬件顯卡的原因是方便 Windows 系統自動檢測並安裝好驅動.

同時選擇顯卡自帶的聲卡. 顯卡和聲卡需要一起直通否則可能出現問題.

這裡可以看到 unRaid 已經自動識別了我的 AMD 顯卡. 如果你的 unRaid 沒有顯示你的顯卡, 請檢查之前配置 BIOS 的步驟, 並嘗試關閉版載顯卡. 注意到我的 AMD 顯卡無需選擇 ROM BIOS, 但是如果你的顯卡是 Nvidia 的顯卡, 且不是 Quadro 系列, 那麼 Bad News, 你需要自己修改 ROM 並在這裡貼上去. (因為黃老闆不是很高興看到你沒有買他的換皮 Quadro 顯卡)

所以如果妳是 N 卡那麼恭喜你有工課要做了, 請依次觀看以下三個影片並做筆記.

不見圖, 請翻牆
不見圖, 請翻牆
不見圖, 請翻牆

這邊插一句: 想成為高級 unRaid 玩家請把 SpaceInvader One 的視頻逐個看一遍, 而且不建議快進. 因為他的視頻信息量真的巨高, 隨便跳一跳都可能跳過很多內容.

選擇創建並啟動虛擬機.

安裝 Windows

在顯卡上插上一個外置顯示器!
在進行下面所有的步驟前, 請確保你的顯卡連接了外置顯示器
主要的操作還是通過 VNC 進行, 並且在安裝好驅動前外置顯示器的顯示應該都是處於凍結狀態, 但是接上外置顯示器真的很重要, 請不要拿下來
關於這個的解釋請見文末的 「錯誤排查」 – 外置顯示器

啟動虛擬機後, 看到 「Press any key to boot from CD/DVD…」的提示後, 隨便按一個鍵從 ISO 啟動.
在要求輸入產品密鑰的一步, 點擊我沒有產品密鑰; 在 「你要執行何種類型的安裝」時, 點擊自定義.

你有很大概率卡在這一步, 沒有看到任何創建的虛擬硬碟. 這是因為安裝程式沒有載入 virtIO 驅動.

點擊加載驅動程序

點擊加載驅動程序, 並在 virtIO 光盤中定位到如下文件夾. (硬體架構與操作系統視情況而定) 點擊確定.

選擇後點擊確定

這個時候應該就刷出了需要安裝的驅動程式, 選定後點擊下一步.

選定後點擊下一步

這個時候硬碟應該能被正確識別了, 選擇後點擊下一步, 並等待 VM 安裝完成自動重啟.

出現了

配置 Windows

安裝 SPICE Guest 機驅動

走完安裝導引剛剛進入桌面的時候, 你可能會發現分辨率糊的一批, 網路也連不上.

安裝鼠標指的這個安裝包

在此電腦中打開我們創建虛擬機時選擇的 virtIO 驅動光碟, 然後打開安裝 virtio-win-guest tools, 會自動指引你完成安裝.

安裝完成後網路就能連上, 分辨率和操作體驗也會改善. 這樣就可以進行下一步了.

配置遠程訪問

我們現在遠程訪問的方法是通過 unRaid 虛擬顯卡的 VNC , 但是 VNC 只是暫時的, 我們在後續配置中會切換到直通的顯卡, VNC 也就失效了.

在 Windows 中定位到 設置 – 系統 – 遠程桌面, 並且開啟訪問權限.

電腦名稱請在系統 – 系統資訊處手動更改

隨後, 我們可以通過 Windows 自帶的遠程桌面程式或者 Mac 上的 Microsoft Remote Desktop 訪問 VM.

通過系統更新下載更新驅動

在執行此步驟前請確保你已經開啟了遠程訪問並已經嘗試過使用遠程範圍連接成功.

在安裝完成基本驅動後, 我們還有一些其他的重要驅動要安裝, 比方說直通的顯卡. 這些驅動使用 Windows 更新安裝比較保險, 一是 Windows 會自動選擇兼容的驅動防止藍屏等等, 二是 Windows 會自動重啟很方便.

進入 Windows 更新點擊檢查更新, 第一次等待的時間較長. 在出現更新名單後, 進入 Windows 更新 – 高級選項 – 查看可選更新, 這些就是你的額外硬體驅動. 全部勾選後點擊下載並安裝.

勾選你的額外硬體驅動

做好重啟的準備.

更改 VM 設置, 去除 VNC 虛擬顯卡

在上一步安裝更新並重啟後, 你很可能碰到重新啟動卡在轉圈圈的畫面上, 或者黑屏, 顯示不正常等等. 如果你能正常開機並檢測到驅動安裝好的顯卡, 那麼恭喜你, 你的 VNC 虛擬顯卡和直通的顯卡可以共存, 你可以跳過這一步了.

不過很常見的是 VNC 虛擬顯卡和安裝完驅動剛剛被檢測到的直通顯卡會衝突, 導致進不了系統, 這個時候我們就得移除 VNC 虛擬顯卡, 單靠直通的顯卡來提供圖形渲染.

你不能直接編輯虛擬機的設定!
當前版本的 unRaid 存在 BUG, 當你編輯一個已經存在的虛擬的配置文件, 會發生預期外的更改損壞配置文件. 因此我們只能刪掉配置文件重新創建.
具體原因、檢測你的版本是否存在 BUG 以及解決方案請見文末的 「錯誤排查」 – 「編輯虛擬設定」

圖片僅作示意

我們需要先停止, 然後刪除該虛擬機 (但是不要刪除虛擬硬碟文件), 然後重新創建. 重新創建的一切設定都和第一次的相同, 不同的是這次在圖形卡選項處我們只要勾選一張, 也就是我們直通的顯卡, 而不用勾選 VNC 了. 注意不要漏掉聲卡, 點擊保存, 啟動虛擬機.

如果外置顯示器上出現圖像並成功顯示登陸介面, 那麼顯卡就直通成功了!

去除 VNC 後, 我們便主要依靠遠程控制來操縱系統. 如果碰到問題, 可以在外置顯示器上查看狀況.

[可選] 下載顯卡官方驅動

下載官方驅動的前提是 Windows 更新已經裝完了所有能裝的基礎驅動, 像下面這樣.

安裝原廠顯卡驅動的原因是因為 Windows 更新安裝的驅動一般只保證能用, 不保證最新. 以及原廠的驅動一般還附帶其他的組件比方說官方超頻, 適當使用能提升遊戲體驗.

不是說非裝不可, 到這一步你的顯卡應該已經可以正常運行了, 不玩遊戲可以不裝

裝好之後, 可以通過 A 廠的官方軟體來了解自己顯卡的表現.

是不是很酷

[可選] 優化 Windows

添加網絡共享

在網絡中打開網絡發現, 然後選擇你的服務器, 可以看到 unRaid 的所有 SMB 共享, 然後右鍵點選映射網絡驅動器.

選否或者選是都無所謂

更好的遠程連接軟體

用 Windows 自帶的 RDP 共享剪貼板、打印機固然很香, 但是遊戲表現就差的沒譜了. 2D 遊戲普遍不超過 30 幀, 3D 鼠標驅動根本沒配置好只會原地打轉, 可玩性等於 0.

我推薦 Parsec 作為遠程連接軟體, Parsec 作為 Unity 旗下的一個項目, 支持硬件加速的遊戲 Stream, P2P 連接降低延遲, 局域網根本感受不到任何延遲, 不管是遊戲還是做開發, 都提供了沈浸式的體驗.

我個人體驗 Parsec 下來感覺非常不錯, 打大型 3A 遊戲手感很好. (我是鼠標, 但是它也支持遊戲手柄) Parsec 免費版允許自己和朋友遠程到一台機器. 遺憾的是免費版不支持多帳戶同時運行, 而支持的 Parsec Warp 或者 Parsec Team 需要收費.

優化電源管理

Windows 自帶的電源管理會自動讓系統睡眠, 或者暫停磁碟, 反正不是很符合作為服務器的定位.

打開控制面板 – 硬件和聲音 – 電源選項 – 管理電源按鈕的功能, 點擊 「更改當前不可用的設置」, 然後關掉啟用快速關機. 這個選項通常會導致硬件驅動不加載之類的奇奇怪怪的問題.

退回電源選項, 點擊 「更改當前不可用的設置」, 選擇 「高性能」, 點擊 「更改計劃的設置」, 將如圖兩個下拉框均改為 「從不」.

點擊更改高級電源設置, 將 「在此時間後關閉硬盤」設為 「Never」, 然後在 「USB 選擇性暫停設置」改為 「已禁用」, 點擊確定

關閉 Windows 索引功能

Windows 索引功能在後台運行很吃磁盤, 而我們實際上用不到這個功能.

Win + R 呼出執行, 輸入 services.msc 按 enter, 找到 Windows Search 並右鍵單機 – 屬性, 啟動類型選擇禁用, 點擊確定.

除了 Windows Search 以外, 你也可以考慮關掉其他雜七雜八的東西比方說 Windows Update

關閉磁盤整理計劃任務

在此電腦 – 右鍵點擊 C – 屬性 – 工具- 磁盤整理 – 改變設置, 取消勾選 「按計劃運行」, 確定, 關閉.

按照道理說 SSD 是不會有磁盤整理的, 但是誰知道 Windows 怎麼想, 所以還是關掉的好.

[可選] 添加新的虛擬硬碟

在建立虛擬的段落說過, C 盤的空間給夠最多到 100G 就好. 那我們想要將大型遊戲、影像、個人軟體儲存在 D 盤裡.

要創建一個新的虛擬磁碟, 我們先要刪掉現有的虛擬機配置文件, 然後新建虛擬機, 手動選擇之前的主要虛擬磁碟的位置然後添加一個 2nd 虛擬磁碟.

位置可以隨便選, 類型記得選 qcow2

創建, 進入系統, 打開磁盤管理, 點擊確定初始化剛剛識別到的磁盤.

右鍵單機 Windows 徽標呼出快捷選單

右鍵點選新建的磁碟, 選擇「新建簡單卷」, 並按照提示格式化新增卷.

按照提示格式化新加卷

打開此電腦, 刷新, 新添加的虛擬硬碟應該已經出現了.

錯誤排查

如何正確的更改虛擬機設置

比方說我想要加一個虛擬硬碟, 或者加一點內存, 我已經創建過虛擬機了, 我應該直接點擊編輯虛擬機設置並保存嗎?

答案是不行. 因為 unRaid 虛擬機管理器 (至少在我的版本) 有這個 Bug, 直接編輯虛擬機設置並保存會隨機更改一些你並不想要更改的設置, 比方說給你隨機加上或者去除一些虛擬 PCI 設備, 然後你就會有各種各樣奇奇怪怪的報錯出現.

我們可以做一個簡單的小實驗. 創建一個最簡單的 Debian 虛擬機, 如下圖設置:

最簡單的 Debian 虛擬機

創建好後先不要開機, 點擊編輯虛擬機, 點擊右上角改為 XML 視圖, COPY 虛擬機的 XML 並保存為 config.1.xml. 這是我們剛剛創建完成的虛擬機的初始 XML.

現在回到表單視圖, 什麼都不要改, 點擊保存. 然後再次點擊編輯, 改為 XML 視圖, 複製所有內容並保存為 config.2.xml. 這是我們 什麼都沒做 單單點擊保存後的 XML.

現在在終端輸入 diff config.1.xml config.2.xml, 猜猜看會發生什麼?

明明我們什麼都沒有做!

你沒看錯, 明明我們什麼都沒有改, unRaid 卻自己更改了一大堆不明所以的東西, 導致我們能工作的設置莫名奇妙的不能工作了.

所以如果我想要更改配置, 應該怎麼辦呢?

  • 1. 保留磁碟鏡像, 刪掉虛擬機配置, 從頭開始配置.

我們知道第一次 unRaid 為我們生成的配置肯定是沒錯的, 不然第一次我們是不會成功的. 那麼順著這個邏輯, 只要每次更改配置都是 「第一次配置」, 那肯定沒錯了吧!

選擇移除虛擬機, 不要移除磁碟

因此我們可以保留磁碟鏡像, 只移除虛擬機配置, 然後再創建一個, 加上你想要的更改, 啟動即可.

再次創建時磁碟鏡像記得選擇手動, 然後手動選擇虛擬機鏡像保存的路徑.

  • 2. 直接更改並保存 XML 文件

除了上述的方法, 你也可以直接修改 XML 文件並保存. 這樣保存的虛擬機配置保存時不會遭到 unRaid 的篡改.

但是這個方法需要讀者有一定的 QEMU 基礎, 因此不做過多贅述.

為什麼我需要在顯卡上插著外置顯示器

絕大部分顯卡 (Quadro 這些專門供服務器使用的除外) , 包括消費級的 A 卡 和 N 卡, 都只在有信號輸出的時候工作. 如果虛擬機開機的時候顯卡沒有監測到顯示器, 那麼這張卡根本就不會工作, 虛擬機也不會正常啟動.

原理很簡單, 對於消費級的顯卡來說, 你不插顯示器看個寂寞嘛! 因此它也不需要工作, 繼續待機就好.

但是對於我們的機器來說, 我們需要遠程訪問, 插著一個顯示器 24×7 只是為了開機根本無法接受. 如果你的顯卡支持虛擬出一個顯示器最好, 不過大概不支持.

這個時候你就需要一個 HDMI 顯卡欺騙器啦 (下圖僅作示意, 請自行上貓貓狗狗搜索)

溫馨提示: 不要上不熟悉的網店購物

這個玩意原先是礦工用來欺騙礦卡繞過算力鎖的, 現在正好可以為我們所用.

請跟我默念 礦工生小孩沒屁眼 生小孩沒屁眼 生小孩沒屁眼…

買一個插上就好啦 👌

虚拟机强制关机后无法正常开机?

本段更新于 2023 年 3 月 19 号

如果你在 Force Stop 虚拟机后碰到无法开机 (报 PCI Error) 的情况, 你可能是碰到了 A 卡的 Reset Bug, 通常你被迫将 Unraid 整个重启才能解决问题.

我刚刚看到了 Space Invader 的一个视频, 因为我现在已经不用 Unraid 做宿主机了 (我现在在用 Promox 做宿主机并将阵列卡直通给 Unraid), 讲解了如何解决这个问题, 我直接把视频贴在下面供大家参考.

Space Invader 的视频, 如果不见视频请翻墙

參考資料

Thumbnail: Motherboard by Giorgi Chlachidze
If using the image violates your rights, or there’s anything related to copyright laws, please contact me at [email protected], I will deal with them immediately.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *