KVM
Qemu Image
Create New Image
qemu-img create -f qcow2 backing.qcow2 10G
Create Image From Backing File
qemu-img create -f qcow2 -b backing.qcow2 increment.qcow2
Merge Increment image to Backing File
將 increment image 整合進入 backing file。首先,了解 backing file 的路徑。
$ qemu-img info increment.qcow2
image: increment.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 19G
cluster_size: 65536
backing file: backing.qcow2
...
將 backing file 複製一份出來,因為最終會把 increment image 整合進入 backing file。
cp backing.qcow2 ToBeMerged.qcow2
qemu-img rebase -b ToBeMerged.qcow2 increment.qcow2
qemu-img commit increment.qcow2
Mount qcow2 image
ref. Mounting raw and qcow2 VM disk images
modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.qcow2
mount /dev/nbd0p1 /mnt/image
umount /mnt/image
qemu-nbd -d /dev/nbd0
Resize KVM Virtual Disk
ref.
- How to Resize a qcow2 Image and Filesystem with Virt-Resize : FATMIN
- How do you increase a KVM guest’s disk space?
Before you start,
- Backup your disk file
- Check if partitions are ext2/ext3/ext4
resize virutal disk
qemu-img resize old.img +20G
cp old.img new.img
check partition
sudo virt-filesystems --long --parts --blkdevs -h -a new.qcow2
Name Type MBR Size Parent
/dev/sda1 partition - 1.0M /dev/sda
/dev/sda2 partition - 1.0G /dev/sda
/dev/sda3 partition - 19G /dev/sda
/dev/sda device - 40G -
resize partition
virt-resize --expand /dev/sda3 old.qcow2 new.qcow2
verify partition
sudo virt-filesystems --long --parts --blkdevs -h -a new.qcow2
Name Type MBR Size Parent
/dev/sda1 partition - 1.0M /dev/sda
/dev/sda2 partition - 1.0G /dev/sda
/dev/sda3 partition - 39G /dev/sda
/dev/sda device - 40G -
USB
Boot from USB Image
image file from usb
sudo dd in=/dev/sdX out=/path/to/usb.img
use image file as harddrive
qemu-kvm -hda usb.img
Virt-builder - Build virtual machine images quickly
Install
sudo apt install libguestfs-tools
virt-builder -l
Usage
sudo virt-builder debian-10 --size 20G -o debian-10.raw --root-password disable --hostname usp --timezone Asia/Taipei --run ./post.sh
sudo qemu-img convert -c -O qcow2 debian-10.raw debian-10.qcow2
sudo qemu-img info debian-10.qcow2
Post-Install Script
post.sh
useradd -m -G sudo -s /bin/bash -U k100
echo k100:k100pass | chpasswd
apt install sudo
dpkg-reconfigure openssh-server
sed -i 's/ens2/ens3/' /etc/network/interfaces
dhclient ens3
VMWare
VMDK to QCOW2
qemu-img convert -O qcow2 zimbra-000001.vmdk zimbra.qcow2
QCOW2 to VMDK
qemu-img convert -O vmdk zimbra-000001.qcow2 zimbra.vmdk
Windows Guest
ref. Creating Windows virtual machines using virtIO drivers :: Fedora Docs Site
Direct download Latest virtio-win iso