Benutzer-Werkzeuge

Webseiten-Werkzeuge


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki