Mode de sauvetage
Il arrive parfois qu'un serveur devienne inaccessible via SSH en raison d'un réseau défectueux, d'une mauvaise installation, d'une mauvaise configuration, d'une mise à niveau du noyau, de mauvaises règles de pare-feu, etc. Lorsque vous ne pouvez pas du tout vous connecter à votre serveur (vous n'avez pas le mot de passe root ou le serveur ne démarre pas), vous pouvez utiliser notre mode de secours, qui charge une image Linux Alpine vanille dans la RAM de votre serveur.
Si vous avez le mot de passe racine de votre serveur et votre clé SSH, vous devriez utiliser notre console Serial Over SSH.
Exigences
Réseau de couche 3 - Pour installer le système d'exploitation de secours sur votre serveur, celui-ci doit être accessible via une adresse IP. Par conséquent, votre serveur doit être configuré en mode réseau de couche 3 ou hybride. Si votre serveur est actuellement configuré en couche 2 seulement, vous devez le convertir en mode réseau de couche 3 ou hybride pour utiliser le mode de secours.
Clés SSH - Pour accéder au serveur après son démarrage sur le système d'exploitation de secours, vous devez avoir une clé SSH valide. Le système d'exploitation de secours utilise les clés publiques SSH associées à votre serveur lors de sa configuration initiale.
Partition racine - Selon le type d'opérations de réparation ou de récupération à effectuer, vous aurez besoin de l'emplacement de la partition racine de votre système d'exploitation. La meilleure façon de trouver cette information est de la rechercher directement du système d'exploitation avant d'avoir besoin du mode de récupération. Par exemple, sous Ubuntu, la partition racine est indiquée par df -h.
Démarrage en mode de secours
Pour accéder au mode de récupération, rendez-vous sur la page d'accueil de votre serveur. Cliquez sur Actions du serveur, puis sélectionnez Récupérer le système d'exploitation dans le menu déroulant.

Cette opération redémarre le serveur, charge l'image système de secours Alpine Linux dans la mémoire vive, puis démarre le serveur sous Alpine Linux. L'adresse IPv4 publique du serveur demeure inchangée.
Une fois le serveur démarré, vous pouvez vous connecter en SSH en tant que root à l'aide de clés SSH autorisées. Si vous avez déjà utilisé SSH pour vous connecter au serveur, vous pourriez recevoir un avertissement indiquant que la clé d'hôte a changé et vous invitant à la supprimer de votre fichier d'hôtes connus sur la machine locale avant de pouvoir vous connecter.
ssh root@<server_ip_address>
Une fois que vous avez réussi à vous connecter au serveur via SSH, vous verrez l'introduction de Rescue OS et l'invite de ligne de commande.
,------. ,--. ,--.
| .---' ,---. ,--.,--.`--',--,--, `--',--. ,--.
| `--, | .-. || || |,--.| \,--. \ `' /
| `---.' '-' |' '' '| || || || | / /. \
`------' `-| | `----' `--'`--''--'`--''--' '--'
`--'
===============================================
OS Rescue Environment
Commit: dd4b2268 (main) BuildNo: unknown
===============================================
Based on Alpine Linux 3.18.4
Use "apk" package manager for additional utilities.
See docs at http://wiki.alpinelinux.org
localhost:~#
Montage de la partition racine d'origine
Pour résoudre plusieurs problèmes, il faut monter la partition racine du système d'exploitation d'origine. Si vous ne savez pas où elle est, vous pouvez essayer de la deviner. Souvent, c'est dev/sda3 ou dev/sdc3. Sur certains de nos serveurs, elle peut se trouver dans dev/mdxxx, où xxx correspond au numéro du périphérique md.
Les exemples de cette page montent dev/sda3 à /mnt.
mount -t ext4 /dev/sda3 /mnt
Une fois que vous avez réussi à monter une partition, cd dessus.
cd /mnt
Exécutez ls pour voir le système de fichiers du système d'exploitation d'origine.
localhost:/mnt# ls
Cet exemple de sortie provient d'Ubuntu 20.04.
bin home libx32 opt sbin tmp
boot lib lost+found proc snap usr
dev lib32 media root srv var
etc lib64 mnt run sys
Si vous avez réussi à accéder à la partition racine, vous pouvez la réparer.
Cas d'utilisation courants et réparations
Réinitialisation du mot de passe root
Dans les cas où vous pouvez normalement vous connecter à votre serveur via SSH et ne pouvez pas utiliser la console SOS/OOB parce que vous avez oublié ou n'avez pas enregistré le mot de passe root, vous pouvez le réinitialiser via le mode de secours.
Après avoir monté le système de fichiers racine à /mnt, on peut utiliser chroot pour charger le système de fichiers monté et utiliser directement la commande passwd pour modifier le mot de passe racine existant.
chroot /mnt /bin/bash
>
passwd
Récupération de fichiers
Si le serveur ne peut plus démarrer sur le système d'exploitation d'origine et que vous devez récupérer des fichiers importants, vous pouvez utiliser scp en mode de secours pour les déplacer ailleurs.
Donc, si vous avez un dossier de démonstration situé dans un dossier /demo dans votre répertoire personnel, vous pouvez utiliser scp pour les enregistrer sur votre machine locale.
scp -r root@<server_ip_address>:/mnt/home/demo /User/Downloads
Redimensionner ou ajouter des partitions
Par défaut, le disque de démarrage possède une partition racine qui utilise tout l'espace disque. Certains serveurs disposent de disques supplémentaires non formatés, mais si vous devez créer plusieurs partitions sur le même disque de démarrage, vous pouvez utiliser le mode de secours pour réduire la partition racine et en créer de nouvelles.
La procédure à suivre peut varier en fonction du système de fichiers que vous utilisez, mais si vous utilisez un système d'exploitation avec ext4 comme Ubuntu, vous pouvez utiliser resize2fs et gdisk pour redimensionner votre système de fichiers/partition et en créer d'autres.
Il est important de noter que le fichier de configuration cloud-init par défaut de nos images active les modules growpart et resizefs, ce qui redimensionne votre partition racine à sa taille maximale si vous la réduisez sans en créer de nouvelles. Pour éviter ce comportement, vous pouvez modifier le fichier de configuration cloud-init situé à l'emplacement /etc/cloud/cloud.cfg afin de supprimer les modules -growpart et -resizefs. Une fois le fichier enregistré, cloud-init ne devrait plus tenter de redimensionner la partition à chaque démarrage du système d'exploitation.
Paquets supplémentaires pour Alpine Linux
L'image Alpine Linux utilisée pour le mode de secours pourrait ne pas contenir les paquets nécessaires à certaines opérations. Par exemple, pour exécuter fsck, vous devez installer le paquet e2fsprogs.
apk add e2fsprogs
Après une installation réussie, vous pouvez par exemple exécuter fsck sur sda1.
fsck.ext4 -f -y /dev/sda1
Vous pourriez avoir besoin d'autres paquets, comme zfs si vous formatez une partition avec un système de fichiers autre que ext4. Vous trouverez tous les paquets disponibles à installer dans le [répertoire des paquets Alpine Linux.
Retour à votre système d'exploitation d'origine
Pour revenir au système d'exploitation d'origine, nous pouvons simplement redémarrer le serveur.
Depuis Alpine Linux:
Pour redémarrer Alpine Linux, utilisez la commande reboot.
reboot
Depuis la console:
Pour redémarrer votre serveur à partir de sa page Aperçu, cliquez sur Actions du serveur, puis sélectionnez Redémarrer dans le menu déroulant.

Une fois que le serveur a terminé de redémarrer à partir de l'un ou l'autre processus, il redémarrera dans votre système d'exploitation d'origine.