討論如何備份QEMU/KVM虛擬機檔案。
Virt Manager所建立的虛擬機,預設會將虛擬硬碟映像檔放到/var/lib/libvirt/images
,這也就是Libvirt預設映像檔所在路徑。
如果電腦Linux系統要重裝,我們可以用最簡單暴力的方法備份:將虛擬機組態(.xml)和虛擬硬碟映像檔(.qcow2)複製到其他硬碟,未來就可以還原到新電腦。
這裡以備份Windows 11虛擬機為例子。在備份Windows虛擬機的時候,除了備份虛擬機組態與虛擬硬碟以外,還要記得備份EFI Variables。
1. 備份虛擬機#
先將虛擬機關機。
切換成root
su
- 列出虛擬機
virsh list --all
- 將"windows11"的虛擬機組態儲存為XML,備份到第二個硬碟,例如
/run/media/user/SSD2/
virsh dumpxml windows11 > /run/media/user/SSD2/windows11.xml
- 接著,備份虛擬機硬碟的qcow2檔案到
/run/media/user/SSD2/
cp /var/lib/libvirt/images/windows11.qcow2 /run/media/user/SSD2/windows11.qcow2
cp /usr/share/edk2/x64/OVMF_CODE.secboot.fd /run/media/user/SSD2/OVMF_CODE.secboot.fd
- 接著備份儲存EFI Variables的OVMF_VARS
cp /var/lib/libvirt/qemu/nvram/Windows11_VARS.fd /run/media/user/SSD2/Windows11_VARS.fd
2. 還原虛擬機#
- 若要還原虛擬機,先將虛擬硬碟移動至原本位置
/var/lib/libvirt/images/
su
cp /run/media/user/SSD2/windows11.qcow2 /var/lib/libvirt/images/windows11.qcow2
cp /run/media/user/SSD2/Windows11_VARS.fd /var/lib/libvirt/qemu/nvram/Windows11_VARS.fd
- 再按照備份的XML組態重新建立虛擬機
virsh define --file /run/media/user/SSD2/windows11.xml