Packa upp Proxmox-backuper i macOS

8 Apr 2022

Homepod

Efter att ha dabbat runt lite med Proxmox på min lilla hemmaserver så tänkte jag gå tillbaka till VMware Esxi. Problemet var bara att jag inte hade kopior på de virtuella servrar jag körde under Proxmox utan endast backupfiler. Dessa skapas numera i ett komprimerat filformat som heter zst och för att kunna packa upp detta behöver man installera dem i macOS. Du gör det enklast med Homebrew:

brew install zstd

Detta gör att du sedan kan packa upp filerna så här:
unzstd vzdump-qemu-102-2022_03_10-12_28_58.vma.zst

Ok, nu har du en fil som har vma som filändelse. I mitt fall denna: vzdump-qemu-102-2022_03_10-12_28_58.vma

Vad gör man med den då? VMA är Proxmox egna format för backupfiler och verktyget finns endast för Linux. Då jag inte hade någon Linuxmaskin tillgänglig (förutom min laptop) så tänkte jag att det vore kul att kunna lösa detta på min Mac mini med macOS 12.3 “Monteray”. Efter en del sökande sprang jag på detta smarta verktyg, skrivet i Python, som faktiskt får jobbet gjort. Det förutsätter givetvis att du har Python installerat på din Mac (vilket du kan lösa med Homebrew om den saknas). Jag testade:

python /Users/joacim/vma-extractor/vma.py vzdump-qemu-102-2022_03_10-12_28_58.vma /Users/joacim/dump/102/

Notera att katalogen 102 skapas av scriptet. I denna finner vi följande:
joacim@mutant 102 % ls -lah<br /> total 268447088<br /> drwxr-xr-x 4 joacim staff 128B Apr 8 20:29 .<br /> drwxr-xr-x 12 joacim staff 384B Apr 8 20:29 ..<br /> -rw-r--r-- 1 joacim staff 128G Apr 8 20:45 drive-scsi0<br /> -rw-r--r-- 1 joacim staff 284B Apr 8 20:29 qemu-server.conf

Sweet! Då återstår “bara” att konvertera diskfilen till vmdk-formatet och sedan få in den i VMware Esxi. Hur gör man det då – jo, man börjar med att installera Qemu i macOS:

brew install qemu

Detta tar en stund så blanda en [GT][4] eller liknande och drick lagom långsamt.

Därefter kan du gå in i katalogen (se ovan) där diskfilen finns och konvertera den till vmdk:

qemu-img convert -f raw drive-scsi0 -O vmdk sklaffkom.vmdk

Detta tar också en stund, så ta och blanda en GT till. En stor en.

Efter att detta är klart laddar du upp vmdk-filen till ESXi-servern och konverterar filen till rätt format:
vmkfstools -i sklaffkom.vmdk sklaffkom/sklaffkom01.vmdk -d thin.
Notera att du måste navigera till katalogen där källfilen finns. Detta är under /vmfs/namn_på_datastore/.

Slutligen skapar du en ny VM och väljer där att lägga till en redan existerande disk. Räkna också med att nätverk och annat inte kommer fungera något vidare när du startar upp din virtuella server men beroende på operativsystem är detta oftast inte supersvårt att åtgärda. I värsta fall får du skapa en ny virtuell maskin med samma operativsystem och sedan montera disken du just konverterat som en andra disk och flytta över det data du vill till den virtuella maskin du just installerade.