Windows執行個體某些操作依賴於鏡像的virtio驅動版本,例如,線上擴容雲端硬碟要求virtio驅動版本大於58011
(建立時間早於2019年03月30日的執行個體virtio版本可能不滿足要求),而查詢雲端硬碟序號則要求virtio驅動版本大於58017
(建立時間早於2020年05月01日的執行個體virtio版本可能不滿足要求)。如果當前執行個體的virtio驅動版本不滿足要求,則需要先更新驅動版本。本文介紹如何查看並更新Windows執行個體的virtio驅動版本。
使用限制
僅支援為Windows Server 2008及以上版本的作業系統更新virtio驅動。
操作步驟
步驟一:檢查virtio驅動
(可選)建立快照備份資料。
建議您為Windows執行個體建立快照備份資料,以便在更新virtio驅動時出現異常時可以復原資料。具體操作,請參見建立快照。
關閉第三方殺毒軟體。
為確保virtio驅動的更新順利進行,建議您臨時關閉已安裝的第三方殺毒軟體(執行個體內建的殺毒軟體無需關閉)。更新完成後,請及時重啟殺毒軟體。
查看當前執行個體的virtio驅動版本,根據情境判斷是否需要更新virtio驅動。
通過PowerShell查看
遠端連線Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
開啟運行對話方塊,輸入powershell進入PowerShell命令列。
運行以下命令,查看virtio驅動的版本資訊。
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Windows\System32\drivers\viostor.sys")
說明viostor.sys
是一個與虛擬化環境存放裝置驅動相關的系統檔案,特別是用於Microsoft Hyper-V虛擬機器上的虛擬磁碟控制器。當一個作業系統在Hyper-V平台上作為虛擬機器運行時,viostor.sys驅動會與主機的虛擬化層協同工作,確保客戶機作業系統能夠像操作物理硬碟一樣對虛擬硬碟進行讀寫操作。它是確保虛擬機器磁碟I/O效能和相容性的重要組件之一。命令列回顯資訊如下圖所示。
根據ProductVersion末尾編號是否小於
58011
或58017
,判斷是否需要更新驅動。操作環境
virtio版本
操作
線上擴容雲端硬碟
大於等於58011
可以直接線上擴容雲端硬碟,無需更新virtio驅動。具體操作,請參見步驟一:擴容雲端硬碟容量。
小於58011
無法線上擴容,需繼續執行後續操作步驟二:更新virtio驅動。
查詢序號
大於等於58017
可以直接查看磁碟序號,無需更新virtio驅動。具體操作,請參見查看Block Storage序號。
小於58017
無法直接查詢序號,需繼續執行後續操作步驟二:更新virtio驅動。
通過系統檔案查看
遠端連線Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
進入系統目錄C:\Windows\System32\drivers。
按右鍵viostor.sys檔案,選擇屬性,在詳細資料頁簽下查看檔案版本號碼。
說明viostor.sys
是一個與虛擬化環境存放裝置驅動相關的系統檔案,特別是用於Microsoft Hyper-V虛擬機器上的虛擬磁碟控制器。當一個作業系統在Hyper-V平台上作為虛擬機器運行時,viostor.sys驅動會與主機的虛擬化層協同工作,確保客戶機作業系統能夠像操作物理硬碟一樣對虛擬硬碟進行讀寫操作。它是確保虛擬機器磁碟I/O效能和相容性的重要組件之一。根據檔案版本末尾編號是否小於
58011
或58017
,判斷是否需要更新驅動。操作環境
virtio版本
操作
線上擴容雲端硬碟
大於等於58011
可以直接線上擴容雲端硬碟,無需更新virtio驅動。具體操作,請參見步驟一:擴容雲端硬碟容量。
小於58011
無法線上擴容,需繼續執行後續操作步驟二:更新virtio驅動。
查詢序號
大於等於58017
可以直接查看磁碟序號,無需更新virtio驅動。具體操作,請參見查看Block Storage序號。
小於58017
無法直接查詢序號,需繼續執行後續操作步驟二:更新virtio驅動。
說明您也可以登入Security Center控制台,在漏洞公告列表中查看是否存在Windows virtio驅動BUG導致磁碟資料丟失風險更新漏洞,來判斷是否需要更新virtio驅動。
如果不存在該漏洞公告,說明您的阿里雲帳號下沒有需要更新virtio驅動的Windows執行個體,無需再執行後續更新驅動操作。
如果存在該漏洞公告:
如果您的Security Center版本支援檢測並一鍵修複漏洞,按照介面提示修複漏洞即可,無需再執行後續更新驅動操作。更多資訊,請參見查看和處理漏洞。
如果您的Security Center版本僅支援檢測漏洞,但不支援修複漏洞,您需要繼續執行後續操作步驟二:更新virtio驅動。
步驟二:更新virtio驅動
在手動更新virtio驅動時,涉及到網卡驅動的更新,這將導致短暫的網路中斷,可能對業務造成影響,因此請提前做好相應的準備。
您可以根據實際情況,選擇以下任一方式手動更新virtio驅動:
使用指令碼更新(執行個體可以訪問公網)
如果您的Windows執行個體能夠訪問公網,可以通過該方式快速更新virtio驅動。
遠端連線Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
開啟運行對話方塊,輸入powershell進入PowerShell命令列。
說明如果您當前Windows執行個體的登入使用者為普通使用者,需要以管理員權限執行指令碼。如果是系統使用者,則可以直接執行指令碼。
如果您在手動執行指令碼時,系統提示您禁止執行指令碼,則需要您先修改PowerShell的指令碼執行策略。具體操作,請參見PowerShell中禁止運行指令碼怎麼辦?。
運行以下命令,下載指令碼:
Invoke-WebRequest -Uri "https://windows-driver-cn-beijing.oss-cn-beijing.aliyuncs.com/virtio/InstallVirtIo.ps1" -OutFile "C:\Users\Administrator\Downloads\InstallVirtIo.ps1"
運行以下命令,執行指令碼。
powershell -ExecutionPolicy Bypass -File "C:\Users\Administrator\Downloads\InstallVirtIo.ps1"
指令碼執行完成後,重啟Windows執行個體使驅動更新生效。
具體操作,請參見重啟執行個體。
通過安裝封裝更新(執行個體不能訪問公網)
在本地主機上,根據實際的作業系統下載對應版本的virtio驅動安裝包。
下載地址:請參見安裝virtio驅動。
將安裝包上傳至Windows執行個體。
具體操作,請參見使用遠端桌面或Windows APP向Windows執行個體傳輸檔案。
在Windows執行個體中安裝新版virtio驅動。
安裝方法,請參見安裝virtio驅動。
通過雲助手更新(批次更新多台執行個體)
如果您有多台ECS執行個體需要更新virtio驅動,且Windows執行個體能夠訪問公網或者Virtual Private Cloud的內網,可以通過阿里雲的雲助手功能批次更新。
通過雲助手更新virtio驅動時,需要下載驅動相關的安裝包,系統會優先訪問VPC內網進行下載,如果VPC內網訪問受限導致下載失敗,系統再訪問公網進行下載。
登入ECS管理主控台。
在左側導覽列,選擇 。
在頂部功能表列,選擇地區。
選擇的地區需要與您的ECS執行個體所屬的地區保持一致。
使用雲助手批次更新驅動。
您可以通過雲助手手動設定命令內容,完成驅動更新,也可以通過雲助手的公用命令快速完成驅動更新。本文分別介紹不同的雲助手更新驅動方式。
(推薦)通過公用命令批次更新驅動
在ECS雲助手頁面,單擊公用命令頁簽,搜尋並執行
ACS-ECS-InstallVirtioDriver-windows.ps1
。在執行命令面板的選擇執行個體地區,選中需要更新驅動的執行個體ID。
手動設定命令內容批次更新驅動
在ECS雲助手頁面,單擊建立/執行命令。
在建立執行命令面板,完成以下配置。
在命令資訊地區,必填參數說明如下表所示,其他參數保持預設值即可。更多參數資訊,請參見建立並執行命令。
參數
說明
命令來源
選擇輸入命令內容。
命令類型
選擇PowerShell。
命令內容
以下任意一種方式均可完成virtio驅動的更新:
通過InstallVirtIo.ps1指令碼更新virtio驅動。
您需要在本地主機下載InstallVirtIo.ps1指令碼,然後將指令碼的內容完整複製到雲助手的命令內容中。
通過雲助手外掛程式更新virtio驅動。
將以下命令複製到雲助手的命令內容中。
acs-plugin-manager.exe --exec --plugin=UpdateVirtIo
執行計畫
選擇立即執行。
在選擇執行個體地區,選中需要更新驅動的執行個體ID,單擊執行。
查看命令執行結果。
您可以在命令執行結果頁簽查看命令的執行結果。執行結果資訊如下圖所示,表示該執行個體成功更新virtio驅動。
大量重啟多台Windows執行個體,使驅動更新生效。
具體操作,請參見重啟執行個體。
常見問題
相關文檔
如果需要線上擴容雲端硬碟,請參見步驟一:擴容雲端硬碟容量。
如果需要查詢磁碟序號,請參見查看Block Storage序號。