linux:libvirt:vmhdd-sparseimg
LIBVIRT: Konvertieren von VMs auf physikalischen HDDs in QCOW2-Images
Script um VMs, die auf physikalischen Platten bzw. in einer Partition angelegt sind, zum Backup in ein QCOW2-Image umwandeln.
Das Script erwartet die zu bearbeitenden Partitionen als Parameter: ./cavtrans.sh 2 3 4
Im Script ist ein assoziatives Array, welches den Partitionen die entsprechenden Image-Namen zuordnet.
Stand: 2026-01-23
- cavtrans.sh
#!/bin/bash # vim: ts=4:sw=4 # # Batch um die VMs in den Partitionen der WD-Caviar in ein QCOW2-Image # nach /var/lib/libvirt/images zu transferieren, zwecks darauf folgendem # backup durch BORG # Device-Pfad zur WD-Caviar ist: /dev/disk/by-id/ata-WDC_WD1002FAEX-00Y9A0_WD-WCAW30645732 # -part1 ist btrfs --> /mnt/caviar # -part2 ist Linux Mint 22.3 Cinnamon # -part3 ist Linux Mint 22.3 Mate # -part4 ist Manjaro-Cinnamon # -part5 ist Manjaro-KDE # -part6 ist Windows 10 Enterprise # -part7 ist Windows 11 Enterprise DISK="/dev/disk/by-id/ata-WDC_WD1002FAEX-00Y9A0_WD-WCAW30645732" NBD_TARGET="/dev/nbd0" IMG_TARGET="/var/lib/libvirt/images/" declare -A PART_IMG PART_IMG[2]="mint-cinn-223.qcow2" PART_IMG[3]="mint-mate-223.qcow2" PART_IMG[4]="manjaro-cinnamon.qcow2" PART_IMG[5]="manjaro-kde.qcow2" PART_IMG[6]="win10ent.qcow2" PART_IMG[7]="win11ent.qcow2" #--- NBG kernelmodul laden um QEMU-Images/-Partionen zu mounten sudo modprobe nbd max_part=8 #--- Partionen laut Commandline verarbeiten for ARG in $*; do echo "Bearbeite Partition: $ARG Image: ${PART_IMG[$ARG]}" TARGET_PARTITION="$DISK-part$ARG" #--- Partition mit NBD-Device verbinden sudo qemu-nbd --connect $NBD_TARGET --format=raw $TARGET_PARTITION #--- Partition konvertieren sudo virt-sparsify --format raw --compress -o compression_type=zstd --convert qcow2 $NBD_TARGET $IMG_TARGET${PART_IMG[$ARG]} #--- Partition von NBD-Device trennen sudo qemu-nbd --disconnect $NBD_TARGET sudo chmod 666 $IMG_TARGET${PART_IMG[$ARG]} done #--- Kernelmodul entladen sudo rmmod nbd
linux/libvirt/vmhdd-sparseimg.txt · Zuletzt geändert: von hwehrs
