Import OVF/OVA, VMDK, qm importdisk¶
Objectif. Créer une VM Proxmox (VMID 101) à partir d'un export OVF/OVA ou d'un simple fichier disque VMDK, quand l'assistant d'import ESXi n'est pas utilisable : appliance d'éditeur, export reçu d'un tiers, hôte ESXi injoignable, disque isolé.
Quelle méthode pour quel fichier ?¶
| Vous avez… | Méthode | Commande |
|---|---|---|
Un fichier .ova |
Assistant d'import sur un stockage avec contenu Import | GUI |
Un .ovf + ses disques .vmdk |
qm importovf (crée la VM) |
qm importovf 101 srv.ovf ceph-vm |
Un ou plusieurs .vmdk, .qcow2, .raw, .vhdx |
VM vide + qm disk import |
qm disk import 101 srv.vmdk ceph-vm |
| Un disque à joindre à la création | Paramètre import-from |
qm set 101 --scsi0 ceph-vm:0,import-from=/chemin/srv.vmdk |
qm importdisk est l'ancien nom de qm disk import : c'est un alias, les deux fonctionnent. Le fichier source doit être dans un format lu par qemu-img.
Avant de toucher la prod
- Espace disponible pour le fichier source (zone de transit) et pour le disque importé :
df -h /var/lib/vz,pvesm status. - Export réalisé VM source éteinte, sans snapshot.
- Windows : pilotes VirtIO installés dans la source, ou prévoir un premier démarrage en SATA.
- VMID libre :
qm status 101doit répondre que la VM n'existe pas. - Copie des fichiers vers le nœud planifiée hors des heures de pointe (le transfert sature le lien).
Étapes¶
1. Déposer les fichiers¶
- Datacenter → Storage → sélectionner un stockage fichier (par exemple
local) → Edit → Content : ajouter Import. - Sous le nœud, cliquer sur ce stockage → onglet Import → Upload (fichier
.ovalocal) ou Download from URL.
2a. Importer un OVA/OVF¶
- Stockage
local→ onglet Import → sélectionnersrv.ova→ Import. - Onglet General : VMID 101, stockage cible
ceph-vm, bridgevmbr0. - Onglet Advanced : choisir un contrôleur SCSI (VirtIO SCSI single, ou VMware PVSCSI si l'invité n'a pas les pilotes VirtIO). Les OVF le définissent rarement, et le contrôleur par défaut ne démarre pas en UEFI.
- Resulting Config : relire, puis Import.
qm importovf 101 /var/lib/vz/import/srv.ovf ceph-vm --dryrun # affiche ce qui serait créé
qm importovf 101 /var/lib/vz/import/srv.ovf ceph-vm
# l'OVF ne fournit pas le réseau : à ajouter
qm set 101 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-single
qm set 101 --ostype l26 --agent enabled=1 # win11, win2k22… pour Windows
qm importovf reprend le nom, les cœurs, la mémoire et les disques du manifeste. Sur un stockage fichier, --format qcow2 choisit le format cible.
2b. Importer un disque VMDK isolé¶
# 1. VM vide (adapter bios/machine à la source : ovmf + efidisk si EFI)
qm create 101 --name srv-app01 --memory 8192 --cores 4 --cpu x86-64-v2-AES \
--scsihw virtio-scsi-single --net0 virtio,bridge=vmbr0 --ostype l26
# 2. Import : pointer le descripteur .vmdk (qui référence le -flat.vmdk)
qm disk import 101 /var/lib/vz/import/srv.vmdk ceph-vm
# -> le disque apparaît en unused0 (ceph-vm:vm-101-disk-0)
# 3. Attacher et rendre amorçable
qm set 101 --scsi0 ceph-vm:vm-101-disk-0,discard=on,iothread=1 --boot order=scsi0
Variante en une commande : qm disk import 101 srv.vmdk ceph-vm --target-disk scsi0.
Le paramètre --format (raw, qcow2, vmdk) ne s'applique qu'aux stockages fichier (répertoire, NFS). Sur Ceph RBD, ZFS ou LVM, le disque est toujours en raw.
Vérifications
qemu-img info /var/lib/vz/import/srv.vmdk # format détecté et taille virtuelle
qm config 101 | grep -E 'scsi0|boot|net0|bios'
pvesm list ceph-vm --vmid 101
scsi0 pointe sur ceph-vm:vm-101-disk-0, boot: order=scsi0, aucun unusedN oublié, taille du volume égale à la taille virtuelle donnée par qemu-img info. La VM démarre et l'agent répond (qm guest cmd 101 ping).
Rollback
Rien n'est modifié côté source. Supprimer la VM et ses disques : qm destroy 101 --purge. Puis libérer la zone de transit : rm /var/lib/vz/import/srv*.
Pièges vus en support
- Copier seulement le descripteur
.vmdk(quelques Ko) sans le fichier-flat.vmdkqu'il référence : l'import échoue. Copiez les deux et pointez le descripteur. - Fichier source mal identifié (VMDK compressé, extension trompeuse) : contrôlez toujours
qemu-img infoavant d'importer. - Disque importé resté en
unused0: la VM démarre sur « No bootable device ». - VM EFI créée en SeaBIOS : pas de démarrage. Ajoutez
--bios ovmf --efidisk0 ceph-vm:1,efitype=4met une machineq35. - Zone de transit
/var/lib/vzsur le disque système : un gros OVA remplit/et bloque le nœud. Utilisez un stockage dédié.
Quand ouvrir un ticket iTop
qemu-img ne reconnaît pas le format, import interrompu sans message clair, appliance d'éditeur qui ne démarre pas : P3. Joignez qemu-img info du fichier source, qm config 101 et le journal de la tâche.
Pour aller plus loin : Migrer depuis Hyper-V · qm(1) · Migrate to Proxmox VE