快轉到主要內容

如何將Libvirt的QEMU虛擬機轉換複製到實體機器上

Linux系統 虛擬機與容器技術 Libvirt QEMU
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

Copy qemu image to physical hard drive.

自從換成Linux後,只有需要的時候才開Windows虛擬機處理事情。

使用Linux的QEMU虛擬機的好處就是KVM加持下性能比較好,虛擬機Windows需要時還可以直通顯示卡。用QCOW2當虛擬硬碟儲存Windows的系統檔案,重裝系統時設定虛擬機機器的開機設置就好了,此QCOW2可以製作許多副本。

那虛擬機有沒有可能複製、轉換到實體硬碟呢?QEMU還真的支援這種操作。

目前我的電腦有一個SSD安裝主要系統(openSUSE Tumbleweed),還有一個閒置的HDD,不如就來試試看把使用已久的Windows直接複製到HDD硬碟上吧,這樣就可以搞Linux/Windows雙重開機。

先不論Windows在HDD慢的要命的問題!XD

1. 確認HDD的掛載位置
#

  1. lsblk確認HDD的掛載位置
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 465.8G  0 disk
└─sda1   8:1    0 465.8G  0 part /run/media/ivon/A4EC-C8C5
  1. 確認沒有重要東西後,取消掛載
umount /run/media/ivon/A4EC-C8C5

2. 將QCOW2寫入至硬碟
#

我的QCOW2容量是64GB,Windows 10使用UEFI開機。要寫入的HDD則是500GB。注意寫入後系統容量仍只有64GB,要使用磁碟管理程式延伸磁碟區。

  1. 找到qcow2所在的目錄,開啟終端機,將qcow2轉換成raw格式並寫入HDD。轉換過程會顯示百分比進度。
sudo qemu-img convert -p -f qcow2 -O raw win10.img /dev/sdb
  1. 電腦重開機進BIOS,設定開機順序為HDD優先 (Windows Boot Manager)。

  2. 因為我的虛擬機沒有安裝virtio之類的驅動,所以幸運的話Windows會自動偵測硬體變更,並成功開機。

  3. 開機後解除安裝Spice Tools和QEMU daemon的程式,調整系統時間,接著讓Windows Update安裝更新。

  4. 開啟磁碟管理員,將多餘空間砍掉(recovery分區要用DISKPART砍)。

  5. 右鍵將Windows系統延伸磁碟區至未分配的空間上。

  6. 系統轉移到HDD後使用上沒異狀,但跟SSD速度相比,HDD開機真的要等幾分鐘後再操作,才不會lag。

參考資料
#

Move qcow2 image to physical hard drive - Unix & Linux Stack Exchange

相關文章

如何在ARM架構的裝置執行x86架構的Docker Image
Linux系統 虛擬機與容器技術 Docker QEMU User Mode
如何自架Whoogle搜尋引擎,防範隱私被Google搜尋窺探
Linux系統 Self-hosting自架 Search Engine Google Search
如何給Hugo + Netlify的網站加上Gitalk留言板
資訊科技 Hugo網站架設 Github Netlify

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。