J’ai lamentablement fait planter le serveur en voulant mettre le kernel à jour…
Heureusement, il existe le mode rescue chez OVH qui permet d’installer un linux provisoire sur le serveur et d’initier une connexion SSH pour que l’on puisse réparer le système.
Si jamais cela vous arrive, voici la marche à suivre.
Passage en mode rescue depuis le manager OVH
1. Aller sur le manager OVH > Dedicated > Infrastructure > clic sur votre serveur > clic sur l’onglet Server Status.
Vous obtenez quelque chose comme :
System (OS) : Debian 6.0 oldstable LTS (Squeeze)
Boot : hd (Boot from hard drive (no netboot))
Code language: JavaScript (javascript)
2. Nous allons temporairement booter en mode rescue donc cliquez sur Modifier. Vous obtenez cet écran :
Sélectionnez Boot on rescue mode puis rescue-pro. On vous demande de confirmer :
3. Confirmez. La fenêtre se ferme. Dans le manager, en haut à droite, cliquez sur Restart pour redémarrer votre serveur.
4. Armez-vous de patience : OVH installe un linux temporaire sur le serveur, cela prend du temps.
Quand l’installation du mode rescue est terminée, vous recevez un email intitulé “Paramètres d’accès au mode RESCUE” qui contient les informations nécessaires pour se connecter en SSH au serveur :
Bonjour,
Votre serveur a redémarré en mode ‘Rescue’ ; cela signifie qu’un
Linux/BSD est lancé sur votre serveur via le réseau. Il ne s’agit pas
du système qui est normalement installé sur votre serveur, aucune
de vos partitions n’est d’ailleurs montée.Une interface web est disponible pour vous permettre d’effectuer un
diagnostique de votre serveur (disque dur, raid, ram, CPU) et de
parcourir l’arborescence de votre système de fichiers:
http://xxx.xxx.xxx.xxx:81
– nom d’utilisateur : root
– mot de passe : XXXXXXVous pouvez également vous connecter en SSH à votre serveur
avec les paramètres suivants:
– user : root
– mot de passe : XXXXXXXVous pouvez dès à présent effectuer les opérations de maintenance
nécessaires au rétablissement de votre serveur, à titre d’exemple,
vous pouvez:
– vérifier et mettre à jour vos fichiers de configuration réseau,
– vérifier et éventuellement désactiver votre firewall,
– vérifier et mettre à jour votre LILO
– procéder à la vérification manuelle de votre système de fichiers,
– effectuer une sauvegarde ou une restauration de données,
– etc.
Connexion en SSH et chroot du système
5. Nous allons utiliser SSH exclusivement. On se loggue avec :
ssh root@IP
Code language: CSS (css)
et on rentre le mot de passe donné dans le mail. On obtient ceci :
Linux rescue.ovh.net 3.10.23-xxxx-std-ipv6-64-rescue #1 SMP Tue Mar 18 15:06:38 CET 2014 x86_64
Code language: CSS (css)
Nous sommes bien dans le mode rescue.
6. On commence par lister nos partitions :
fdisk -l
Cela nous permet de savoir quel est le nom du disque dur à monter. Dans mon cas, il n’y en a qu’un, c’est /dev/sda
et la partition système se trouve sur /dev/sda1
.
7. On monte le disque :
mount /dev/sda1 /mnt/
A ce stade, il est en lecture seule donc il faut utiliser la commande chroot
:
chroot /mnt/
Mise à jour du kernel
8. Je supprime les fichiers du kernel que j’avais tenté d’installer et je remets les anciens. Heureusement, je les avais sauvegardé dans un répertoire sous /boot
.
Toujours penser à faire des sauvegardes ou à placer une copie des fichiers sensibles dans un répertoire.
Mes fichiers kernel se trouvent dans /boot/3.8.13, je les remets dans /boot
cp /boot/3.8.13/* /boot
9. Je tente un premier update-grub2
:
update-grub2
qui me renvoie :
Generating grub.cfg ...
Found linux image: /boot/bzImage-3.8.13-xxxx-grs-ipv6-64
grep: /proc/mounts: No such file or directory
Cannot find list of partitions! (Try mounting /sys.)
done
Code language: JavaScript (javascript)
puis :
grep: /proc/mounts: No such file or directory
/proc/mounts: _get_sysfs_dir fopen failed: No such file or directory
/proc/devices: fopen failed: No such file or directory
Failed to set up list of device-mapper major numbers
/proc/devices: fopen failed: No such file or directory
Failed to create lvm type filter
warning: failed to read mtab
umount: /var/lib/os-prober/mount: not mounted
warning: failed to read mtab
umount: /var/lib/os-prober/mount: not mounted
done
Code language: PHP (php)
D’autres répertoires importants sont donc à chrooter également :
mount sysfs /sys -t sysfs
mount -o bind /dev /dev
mount -o bind /dev/pts /dev/pts
mount -o bind /tmp /tmp
On relance update-grub2
. Résultats :
Generating grub.cfg ...
Found linux image: /boot/bzImage-3.8.13-xxxx-grs-ipv6-64
No volume groups found
umount: /var/lib/os-prober/mount: not mounted
done
Code language: JavaScript (javascript)
et, par acquis de conscience :
grub-mkconfig
qui renvoie :
Generating grub.cfg ...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root acb31c4f-318c-4733-8770-b58cd94da69b
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root acb31c4f-318c-4733-8770-b58cd94da69b
set locale_dir=($root)/boot/grub/locale
set lang=fr_FR
insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/06_OVHkernel ###
Found linux image: /boot/bzImage-3.8.13-xxxx-grs-ipv6-64
menuentry "Debian GNU/Linux, OVH kernel 3.8.13-xxxx-grs-ipv6-64" {
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root acb31c4f-318c-4733-8770-b58cd94da69b
linux /boot/bzImage-3.8.13-xxxx-grs-ipv6-64 root=/dev/sda1 ro quiet
}
### END /etc/grub.d/06_OVHkernel ###
### BEGIN /etc/grub.d/10_linux ###
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
No volume groups found
umount: /var/lib/os-prober/mount: not mounted
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
done
Code language: PHP (php)
Pour l’erreur “No volume groups found” avec os-prober
, c’est normal. C’est un programme qui détecte les autres systèmes d’exploitation sur la machine.
Comme c’est un serveur, il n’y a qu’un seul OS donc aucune information à remonter.
Redémarrage du serveur sur le disque dur
10. Il ne vous reste plus qu’à rebooter le serveur. Le soft reboot (/sbin/reboot
ou reboot
) via SSH ne fonctionnant pas, j’ai redémarré le serveur via le manager OVH en sélectionnant Boot on the hard-disk.
Après quelques (longues) minutes d’attente, le serveur est revenu à lui. Tous les services étaient alors fonctionnels.
Ouf, merci le mode rescue !
Synopsis » Monter un serveur dédié de A à Z
- Serveur dédié : installation d’Apache, PHP, MySQL et Webmin
- Serveur dédié : créer la base de données MySQL et importer WordPress
- Serveur dédié : créer et activer un Virtual Host sous Apache
- Serveur dédié : changer les DNS du nom de domaine et le faire pointer vers le serveur
- Serveur dédié : sécurisation des services avec iptables et fail2ban
- Serveur dédié : sécurisation de la couche TCP/IP
- Serveur dédié : création d’un serveur mail Postfix (sécurisé avec Saslauthd et certificat SSL) et Courier (accès POP et IMAP) utilisant une base MySQL d’utilisateurs/domaines virtuels
- Serveur dédié : sécuriser Apache 2 avec ModSecurity
- Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande
- Serveur dédié : installer APC comme système de cache et configurer Varnish comme reverse-proxy pour Apache pour améliorer les performances
- Serveur dédié : afficher la véritable IP derrière un reverse-proxy comme Varnish
- Serveur dédié : intégrer SSH à WordPress pour mettre à jour le core, les plugins et les thèmes
- Serveur dédié : installer la dernière version d’APC par SVN
- Serveur dédié : analyse des performances du serveur
- Serveur dédié : mettre à jour le noyau Debian de la Kimsufi
- Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
- Serveur dédié : configurer la limite mémoire pour PHP et Suhosin
- Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire
- Serveur dédié : impossible de se connecter à un port distant
- Rsync: rapatrier les fichiers du serveur à la maison
- Bash : réparer les tables MySQL en cas de crash
- Serveur dédié : création d’une seedbox avec Transmission
- Serveur dédié : des paquets LAMP à jour sous Debian
- Serveur dédié : mise à jour vers Debian 7 Wheezy
- Serveur dédié : activer X11 forwarding pour SSH
- Serveur dédié : optimiser toutes les images JPG et PNG avec OptiPNG et JpegOptim
- Postfix : résoudre l’erreur “fatal: www-data(33): message file too big”
- Serveur dédié : mise en place de l’IPv6
- WordPress : accorder les bonnes permissions aux fichiers et dossiers avec chown et chmod
- WordPress : héberger les images sur un sous-domaine
- Serveur dédié : ajouter l’authentification SPF, Sender-ID et DKIM à Postfix et Bind9 avec opendkim
- Apache : lorsque le domaine seul (sans WWW) renvoie une erreur 403
- Serveur dédié : sécuriser Apache avec HTTPS (HTTP avec la couche TLS/SSL) en Perfect Forward Secrecy
- Serveur dédié : passer WordPress en HTTPS (TLS/SSL)
- Serveur dédié : configurer Webmin en TLS avec un certificat SSL
- Serveur dédié : configurer Transmission pour accéder au WebUI via TLS-SSL
- Serveur dédié : installer et configurer Varnish 4
- Serveur dédié : passage au mod FastCGI et PHP-FPM avec Apache MPM Worker
- Récupérer un serveur Kimsufi après un plantage de kernel avec le mode rescue OVH
- Serveur dédié : configurer Postfix et Courier pour utiliser TLS-SSL en Perfect Forward Secrecy
- Serveur dédié : retirer Varnish, devenu inutile avec HTTPS
- Serveur dédié : installer la dernière version d’OpenSSL sous Debian
- Serveur dédié : activer l’IP canonique du serveur sous Apache
- Serveur dédié : mise à jour vers PHP 5.6
- MySQL : convertir les tables MyISAM au format InnoDB
- Serveur dédié : optimiser toutes les images GIF avec GIFsicle
- Serveur dédié : migration de MySQL vers MariaDB
- BASH : lister, bloquer et débloquer des adresses IP avec iptables
- Serveur dédié : produire une meilleure réserve d’entropie avec haveged
- Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine
- Serveur dédié : mise en place du protocole DANE
- 8 règles d’or pour bien déployer DNSSEC et DANE
- Serveur dédié : installer PHP7 FPM avec FastCGI sous Debian
- Serveur dédié : optimiser la couche TCP
- Fail2Ban: protéger Postfix contre les attaques DoS de types AUTH, UNKNOWN et EHLO
- Serveur dédié : mettre à jour Apache pour HTTP/2
- Serveur dédié : ajouter le domaine à la liste HSTS preload
- Serveur dédié : ajouter l’authentification DMARC à Postfix et BIND
- Serveur dédié : à la recherche de l’inode perdue ou comment résoudre le problème “no space left on device”
- Serveur dédié : installer NginX avec support HTTP2 et certificat SSL, PHP, MariaDB sous Debian
Rencontrez-vous des défis avec votre site WordPress ou WooCommerce? Laissez-moi les résoudre pour vous.