將現有Win10 VM升級到Win11 - Linux

Erin avatar
By Erin
at 2021-10-07T10:55

Table of Contents

前天M$正式發佈了Windows 11,雖然可能有些在很早之前的Preview版都知道怎麼操作

不過還是來分享一下怎麼把現有的Win10 VM在不重灌的情況下升級成Win11



目前大多數人都知道要升級成Win11,必須先滿足兩個條件
1. BIOS必須啟動並且OS已經是處在Secure Boot模式
2. 必須具備TPM,並且至少得是2.0版本


基於上述兩個需求,原Win10 VM也必須是在當初以UEFI模式安裝系統的情況下才可升級
當然網路上也可以查到怎麼樣不重灌從Legacy BIOS改成UEFI開機的方法
不過這不在本篇要介紹的範圍



1. 更新KVM相關驅動

VirtIO相關的Windows驅動在之前都是沒有經過WHQL認證的,這在Secure Boot上會有問題

不過最新的穩定版VirtIO驅動(0.1.208+)已經都有了WHQL認證

因此第一步是先更新這些驅動到最新版



2. 替換成支援Secure Boot的OVMF檔案

再來只要把現有的OVMF檔案換成secboot類型的即可

由於Win11的安裝ISO還有升級小幫手並不會偵測系統是否處在Secure Boot狀態

所以我們只要確保OVMF有Secure Boot功能即可,並不一定需要去啟用它

但有一點要留意,有些Linux distro所推送的OVMF_Sec並不會包含M$的簽章

目前知道的是Fedora與Ubuntu官方repo所提供的OVMF_Sec都已經包含簽章

其他的比如ArchLinux是沒有包含的,需要另外從其他distro上找



確定OK後,就可以直接替換檔案,方法是直接編輯VM的XML

把<loader>中的OVMF_CODE.fd改成OVMF_CODE.secboot.fd即可

另外除非你想要重置VM成啟用Secure Boot狀態,否則不需要去動xxx_VARS.fd

(xxx=VM名稱)

如果想啟用Secure Boot,則必須再做額外兩個修改

a. 將原先載入OVMF_CODE.secboot.fd的loader加入secure='yes'參數,變成:

<loader readonly='yes' type='pflash' secure='yes'>/path/of/OVMF_CODE.secboot.fd
</loader>

b. 找到OVMF_VARS.secboot.fd然後覆蓋掉原本的xxx_VARS.fd



3. 增加CPU features參數

之後還需要在XML內的<features>增加一個參數進去

<smm state='on'/>

加入後就像這樣 https://i.imgur.com/nmWHL3P.png



4. 加入TPM

TPM有兩種加入方式,一個是直接用KVM模擬的TPM,另一個是直接passthrough

後者的優點是日後比較不會遇到相容性問題,缺點是只能給一個VM使用

而且必須要先進BIOS清除前一筆TPM資料(如果有的話)


先講模擬TPM,KVM支援兩種模擬方式,分別是CRB及TIS

CRB僅支援TPM 2.0、TIS則支援大多數TPM版本


首先必須先安裝swtpm這個套件才可以使用模擬TPM,Fedora及Arch預設的repo可直接安裝

Ubuntu/Debian則要找第三方來源

裝好後,直接透過virt-manager或者是修改XML的方式加入:

<tpm module='tpm-crb'>
<backend type='emulator' version='2.0'/>
</tpm>


如果在使用CRB的情況下出現以下錯誤,則可以改用TIS試試

"qemu-system-x86_64: Requested buffer size of 3968 is smaller than host TPM's
fixed buffer size of 4096"



若要使用硬體TPM,在從BIOS啟用TPM功能後(AMD fTPM或是Intel PTT)

先看一下是否有在/dev內出現tpm0這個device

之後編輯XML加入TPM:

<tpm module='tpm-tis'>
<backend type='passthrough'>
<device path='/dev/tpm0'/>
</backend>
</tpm>








驅動、Secure Boot、與TPM都搞定後,便可以進到Win10 VM用M$的檢測工具

或者是Win11升級小幫手驗證是否可以升級

這些變動沒辦法改變原先Windows Update的判定狀態,所以沒辦直接用其升級

不過只要升級小幫手判定OK就可以直接做升級了

昨天經過這些修改後升級成功,目前VM內的系統已經是Win11



雖然用處不算大,還是給各位做一個參考

--
https://i.imgur.com/paUBacY.png
https://i.imgur.com/vsJ0Suy.png

--
Tags: Linux

All Comments

Elvira avatar
By Elvira
at 2021-10-10T03:09
錯板(誤
Sierra Rose avatar
By Sierra Rose
at 2021-10-12T19:23
我的NB沒TPM,要升win11只能活在VM中
Wallis avatar
By Wallis
at 2021-10-15T11:36
珍惜不會自動更新的Win7P VM,所以不升級 XD
Emma avatar
By Emma
at 2021-10-18T03:50
感覺應該轉去微軟版XD
Genevieve avatar
By Genevieve
at 2021-10-20T20:03
感謝分享 但 若非工作上 離不開office
Robert avatar
By Robert
at 2021-10-23T12:17
我真的完全不想用 windows
Anthony avatar
By Anthony
at 2021-10-26T04:31
(安慰樓上)還好我公司用的是office 365,勉強可以用瀏
覽器用office,運氣比你好一些
Ethan avatar
By Ethan
at 2021-10-28T20:44
WPS可以取代office嗎?自己只有拿來做ppt跟簡單excel
圖表,比libreoffice順暢很多,介面跟微軟幾乎一樣
Andy avatar
By Andy
at 2021-10-31T12:58
no

如何在Dolphin顯示heic縮圖

Olive avatar
By Olive
at 2021-10-05T23:38
桌面環境 KDE Plasma 5.22.5 已安裝kdegraphics-thumbnailers 目前Dolphin能夠正常顯示jpg,PNG以及影片檔案的縮圖,但heic圖檔還是無法顯示縮圖 請問如何在Dolphin中顯示heic圖片的縮圖? 謝謝 - ...

請問 Fedora 和 Arch 的選擇

George avatar
By George
at 2021-10-02T11:39
各位大哥好,小弟我使用 Arch 已經有一段時間, 最近對於原生的 Gnome 41 與她的軟體有點迷戀, 想用最新的 Gnome 41 軟體,想請問各位的意見。 撇除 beta 版,哪家最快升級 Gnome 41 的套件? rpmfusion 是否可代替 Arch AUR 使用需求條件? 像我 AUR 有 ...

Debian echo 'hello' >> file.txt 問題

Noah avatar
By Noah
at 2021-10-02T11:11
各位前輩好,標題寫得沒有很清楚問題的內容, 我想從 Ubuntu 跳到 Debian 系統, 按照網路上安裝教學,安裝了沒有桌面環境系統。 跟 ubuntu 不同的點是預設沒有 sudo , 必須使用 su 登入 root 才能操作先前的 sudo 指令。 以下是問題內容: 我想寫一個 shell 腳本 ...

let's encrypt過期啦

Jack avatar
By Jack
at 2021-10-01T22:10
TL;DR; $ sudo sed -i and#39;s/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/gand#39; /etc/ca-certificates.conf $ sudo update-ca-certificates h ...

讓連上Hotspot的裝置能在區網看到

Quintina avatar
By Quintina
at 2021-10-01T12:48
乳題 想要讓連上ubuntu電腦開的熱點的裝置能被其他連上區網的電腦看到 目前自己有兩台桌機,一台win10,一台Ubuntu2004LTS 網路是自己各遷兩條線接到房東的wifi router上(因為收訊太差) Ubuntu有額外裝一張pcie無線網卡PCE-AX58BT,主要是開熱點功能讓手機連網 ...