Partager via


Résoudre les problèmes de démarrage de machine virtuelle Linux Azure en raison d’un disque de système d’exploitation complet

S’applique à : ✔️ Machines virtuelles Linux

Dans certaines circonstances et configurations, un disque de système d’exploitation complet peut entraîner des problèmes de démarrage de machine virtuelle Linux Azure. Cet article fournit certaines causes et solutions pour les problèmes de démarrage.

Symptômes

Pendant les opérations système normales, si le disque du système d’exploitation ou les partitions système critiques sont saturés, les problèmes suivants peuvent se produire :

  • Une machine virtuelle s’arrête de façon inattendue.
  • Une machine virtuelle ne démarre pas correctement.

Conditions préalables

Pour résoudre les problèmes de démarrage et pour terminer les réparations du système, les exigences suivantes doivent être remplies :

  • Autorisations pour créer un instantané de disque ou utiliser des outils de sauvegarde et de restauration.

    Dans cet article, les données ou les disques sont modifiés. Par conséquent, la possibilité de rétablir la machine virtuelle à un état précédent est un composant essentiel de l’administration sécurisée du système.

  • Diagnostics de démarrage activés et configurés .

    La mise en place de cette configuration permet d’examiner ultérieurement le stockage du journal de la console et l’interaction avec l’interface de la console série de la machine virtuelle.

  • Autorisations de création d’une machine virtuelle au cas où une machine virtuelle de secours était nécessaire à tout moment.

  • Les autorisations de création, de détachement et d’attachement de disques en cas d’échange de disques sont requises.

Note

Toutes les exigences ne s’appliquent pas aux scénarios suivants.

Scénario 1 : la machine virtuelle s’arrête de façon inattendue et ne parvient pas à démarrer

De nombreuses pratiques de renforcement de la sécurité peuvent entraîner des difficultés dans la maintenance des systèmes. Si une erreur se produit lors de l’écriture dans le journal d’audit, une configuration courante exige que le système s’arrête immédiatement. Pour vérifier si ce scénario est la raison d’un arrêt du système, effectuez les actions suivantes :

  • Vérifiez les messages d’arrêt du système dans le journal de la console série.

    Si le système est démarré, un « démarrage du service d’audit de sécurité ... » message s’affiche. Ce message n’indique pas que le service a démarré. Au lieu de cela, la machine virtuelle passe immédiatement à l’arrêt, et un message « Power down » s’affiche. Si le système s’exécute et s’arrête de façon inattendue, la console série peut afficher un processus d’arrêt ordonné se terminant par un message « Power down ». Consultez les captures d’écran suivantes comme exemple :

    Capture d’écran du message « Démarrage du service d’audit de sécurité » dans la console série.

    Capture d’écran du message « Désactiver » dans la console série.

  • Montez le disque du système d’exploitation à l’aide de commandes de réparation de machine virtuelle az vm, d’une machine virtuelle de récupération manuelle ou d’un mode utilisateur unique. Examinez ensuite l’utilisation du disque à l’aide de l’outil df en ligne de commande et vérifiez si le disque contenant le répertoire /var/log/audit est proche de 100 %.

  • Accédez au système de fichiers du système d’exploitation à l’aide de commandes az vm repair, d’une machine virtuelle de récupération manuelle ou d’un mode utilisateur unique et vérifiez si le fichier /etc/audit/auditd.conf contient les configurations suivantes :

    [root@linux /]# grep action /etc/audit/auditd.conf
    admin_space_left_action = HALT
    disk_full_action = HALT
    disk_error_action = HALT
    

Résolution : désactiver temporairement la configuration d’HALT

Note

Si cette résolution ne fonctionne pas ou n’est pas appropriée pour votre environnement, accédez à la section Résolution .

Si la configuration auditée provoque l’arrêt du système lors des échecs de journal d’audit, la désactivation temporaire de la configuration permet à la HALT machine virtuelle de démarrer sur le système d’exploitation complet pour la correction.

Pour résoudre ce problème audité courant et plusieurs autres problèmes courants, exécutez l’extension az vm repair automatiquement dans Azure CLI à l’aide de l’action auditée dans l’outil ALAR (Azure Linux Automatic Repair). Pour effectuer la même procédure manuellement, procédez comme suit :

  1. Prenez un instantané du disque du système d’exploitation pour fournir un état de récupération.

  2. Accédez au fichier de configuration à l’aide de commandes az vm repair, d’une machine virtuelle de récupération manuelle ou d’un mode utilisateur unique.

  3. Notez la configuration actuelle, car l’espace peut ne pas être disponible pour sauvegarder le fichier dans la machine virtuelle.

  4. Remplacez les configurations précédentes dans le fichier /etc/audit/auditd.conf par HALT n’importe quelle autre valeur valide, à l’exception SINGLEde . Dans ce scénario, les valeurs peuvent être IGNORE, SUSPENDou toutes les autres valeurs répertoriées dans la page Linux man pour le fichier auditd.conf , ce qui donne les paramètres appropriés pour les versions de logiciels utilisées dans la machine virtuelle.

    [root@linux /]# grep action /etc/audit/auditd.conf
    admin_space_left_action = SUSPEND
    disk_full_action = SUSPEND
    disk_error_action = SUSPEND
    
  • Si vous utilisez une machine virtuelle de récupération, suivez les instructions de Démonter et détacher le disque dur virtuel d’origine pour échanger le disque du système d’exploitation vers la machine virtuelle problématique et essayez de démarrer la machine virtuelle normalement. Si vous utilisez le mode mono-utilisateur, quittez et redémarrez la machine virtuelle.

  • Une fois la machine virtuelle entièrement démarrée, parcourez le système de fichiers et libérez de l’espace à l’aide d’outils en ligne de commande tels que df et du. Environ 10 % du système de fichiers contenant le répertoire /var/log/audit doit être une bonne cible initiale.

Une fois le problème résolu, rétablissez le contenu du fichier /etc/audit/auditd.conf à leurs valeurs d’origine et redémarrez la machine virtuelle.

Scénario 2 : Le disque de machine virtuelle est redimensionné dans Azure, mais le système d’exploitation ne peut pas être redimensionné et la machine virtuelle ne démarre pas entièrement

Une fois qu’un disque complet est identifié et que la machine virtuelle a été arrêtée pour redimensionner le disque du système d’exploitation, la machine virtuelle risque de ne pas démarrer correctement. Ce scénario peut prêter à confusion sur certaines distributions où le système d’exploitation tente de redimensionner automatiquement le système de fichiers racine (/) lors du redémarrage. Si le disque est plein, l’opération de redimensionnement peut échouer, car le processus nécessite un espace libre pour développer le système de fichiers. L’absence d’espace libre peut entraîner l’échec de l’init cloud, puis la machine virtuelle ne termine pas le démarrage.

Pour identifier ce problème, passez en revue les journaux de démarrage dans la console série et vérifiez si les lignes qui ressemblent au texte suivant sont présentes :

[   15.384699] cloud-init[1142]: OSError: [Errno 28] No space left on device
[   15.384742] cloud-init[1142]: Original exception was:
[   15.384784] cloud-init[1142]: OSError: [Errno 28] No space left on device

Étant donné que les messages cloud-init spécifiques peuvent ne pas être le message le plus visible retourné, recherchez d’autres lignes contenant le texte « [Errno 28] Aucun espace laissé sur l’appareil » ou des messages « aucun espace » similaires.

Pour résoudre ce problème, effacez les données inutiles pour libérer une petite quantité d’espace disque, puis développez le système de fichiers.

Scénario 3 : Démarrages de machine virtuelle mais inaccessibles en raison d’échecs de service

Une machine virtuelle qui semble démarrer complètement peut avoir les problèmes suivants :

  • Les problèmes de service se produisent pendant le démarrage.
  • L’agent Azure n’apparaît peut-être pas disponible.
  • Les connexions à la machine virtuelle peuvent échouer.
  • La machine virtuelle peut sembler hors connexion en fonction des applications.

Pendant le démarrage, plusieurs messages tels que « [Errno 28] Aucun espace laissé sur l’appareil » ou d’autres types de messages indiquent que le système de fichiers racine est plein.

Si une machine virtuelle démarre mais n’apparaît pas disponible, vérifiez le journal série dans les diagnostics de démarrage pour afficher les messages de démarrage ou utilisez la console série pour interagir avec la machine virtuelle. Si l’espace est insuffisant, effacez les données inutiles pour libérer de l’espace ou développer les disques.

Si le journal de la console contient de nombreux messages indiquant « ERROR ExtHandler /proc/net/route ne contient aucun itinéraire », un disque de système d’exploitation complet peut également être la cause, car les services réseau ne peuvent pas démarrer complètement.

Résolution

Les résolutions suivantes s’appliquent à l’un des scénarios précédents.

Résolution 1 : Effacer les données inutiles

  1. Accédez aux disques et partitions du système d’exploitation à l’aide de commandes az vm repair, d’une machine virtuelle de récupération manuelle ou d’un mode mono-utilisateur, car le système ne démarre pas normalement.

  2. Identifiez les fichiers et répertoires volumineux à l’aide des outils et commandes Linux standard :

    • du -ks /* | sort -n - Recherchez les fichiers ou répertoires les plus gourmands en espace dans un emplacement. Répétez sur le plus grand répertoire signalé jusqu’à ce que certaines données volumineuses ne sont pas découvertes.

    • ls -altSr /var/log - Répertorier le contenu d’un répertoire, classé par taille, dans l’ordre croissant.

    • find / -size +500M -exec ls -alFh {} \; - Rechercher des fichiers individuels volumineux. Ajustez la 500M valeur à plusieurs mégaoctets ou gigaoctets si nécessaire pour localiser les fichiers les plus efficaces à découper.

  3. Supprimez tous les fichiers qui peuvent être identifiés comme inutiles, tels que les anciens journaux, les sauvegardes oubliées et les fichiers similaires.

  4. Une fois qu’une quantité d’espace appropriée est effacée, ciblez environ 10 % de disque libre et redémarrez le système.

Résolution 2 : Développer le système de fichiers du système d’exploitation

Si aucune donnée ne peut être effacée du système de fichiers du système d’exploitation, nous vous recommandons de développer le disque contenant les volumes de système d’exploitation critiques. Pour plus d’informations, consultez Développer des disques durs virtuels sur une machine virtuelle Linux.

Étapes suivantes

Si l’erreur de démarrage spécifique n’est pas un problème de démarrage Linux en raison d’un disque de système d’exploitation complet, consultez Résoudre les erreurs de démarrage des machines virtuelles Linux Azure pour une résolution plus approfondie des problèmes.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.