Partager via


La machine virtuelle Linux Azure ne parvient pas à démarrer et entre dans l’interpréteur de commandes d’urgence

S’applique à : ✔️ Machines virtuelles Linux

Note

CentOS référencé dans cet article est une distribution Linux et atteint la fin de vie (EOL). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils sur la fin de vie centOS.

Cet article fournit des solutions à un problème dans lequel une machine virtuelle Linux Azure ne peut pas démarrer, car le système de fichiers du système d’exploitation n’est pas accessible à partir du RAMdisk. La machine virtuelle atterrit dans l’interpréteur de commandes d’urgence.

Prerequisites

Vérifiez que la console série est activée et fonctionnelle dans la machine virtuelle Linux.

Comment identifier le problème de démarrage dracut

Pour identifier un problème de démarrage dracut, utilisez le Portail Azure pour afficher la sortie du journal de la console série de la machine virtuelle dans le volet diagnostics de démarrage, le volet console série ou utiliser l’interface CLI AZ.

Toutes les machines virtuelles avec le problème de démarrage atterriront dans l’interpréteur de commandes d’urgence dracut ou initramfs et s’affichent à la fin du journal de la console série :

  • RHEL/CentOS/SLES/Oracle Linux :

    [  201.935612] dracut-initqueue[455]: Warning: dracut-initqueue timeout - starting timeout scripts
    [  201.941153] dracut-initqueue[455]: Warning: Could not boot.
             Starting Setup Virtual Console...
    [[0;32m  OK  [0m] Started Setup Virtual Console.
             Starting Dracut Emergency Shell...
    Warning: /dev/mapper/rootvg-rootlv does not exist
    
    Generating "/run/initramfs/rdsosreport.txt"
    
    
    Entering emergency mode. Exit the shell to continue.
    Type "journalctl" to view system logs.
    You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot
    after mounting them and attach it to a bug report.
    
    
    dracut:/# 
    
  • Ubuntu :

    mdadm: No arrays found in config file or automatically
    done.
    Gave up waiting for root file system device.  Common problems:
     - Boot args (cat /proc/cmdline)
       - Check rootdelay= (did the system wait long enough?)
     - Missing modules (cat /proc/modules; ls /dev)
    ALERT!  /dev/mapper/osencrypt does not exist.  Dropping to a shell!
    
    
    BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.4) built-in shell (ash)
    Enter 'help' for a list of built-in commands.
    
    (initramfs)
    

Résolution des problèmes en ligne

Conseil

Si vous avez une sauvegarde récente de la machine virtuelle, restaurez la machine virtuelle à partir de la sauvegarde pour résoudre le problème de démarrage.

La console série est la méthode la plus rapide pour résoudre les problèmes. Il vous permet de résoudre directement le problème sans avoir à présenter le disque système à une machine virtuelle de récupération. Veillez à respecter les conditions préalables nécessaires pour votre distribution. Pour plus d’informations, consultez la console série de machines virtuelles pour Linux.

  1. Identifiez si votre machine virtuelle atterrit dans l’interpréteur de commandes d’urgence.

  2. Essayez de résoudre le problème à l’aide de la console série Azure.

    Note

    Tous les problèmes ne peuvent pas être résolus à l’aide de la console série Azure.

    1. Déclenchez le redémarrage de la machine virtuelle (dur) à partir de la console série.
    2. Interrompez votre machine virtuelle dans le menu GRUB avec la touche ÉCHAP .
    3. Sélectionnez E pour modifier la première entrée du noyau dans le menu GRUB.
    4. Accédez à la linux16 ligne, puis validez et corrigez la configuration incorrecte du GRUB comme suit :
  3. Après avoir modifié manuellement les paramètres GRUB, sélectionnez Ctrl+X pour démarrer la machine virtuelle.

    Toute modification effectuée à ce stade est une modification non persistante. Si la machine virtuelle est en mesure de démarrer, résolvez ce problème dans le fichier de configuration GRUB ou réoccupé.

  4. Une fois la machine virtuelle de retour en ligne, corrigez les problèmes de configuration dans le /etc/default/grub fichier de configuration et mettez à jour la configuration GRUB. Pour ce faire, consultez Réinstaller GRUB et régénérer le fichier de configuration GRUB.

  5. Redémarrez la machine virtuelle pour vous assurer qu’elle est en mesure de démarrer sans intervention manuelle.

Résolution des problèmes hors connexion

Conseil

Si vous avez une sauvegarde récente de la machine virtuelle, restaurez la machine virtuelle à partir de la sauvegarde pour résoudre le problème de démarrage.

  1. Si la console série Azure ne fonctionne pas dans la machine virtuelle spécifique ou n’est pas une option dans votre abonnement, résolvez ce problème à l’aide d’une machine virtuelle de secours/réparation. À l’aide des commandes de réparation de machine virtuelle, créez une machine virtuelle de réparation à laquelle est connectée une copie du disque de système d’exploitation de la machine virtuelle affectée. Montez la copie des systèmes de fichiers du système d’exploitation dans la machine virtuelle de réparation à l’aide de chroot.

    Note

    Vous pouvez également créer une machine virtuelle de secours manuellement à l’aide du portail Azure. Pour plus d’informations, consultez l’article Résoudre les problèmes d’une machine virtuelle Linux en attachant le disque du système d’exploitation à une machine virtuelle de récupération à l’aide du portail Azure.

  2. Accédez aux sections suivantes pour résoudre des problèmes spécifiques :

  3. Une fois le problème de démarrage lié à dracut/initramfs résolu, effectuez les actions suivantes :

    1. Quittez chroot.
    2. Démonter la copie des systèmes de fichiers de la machine virtuelle de secours/réparation.
    3. Exécutez la commande az vm repair restore pour remplacer le disque de système d’exploitation réparé par le disque de système d’exploitation d’origine de la machine virtuelle. Pour plus d’informations, consultez l’étape 5 Réparer une machine virtuelle Linux à l’aide des commandes de réparation de machine virtuelle Azure.
    4. Vérifiez si la machine virtuelle peut démarrer. Pour ce faire, examinez la Serial console Azure ou essayez de vous connecter à la machine virtuelle.

Échec du démarrage de la machine virtuelle chiffrée ADE, car VFAT est désactivé

Pour plus d’informations, consultez échec du démarrage des machines virtuelles chiffrées ADE.

Les pilotes Hyper-V sont manquants

Si les pilotes Hyper-V inclus dans le noyau Linux de toutes les distributions Linux modernes sont désactivés, réactivez-les et régénérez l’image initramfs/initrd. Pour plus d’informations, consultez le scénario 3 : d’autres pilotes Hyper-V sont désactivés.

Si la machine virtuelle est Red Hat et qu’elle est migrée à partir d’un emplacement local, activez les pilotes Hyper-V requis dans l’image initramfs. Pour plus d’informations, consultez Le pilote Hyper-V n’a pas pu être inclus dans le disque RAM initial lors de l’utilisation d’un hyperviseur non Hyper-V.

Configuration incorrecte grub

Le rd.break paramètre force la machine virtuelle à démarrer dans l’interpréteur de commandes d’urgence. Vérifiez que ce paramètre n’est pas codé en dur dans le fichier de configuration GRUB.

Chemin d’accès d’appareil racine incorrect dans le fichier de configuration GRUB

Vérifiez si le chemin d’accès root=/dev/*** racine dans le fichier de configuration GRUB est correct. Vérifiez que le chemin d’accès de l’appareil approprié est utilisé.

  • Si vous êtes à l’intérieur de chroot dans une machine virtuelle de réparation/sauvetage :

    1. Suivez l’étape 1 dans la résolution des problèmes hors connexion.
    2. Validez le fichier, l’entrée /etc/default/grub GRUB_CMDLINE_LINUX et recherchez le paramètre dans le root= cas où il est codé en dur dans le fichier de configuration.
    3. Réinstallez GRUB et régénérez le fichier de configuration GRUB.
  • Si vous êtes dans la console série Azure :

    1. Suivez l’étape 3 dans la résolution des problèmes en ligne.
    2. Validez la linux16 ligne, puis recherchez le paramètre et corrigez-le root= .
    3. Sélectionnez Ctrl+X pour démarrer la machine virtuelle.
    4. Une fois la machine virtuelle démarrée, modifiez le /etc/default/grub fichier, corrigez le root paramètre et mettez à jour le fichier de configuration GRUB, comme indiqué dans Réinstaller GRUB et régénérer le fichier de configuration GRUB.

Pendant cette validation, vérifiez les éléments suivants :

  • Dans les machines virtuelles Ubuntu avec chiffrement du système d’exploitation, vérifiez que le nom de l’appareil est /dev/mapper/osencrypt.
  • Dans les machines virtuelles avec le Gestionnaire de volumes logiques (LVM) sur le disque du système d’exploitation, le volume racine est /dev/mapper/rootvg-rootlv. Le même chemin est utilisé dans les machines virtuelles RHEL avec un disque de système d’exploitation ADE chiffré.
  • Assurez-vous qu’aucun nom /dev/sdX d’appareil n’est utilisé, car ils changeront entre les redémarrages et ne sont pas persistants dans Linux. Pour plus d’informations, consultez Résoudre les problèmes de modification du nom de l’appareil de machine virtuelle Linux.
  • Si les UUID sont utilisés, assurez-vous que l’UUID du système de fichiers racine approprié est utilisé et que la syntaxe est root=UUID=xxx-yyy-zzz.

Chemin d’accès de l’appareil d’échange incorrect dans le fichier de configuration GRUB

Dans ce scénario, une machine virtuelle ne parvient pas à terminer le processus de démarrage et entre dans l’interpréteur de commandes d’urgence avec une erreur similaire à ce qui suit :

[  188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
         Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist

Le fichier de configuration GRUB de cet exemple est défini pour charger un volume logique (LV) comme échange avec le paramètre rd.lvm.lv=VG/SwapVol. Toutefois, la machine virtuelle ne parvient pas à localiser cette machine virtuelle pendant le processus de démarrage.

Il est important de noter que l’utilisation d’un appareil d’échange de cette façon dans les machines virtuelles Linux Azure n’est pas recommandée. Pour plus d’informations, consultez Créer un fichier SWAP pour une machine virtuelle Linux Azure.

Pour résoudre ce problème, recherchez le chemin d’échange rd.lvm.lv=VG/SwapVol dans le fichier de configuration GRUB (/etc/default/grub) et supprimez-le. Pour cela, appliquez l’une des méthodes suivantes :

  • Si vous êtes à l’intérieur de chroot dans une machine virtuelle de réparation/sauvetage :

    1. Suivez l’étape 1 dans la résolution des problèmes hors connexion.
    2. Modifiez le /etc/default/grub fichier, accédez à l’entrée GRUB_CMDLINE_LINUX , recherchez le rd.lvm.lv=VG/SwapVol paramètre, puis supprimez-le de la configuration.
    3. Réinstallez GRUB et régénérez le fichier de configuration GRUB.
  • Si vous êtes dans la console série Azure :

    1. Suivez l’étape 3 dans la résolution des problèmes en ligne.
    2. Accédez à la ligne commençant par linux, recherchez le paramètre et supprimez-le rd.lvm.lv=VG/SwapVol .
    3. Sélectionnez Ctrl+X pour démarrer la machine virtuelle.
    4. Une fois la machine virtuelle démarrée, modifiez le /etc/default/grub fichier, supprimez le rd.lvm.lv=VG/SwapVol paramètre, puis mettez à jour le fichier de configuration GRUB, comme indiqué dans Réinstaller GRUB et régénérer le fichier de configuration GRUB.

Paramètres dupliqués dans le fichier de configuration GRUB

Vérifiez s’il existe des paramètres dupliqués dans le fichier de configuration GRUB :

  • Si vous êtes à l’intérieur de chroot dans une machine virtuelle de réparation/sauvetage :

    1. Suivez l’étape 1 dans la résolution des problèmes hors connexion.
    2. Validez le /etc/default/grub fichier et l’entrée GRUB_CMDLINE_LINUX .
    3. Recherchez les paramètres dupliqués et supprimez-les.
    4. Mettez à jour le fichier de configuration GRUB. Pour plus d’informations, consultez Réinstaller GRUB et régénérer le fichier de configuration GRUB.
  • Si vous êtes dans la console série Azure :

    1. Suivez l’étape 3 dans la résolution des problèmes en ligne.
    2. Validez la linux16 ligne, recherchez les paramètres dupliqués et supprimez-les.
    3. Sélectionnez Ctrl+X pour démarrer la machine virtuelle.
    4. Une fois la machine virtuelle démarrée, modifiez le /etc/default/grub fichier en conséquence, corrigez les problèmes de configuration identifiés précédemment et mettez à jour le fichier de configuration GRUB, comme indiqué dans Réinstaller GRUB et régénérer le fichier de configuration GRUB.

Corruption du système de fichiers racine

Lorsque le système de fichiers racine est endommagé, il ne peut pas être monté à partir de l’image initrd/initramfs.

Pour corriger l’altération du système de fichiers racine, suivez les instructions de résolution des problèmes de démarrage de machine virtuelle Linux en raison d’erreurs de système de fichiers - Effectuer la réparation du système de fichiers.

Problèmes liés à l’activation de LVM

Certains problèmes peuvent se produire lorsque vous accédez au volume physique LVM (PV), au groupe de volumes (VG) et/ou au volume logique (LV). Ils ne peuvent pas être traités à partir de la console série Azure. Pour les résoudre, utilisez une machine virtuelle de réparation/sauvetage.

  1. Suivez l’étape 1 dans la résolution des problèmes hors connexion.

  2. Pour identifier les problèmes, exécutez les commandes suivantes et examinez les sorties de commande.

    1. Identifiez l’appareil qui correspond au disque du système d’exploitation et vérifiez s’il est détecté en tant que PV :

      lsblk
      pvs
      
    2. Vérifiez si le rootvg groupe de sécurité virtuel est détecté :

      vgs
      
    3. Vérifiez si l’application LV est détectée :

      lvs
      
  3. Résolvez les erreurs LVM courantes suivantes qui provoquent des problèmes d’accès au volume racine :

    • Pv inconnu lorsque le VG rootvg n’a qu’un seul PV (il s’agit de la configuration Azure standard)

      La partition contenant le PV est incorrectement supprimée, redimensionnée ou créée. Pour résoudre ce problème, consultez la partition racine manquante.

    • Pv inconnu lorsque le VG rootvg est modifié et divisé sur plusieurs disques

      Le fait de disposer de 2 VV dans le groupe de disponibilité virtuel rootvg n’est pas une configuration recommandée. Dans ce scénario, le disque de données peut être détaché de la machine virtuelle et les volumes logiques rootvg ne sont plus accessibles. Pour résoudre ce problème, rattachez le disque d’origine à la machine virtuelle et redémarrez-le.

  4. Si le pv n’est pas récupérable, effectuez une restauration à partir de la sauvegarde.

La partition racine est manquante

Le système de fichiers racine peut être inaccessible en raison de certains problèmes qui se produisent au niveau de la partition pendant les opérations de redimensionnement de partition ou d’autres.

Dans ce scénario, si vous avez documenté la disposition de la table de partition d’origine, avec les secteurs de début et de fin exacts pour chacune des partitions d’origine (et aucune autre modification n’est effectuée sur le système, comme la création de nouveaux systèmes de fichiers), recréez les partitions à l’aide de la même disposition d’origine. Pour ce faire, vous pouvez utiliser des outils tels que fdisk (pour les tables de partition MBR) ou gdisk (pour les tables de partition GPT) pour accéder au système de fichiers inaccessible. Suivez cette opération de récupération à partir d’une machine virtuelle de réparation/sauvetage. Pour plus d’informations, consultez la section Résolution des problèmes hors connexion.

Si cette approche ne fonctionne pas, nous vous recommandons d’effectuer une restauration à partir de la sauvegarde.

Corruption de l’initrd ou de l’initramfs

L’image initrd/initramfs a un certain niveau d’altération qui provoque l’échec du montage du volume racine et le démarrage du processus de démarrage du système d’exploitation.

Pour résoudre ce problème, procédez comme suit à partir de chroot dans une machine virtuelle de réparation/sauvetage :

  1. Suivez l’étape 1 dans la résolution des problèmes hors connexion.
  2. Régénérer manuellement les initramfs manquants.
  3. Redémarrez la machine virtuelle pour confirmer s’il est en mesure de démarrer.

Prochaines étapes

Si l’erreur de démarrage spécifique n’est pas un problème dracut ou initramfs, consultez Résoudre les erreurs de démarrage d’Azure Linux Machines Virtuelles pour obtenir d’autres options de résolution 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.