快轉到主要內容

如何用圖形化程式調整QEMU/KVM虛擬機的硬碟大小,開啟編輯qcow2檔

Linux系統 虛擬機與容器技術 QEMU
✍ 切換正體/簡體字
Ivon Huang
作者
Ivon Huang
目錄

我要調整一個Windows的QEMU/KVM虛擬機的容量大小。該虛擬機使用libvirt新增,虛擬硬碟以qcow2格式儲存。

為更輕鬆的調整硬碟分區,我以圖形程式Gparted操作,來增加/縮小qcow2大小。

以Ubuntu 22.04而言,要先安裝qemu-utils、Gparted

sudo apt-get install qemu-utils gparted ntfs-3g

1. 增加qcow2虛擬硬碟容量 #

  1. 找出qcow2位置,Libvirt所新增的虛擬機預設是位於/var/lib/libvirt/images
$ ls /var/lib/libvirt/images
windows11.qcow2
  1. qemu-img info指令確認容量
$ qemu-img info windows11.qcow2

image: windows11.qcow2
file format: qcow2
virtual size: 128 GiB (137438953472 bytes)
disk size: 112 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: true
    refcount bits: 16
    corrupt: false
    extended l2: false
Child node '/file':
    filename: windows11.qcow2
    protocol type: file
    file length: 128 GiB (137460187136 bytes)
    disk size: 112 GiB
  1. 如果有空間,先備份虛擬硬碟
sudo cp windows11.qcow2 windows11_old.qcow2
  1. 使用qemu-img resize增加容量
cd /var/lib/libvirt/images
sudo qemu-img resize windows11.qcow2 256G
# 或者用加的
sudo qemu-img resize windows11.qcow2 +128G
  1. 在那之後,開機進入Windows虛擬機,用磁碟工具「延伸磁碟區」的功能就完成擴容。

  2. 如果磁碟工具讀不到新分區,就得手動對虛擬硬碟的分區做進一步操作。將qcow2掛載為NBD網路硬碟:

sudo modprobe nbd max_part=10
sudo qemu-nbd -c /dev/nbd0 windows11.qcow2
  1. 以Gparted開啟
sudo gparted /dev/nbd0
  1. 這裡就可以用圖形界面編輯分區啦

  2. 例如將中間的磁區按右鍵,貼齊磁柱,拉到最右邊。再調整最大分區的拉桿,將空白的磁區填滿。這樣移的話會讓qcow2直接吃滿256GB的實體硬碟空間。按下綠色箭頭確認。

  3. 編輯完成後取消掛載

sudo qemu-nbd -d /dev/nbd0
  1. qemu-img info windows11.qcow2確認擴充後的大小。

2. 縮小qcow2虛擬硬碟容量 #

本節步驟跟上節類似,不過過程是反過來。縮小硬碟可能會造成資料損失,且磁區後方必須是未使用磁區。

  1. 如果有空間,先備份虛擬硬碟
sudo cp windows11.qcow2 windows11_old.qcow2
  1. 掛載qcow2為NBD網路硬碟
sudo modprobe nbd max_part=10
sudo qemu-nbd -c /dev/nbd0 windows11.qcow2
  1. 以Gparted開啟掛載的硬碟
sudo gparted /dev/nbd0
  1. 拉動拉桿,將磁區縮小,最後方多出的灰色未使用磁區即為可縮小的範圍,按下綠色箭頭儲存

  2. 編輯好之後,才用qemu-img shrink縮小qcow2大小

sudo qemu-img resize windows11.qcow2 --shrink -128G
  1. qemu-img info windows11.qcow2確認縮小後的大小。

參考資料 #

相關文章

如何用QEMU在x86電腦模擬ARM版樹莓派系統,虛擬機跑Raspberry Pi OS
Linux系統 虛擬機與容器技術 QEMU Raspberry Pi
QEMU/KVM虛擬機設定靜態IP + 透過SSHFS與Host OS共享資料夾
Linux系統 虛擬機與容器技術 QEMU
Linux系統Intel內顯直通給QEMU/KVM虛擬機的方法,不採用GVT-g
Linux系統 虛擬機與容器技術 Arch Linux QEMU

留言板

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

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

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