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

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的掛載位置
1
2
3
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. 確認沒有重要東西後,取消掛載
1
umount /run/media/ivon/A4EC-C8C5

2. 將QCOW2寫入至硬碟

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

  1. 找到qcow2所在的目錄,開啟終端機,將qcow2轉換成raw格式並寫入HDD。轉換過程會顯示百分比進度。
1
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


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。要討論程式碼請用Giscus,匿名討論請用Disqus。

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

這是Disqus留言板,您可能會看到Disqus投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。