Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Comment puis-je accéder à l’EC2 Serial Console d'une instance Linux injoignable ou inaccessible ?
Mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) est injoignable ou inaccessible. De plus, je n'ai pas configuré l'accès à l’EC2 Serial Console au niveau du système d'exploitation.
Brève description
Cet article s'applique aux systèmes d'exploitation (OS) Linux suivants :
- Red Hat 7 - 9
- Amazon Linux 2, 2023
- CentOS 7, 8
- Rocky Linux 8, 9
- Ubuntu 16 - 24
- Debian 9 - 12
Prérequis : Pour utiliser la console série, assurez-vous que tous les prérequis sont remplis. Notez que l'étape de définition d'un mot de passe utilisateur du système d'exploitation doit être terminée une fois que vous avez accédé au volume racine de l'instance.
Résolution
Pour configurer l'accès à la console série, les étapes suivantes doivent être effectuées.
Remarque : Si votre console série EC2 fonctionne correctement et que vous n'avez qu'à définir le mot de passe de l'utilisateur de votre système d'exploitation, effectuez uniquement cette étape de résolution. Pour vérifier que la console série EC2 fonctionne, consultez la section Connexion à la console série EC2.
Accéder au volume racine de l'instance
Pour accéder au volume racine de l'instance, lancez une instance temporaire. Puis, remontez votre volume Amazon Elastic Block Store (Amazon EBS) sur l'instance de secours. Puis, à partir l'instance de secours, vérifiez et modifiez les paramètres GRUB de la console série. Vous pouvez également définir le mot de passe de l'utilisateur racine ou de l'utilisateur du système d'exploitation et autoriser l'accès racine au démon SSH .
Important : Lorsque vous configurez une instance temporaire, tenez compte des points suivants :
- Lorsque vous arrêtez et redémarrez une instance, les données des volumes de stockage d'instance sont effacées. Veillez à sauvegarder sur le volume de stockage d'instances toutes les données que vous souhaitez conserver. Pour plus d'informations, consultez la section Volumes racine pour vos instances Amazon EC2.
- Si vous arrêtez et démarrez l'instance, son adresse IP publique change. Lorsque vous acheminez le trafic externe vers votre instance, il est recommandé d'utiliser une adresse IP Elastic au lieu d'une adresse IP publique.
- Créez un instantané de votre volume racine avant d'apporter des modifications.
Attacher le disque racine à une instance de secours
Procédez comme suit :
-
Créez une nouvelle paire de clés ou utilisez une paire de clés existante.
-
Obtenez l'ID de volume et le nom du périphérique pour le volume racine de l'instance d'origine.
-
Lancez une instance temporaire à partir d'une Amazon Machine Image (AMI) avec la même version du système d'exploitation Linux dans la même zone de disponibilité.
-
Détachez le volume racine de l'instance d'origineet attachez-le à l'instance temporaire en tant que volume secondaire. Notez le nom du périphérique de volume.
-
Connectez-vous à l'instance temporaire à l'aide de votre paire de clés SSH.
-
Utilisez la commande suivante pour passer à l’utilisateur racine :
[ec2-user ~]$ sudo su
-
Pour identifier le nom et la partition du périphérique de stockage en mode bloc, exécutez la commande suivante depuis l'instance temporaire :
[root ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 101G 0 disk └─xvdf1 202:81 0 101G 0 part
L'exemple précédent utilise une instance XEN avec des pilotes blockfront. Les noms du périphérique de volume /dev/xvda et /dev/xvdf sont des volumes partitionnés, et /dev/xvdg ne l'est pas. Si votre volume est partitionné, exécutez la commande suivante pour monter la partition (/dev/xvdf1) au lieu du périphérique brut (/dev/xvdf) :
[root ~]$ mount -o nouuid /dev/xvdf1 /mnt
Si vous utilisez une instance basée sur Nitro, le nom du périphérique de volume ressemble à /dev/nvme[0-26]n1. Si votre instance est créée sur Nitro avec NVMe, montez la partition dans le répertoire /mnt. Utilisez le nom de périphérique que vous avez identifié précédemment pour exécuter la commande suivante :
[root ~]$ mount -o nouuid /dev/nvme1n1p1 /mnt
Pour plus d'informations, consultez la section Noms des appareils pour les volumes sur les instances Amazon EC2.
-
Pour créer un environnement chroot dans le répertoire /mnt, exécutez la commande suivante :
[root ~]$ for i in dev proc sys run; do mount -o bind /$i /mnt/$i; done; chroot /mnt
Dans l’exemple précédent, les répertoires /dev, /proc, /sys et /run sont montés par liaison à partir du système de fichiers racine d’origine. Cette configuration permet aux processus qui s'exécutent dans l'environnement chroot d'accéder aux répertoires système.
Définir le mot de passe de l'utilisateur racine ou de tout autre utilisateur du système d'exploitation
Dans chroot, utilisez la commande passwd pour définir le mot de passe de l'utilisateur de votre système d'exploitation et autoriser l'accès racine dans la configuration SSH.
Dans l'exemple suivant, l'utilisateur est root : Vous pouvez définir un mot de passe racine à l'aide de la commande suivante :
[root ~]$ passwd root
Pour configurer Autoriser l'accès racine au démon SSH (sshd) sous Linux et changer #PermitRootLogin yes à PermitRootLogin yes, exécutez le code suivant :
[root ~]$ sed -i 's/#\?PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
Transmettre les paramètres du noyau au chargeur de démarrage GRUB
Pour envoyer toutes les sorties de console vers le port série, les paramètres de noyau suivants console=tty0 console=ttyS0,115200 doivent être transmis au chargeur de démarrage GRUB.
Remarque : Les valeurs tty0 et ttyS0 contiennent un zéro et non la lettre O.
La liste suivante répertorie les options sélectionnées pour cet exemple :
- console= est un paramètre de noyau qui spécifie le périphérique de console préféré pour les messages du noyau.
- tty0 fait référence à la première console virtuelle (mode texte) du système.
- ttyS0 fait référence au premier port série.
- 115200 est le débit en bauds (bits par seconde) du port série. Il s'agit d'un débit en bauds courant utilisé pour les communications série.
- n8 spécifie la taille des caractères et les paramètres de parité pour le port série. n signifie l’absence de parité. 8 indique que la taille des caractères est de 8 octets.
- Le paramètre tty0 active le noyau pour envoyer des messages de console à la première console virtuelle (tty0). Il s'agit généralement de la console principale en mode texte sur les systèmes Linux.
- Le paramètre ttyS0 configure le noyau pour envoyer des messages de console au premier port série (ttyS0). Les messages sont envoyés à un débit de 115200 sans parité et avec 8 octets par caractère.
Vérifier et mettre à jour des paramètres GRUB2 de la console série
Ajoutez les paramètres du noyau console=tty0 et console=ttyS0,115200 à la ligne GRUB_CMDLINE_LINUX_DEFAULT dans le fichier /etc/default/grub
Procédez comme suit :
-
Ouvrez le fichier /etc/default/grub avec un éditeur de texte dans chroot. Par exemple, pour utiliser l'éditeur nano ou vi, exécutez l'une des commandes suivantes :
[root ~]$ nano /etc/default/grub [root ~]$ vi /etc/default/grub
-
Localisez la ligne qui commence par GRUB_CMDLINE_LINUX_DEFAULT. La ligne ressemble à ce qui suit :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
-
Ajoutez les paramètres du noyau console=tty0 et console=ttyS0,115200 à cette ligne. Saisissez un espace pour séparer ces paramètres du noyau des paramètres actuels. La ligne mise à jour ressemble à ce qui suit :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash console=tty0 console=ttyS0,115200"
-
Enregistrez les modifications et quittez l'éditeur de texte.
-
Pour mettre à jour la configuration GRUB, exécutez la commande suivante :
Pour Red Hat, CentOS, Amazon Linux et Rocky Linux
Sur les machines basées sur le BIOS :
[root ~]$ grub2-mkconfig -o /boot/grub2/grub.cfg
Sur les machines basées sur UEFI :
[root ~]$ grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Pour Ubuntu et Debian
La commande suivante régénère le fichier de configuration GRUB avec les nouveaux paramètres du noyau.
[root ~]$ update-grub
-
Pour quitter chroot, et démonter /dev, /run, /proc et /sys, exécutez la commande suivante :
[root ~]$ exit; umount -fl /mnt/{dev,proc,run,sys,}
-
Dans la console Amazon EC2, sélectionnez Instances, puis choisissez l'instance de secours.
-
Sélectionnez État de l’instance, Arrêter l’instance, puis sélectionnez Oui, Arrêter.
-
Détachez le volume racine id-##### (le volume de l'instance affectée) de l'instance de secours.
-
Attachez le volume racine à l'instance affectée en tant que volume racine (/dev/sda1), puis démarrez l'instance.
-
Utilisez le client basé sur un navigateur pour vous connecter à la console série de votre instance EC2.
-
Connectez-vous avec l'utilisateur en tant que root et en utilisant le mot de passe défini précédemment.

Contenus pertinents
- demandé il y a 6 moislg...
- demandé il y a un anlg...
- demandé il y a un moislg...
- demandé il y a 2 anslg...