Partager via


Résoudre les problèmes de démarrage de machine virtuelle Linux dus à des erreurs fstab

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.

La table du système de fichiers Linux, fstab est une table de configuration conçue pour configurer des règles où des systèmes de fichiers spécifiques sont détectés et montés de manière ordonnée pendant le processus de démarrage du système. Cet article décrit plusieurs conditions dans lesquelles une configuration fstab incorrecte peut entraîner un problème de démarrage et fournit des conseils de dépannage.

Voici quelques raisons courantes qui peuvent entraîner des problèmes de démarrage de machine virtuelle en raison d’une configuration incorrecte de fstab :

  • Le nom du système de fichiers traditionnel est utilisé au lieu de l’identificateur UUID (Universally Unique Identifier) du système de fichiers.
  • Un UUID incorrect est utilisé.
  • Une entrée existe pour un appareil non attaché sans nofail option dans la configuration fstab.
  • Entrée incorrecte dans la configuration fstab.

Identifier les problèmes fstab

Vérifiez l’état de démarrage actuel de la machine virtuelle dans le journal série dans le panneau [Diagnostics de démarrage] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) dans le Portail Azure. La machine virtuelle sera en mode d’urgence. Vous voyez les entrées de journal qui ressemblent à l’exemple suivant menant à l’état du mode d’urgence :

[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
[[1;33mDEPEND[0m] Dependency failed for /data.
[[1;33mDEPEND[0m] Dependency failed for Local File Systems.
…
Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode.
Give root password for maintenance
(or type Control-D to continue)

Note

« /data » est un exemple de point de montage utilisé. L’échec de dépendance pour le point de montage du système de fichiers diffère en fonction des noms utilisés.

Résolution

Il existe deux façons de résoudre le problème :

Réparer la machine virtuelle en ligne

Utiliser la console série

  1. Connectez-vous à la console série de la machine virtuelle à partir de Portail Azure.
  2. L’accès manuel au mode mono-utilisateur est nécessaire pour reconfigurer fstab. Les étapes peuvent varier en fonction du type de système d’exploitation Linux en cours d’utilisation et d’accès au compte racine. Suivez la documentation en mode utilisateur unique pour accéder au mode mono-utilisateur pour chaque image partenaire Linux prise en charge.
Étapes de résolution des problèmes Fstab
  1. Une fois que la machine virtuelle a démarré en mode mono-utilisateur. Ouvrez le fichier fstab dans l’éditeur de texte de votre choix.

    vi /etc/fstab
    
  2. Passez en revue les systèmes de fichiers répertoriés dans /etc/fstab. Chaque ligne du fichier fstab indique un système de fichiers monté au démarrage de la machine virtuelle. Pour plus d’informations sur la syntaxe du fichier fstab, exécutez la man fstab commande. Pour résoudre un échec de démarrage, passez en revue l’entrée du système de fichiers qui n’a pas pu être monté. Il est recommandé de passer en revue chaque ligne pour s’assurer qu’elle est correcte à la fois dans la structure et le contenu. Voici quelques points à prendre en compte pour administrer correctement un fichier fstab :

    • Les champs de chaque ligne sont séparés par des tabulations ou des espaces. Les lignes vides sont ignorées. Les lignes ayant comme premier caractère le signe dièse (#) sont des commentaires. Les lignes en commentaire peuvent être conservées dans le fichier fstab, mais elles ne sont pas traitées. Nous vous recommandons de commenter les lignes fstab que vous ne savez pas au lieu de supprimer les lignes.

    • Montez les disques de données sur des machines virtuelles Azure à l’aide de l’UUID de la partition du système de fichiers. Pour déterminer l’UUID du système de fichiers, exécutez la blkid commande. Pour plus d’informations sur la syntaxe, exécutez la man blkid commande. Exemple d’entrée UUID dans le fichier fstab :

      UUID=<UUID number here>  /data      xfs    defaults,nofail 0  0
      
    • Utilisez l’option nofail dans les entrées du système de fichiers (disques de données) pour permettre au démarrage de continuer même après que des erreurs se produisent dans des partitions pour les entrées correspondantes. L’option nofail permet de s’assurer que la machine virtuelle démarre même si le système de fichiers est endommagé ou s’il n’existe pas au démarrage.

  3. Enregistrez les modifications apportées au fichier fstab.

  4. Utilisez-la mount -a comme bonne pratique après avoir apporté des modifications aux entrées fstab. Cette opération réexécute la configuration fstab et informe les utilisateurs de toute syntaxe ou erreur d’entrée existante.

  5. Une fois la syntaxe et les entrées vérifiées, redémarrez la machine virtuelle à l’aide de la commande ci-dessous.

    reboot -f
    
  6. Si la mise en commentaire ou la correction des entrées a réussi, le système doit afficher une invite Bash dans le portail. Vérifiez si vous pouvez vous connecter à la machine virtuelle.

Note

Vous pouvez également utiliser la commande « Ctrl + x » qui redémarre également la machine virtuelle.

Réparer la machine virtuelle en mode hors connexion

Si l’accès à la console série de la machine virtuelle n’est pas disponible, une autre solution consiste à réparer la machine virtuelle hors connexion. Il existe deux façons d’adopter une approche hors connexion :

Utiliser azure Linux Auto Repair (ALAR)

Les scripts ALAR (Azure Linux Auto Repair) font partie de l’extension de réparation de machine virtuelle décrite dans La réparation d’une machine virtuelle Linux à l’aide des commandes de réparation de machine virtuelle Azure. ALAR couvre l’automatisation de plusieurs scénarios de réparation, notamment /etc/fstab les problèmes.

Les scripts ALAR utilisent la commande d’extension run de réparation et son --run-id option. L’ID de script pour la récupération automatisée est : linux-alar2. Implémentez les étapes suivantes pour automatiser les erreurs fstab via l’approche ALAR hors connexion :

az vm repair create --verbose -g centos7 -n cent7 --repair-username rescue --repair-password 'password!234' --copy-disk-name  repairdiskcopy
az vm repair run --verbose -g centos7 -n cent7 --run-id linux-alar2 --parameters fstab --run-on-repair
az vm repair restore --verbose -g centos7 -n cent7

Note

Le nom du groupe de ressources « centos7, nom de machine virtuelle « cent7 » et --copy-disk-name « repairdiskcopy » sont des exemples et les valeurs doivent changer en conséquence.

Le script de réparation fstab effectue une sauvegarde du fichier d’origine et supprime toutes les lignes du fichier /etc/fstab qui ne sont pas nécessaires pour démarrer un système. Après le démarrage réussi du système d’exploitation, modifiez à nouveau le contrôle fstab et corrigez toutes les erreurs qui n’ont pas autorisé le redémarrage du système avant.

Sinon, une fois qu’une machine virtuelle de réparation est créée, les modifications peuvent également être implémentées en vous connectant manuellement à la machine virtuelle de réparation, en montant la copie jointe du disque du système d’exploitation et en apportant des modifications à son fichier fstab. Suivez les étapes ci-dessous :

  • Créez une machine virtuelle de réparation à l’aide de la az vm repair create commande.
  • Pour monter et chroot sur les systèmes de fichiers du disque de système d’exploitation attaché dans une machine virtuelle de secours, suivez les instructions détaillées de chroot.
  • Ensuite, suivez les mêmes étapes de résolution des problèmes fstab que ci-dessus.
  • Une fois les modifications appliquées, az vm repair restore la commande peut être utilisée pour effectuer l’échange automatique du disque du système d’exploitation avec la machine virtuelle d’origine.

Utiliser la méthode manuelle

Si la console série et l’approche ALAR ne sont pas possibles ou échouent, la réparation doit être effectuée manuellement. Suivez les étapes ci-dessous pour attacher manuellement le disque du système d’exploitation à une machine virtuelle de récupération et échanger le disque du système d’exploitation vers la machine virtuelle d’origine :

Une fois que le disque du système d’exploitation est correctement attaché à la machine virtuelle de récupération, suivez les instructions détaillées de chroot pour monter et chroot sur les systèmes de fichiers du disque de système d’exploitation attaché. Ensuite, implémentez les étapes de résolution des problèmes fstab pour apporter les modifications appropriées au fichier fstab du disque de système d’exploitation problématique.

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.