Comment forcer l’arrêt d’une machine virtuelle qui ne répond plus sur Proxmox

Gérer une machine virtuelle bloquée sur Proxmox peut s’avérer très fastidieux. Parfois, les commandes `sudo` Reboot, Stop`sudo` ou ` Resetreset` restent inopérantes, comme si la machine virtuelle était invisible. Si vous avez déjà rencontré l’erreur : trying to acquire lock...TASK ERROR: can't lock file '/var/lock/qemu-server/lock-152.conf' - got timeout`false`, vous voyez de quoi je parle. Ce blocage est généralement dû à des opérations en cours (sauvegardes, clonages ou instantanés) qui ne se sont pas terminées correctement. La machine virtuelle reste bloquée, et les arrêts ou réinitialisations classiques sont impossibles. Cet article explore une solution de contournement et explique comment forcer le redémarrage en dernier recours. Attention : forcer le redémarrage peut entraîner une perte de données si vous n’êtes pas prudent.

Comment réparer une machine virtuelle non réactive/quasiment bloquée sous Proxmox

Méthode 1 : Utiliser les commandes de la console pour arrêter proprement

Voici la première chose à essayer. Cette # qm shutdown <vmid>commande agit comme une légère pression sur le bouton d’alimentation : elle envoie un signal ACPI demandant à la machine virtuelle de s’éteindre. Elle nécessite toutefois que l’ agent invité QEMU soit installé et en cours d’exécution dans la machine virtuelle. Sur certaines configurations, elle fonctionne parfaitement, mais sur certaines versions ou machines virtuelles mal configurées, elle peut se bloquer. Si cela se produit, passez aux méthodes suivantes.

Méthode 2 : Tentative de suppression manuelle du verrou de la machine virtuelle

Lorsqu’une machine virtuelle est bloquée par un verrou, le fichier de verrouillage lui-même peut toujours être présent. Vous pouvez essayer de supprimer le verrou manuellement avec :

# qm unlock <vmid>

Cette opération tente de déverrouiller le verrou. Si elle expire (ce qui est plus fréquent qu’on ne le pense), vous devrez supprimer le fichier de verrouillage directement depuis le terminal :

# rm -f /var/lock/qemu-server/lock-<vmid>.conf

Remplacez <vmid> par l’identifiant réel de votre machine virtuelle. Car, bien sûr, Linux se doit de compliquer les choses inutilement. Après avoir supprimé le verrou, essayez d’arrêter la machine virtuelle à nouveau # qm stop <vmid>. Pas de panique ! Si le verrou persiste, vérifiez les permissions du fichier et assurez-vous qu’aucun autre processus ne l’utilise actuellement.

Méthode 3 : Forcer l’arrêt de la machine virtuelle en interrompant le processus.

En dernier recours, vous pouvez arrêter directement le processus de la machine virtuelle. Commencez par identifier l’identifiant du processus (PID).Listez ensuite toutes les machines virtuelles :

# qm list

Vous verrez quelque chose comme ceci :

VMID | Status | PID 152 | running | 23549

Ou utilisez une approche plus ciblée pour trouver le PID :

# ps aux | grep "/usr/bin/kvm -id 152"

Ceci devrait afficher le processus, et dans la première colonne, vous verrez le PID. Ensuite, arrêtez-le avec :

# kill -9 23549

Remplacez 23549par le PID que vous avez trouvé. Attention : cette méthode brutale, comparable à débrancher brutalement un ordinateur, peut entraîner une corruption de données ou des problèmes de disque si vous n’êtes pas prudent. N’y recourez qu’en dernier recours et soyez prêt à assumer le risque de perte de données.

Option : Confirmer si l’agent invité QEMU est actif

Sur certaines configurations, des commandes comme celle-ci # qm agent <vmid> pingpermettent de vérifier si l’agent invité est actif. S’il n’est pas en cours d’exécution, certaines méthodes d’arrêt ne fonctionneront pas. Il est conseillé de vérifier au sein de la machine virtuelle si l’agent invité est installé et en cours d’exécution, notamment si vous souhaitez envoyer des signaux d’arrêt directement dans l’environnement de la machine virtuelle.

Souvent, l’arrêt ou le redémarrage échoue car l’agent ne répond pas ou est mal installé. Si la machine virtuelle est critique, installer ou réparer l’agent invité peut éviter bien des problèmes à l’avenir.

N’oubliez pas que, parfois, un redémarrage ou un arrêt forcé est la seule solution pour réveiller une machine virtuelle récalcitrante. Attention cependant : les arrêts forcés peuvent entraîner des problèmes de données si la machine virtuelle était en train d’écrire des données au moment précis.À utiliser avec parcimonie. Car, oui, la gestion des machines virtuelles n’est pas toujours aussi simple qu’il n’y paraît.

Résumé

  • Essayez # qm shutdown <vmid>d’abord, si l’agent invité est installé.
  • Si le fichier est verrouillé, utilisez # qm unlock <vmid>ou supprimez-le manuellement.
  • Dans le pire des cas, trouvez l’identifiant du processus # ps aux | grep "/usr/bin/kvm -id <vmid>"et terminez-le.
  • Vérifiez si l’agent invité QEMU est actif pour améliorer les chances d’un arrêt en douceur.

Conclure

Dépanner une machine virtuelle Proxmox bloquée ou figée peut être très frustrant, mais une combinaison de ces commandes permet généralement de résoudre le problème. Il est toujours préférable d’essayer d’abord les solutions douces, mais parfois, il faut recourir à des mesures plus radicales – pensez à faire une sauvegarde au préalable. Un peu de connaissance du système et quelques commandes shell suffisent parfois à sauver la situation. J’espère que cela permettra à certains de gagner du temps.