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
- Réparer la machine virtuelle hors connexion
Réparer la machine virtuelle en ligne
Utiliser la console série
- Connectez-vous à la console série de la machine virtuelle à partir de Portail Azure.
- 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
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
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 laman 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 laman 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’optionnofail
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.
Enregistrez les modifications apportées au fichier fstab.
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.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
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 :
- Attachez le disque du système d’exploitation à une machine virtuelle de récupération à l’aide de la Portail Azure
- Attacher le disque du système d’exploitation à une machine virtuelle de récupération à l’aide d’Azure CLI
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.