Skip to content

Hard reboot à distance

par billux le 9 août 2010
bouton stop

Voici une astuce bien utile si votre serveur est complètement planté.
Il faut néanmoins pouvoir se connecter en SSH sur la machine et avoir un shell en root.

Dans mon cas, il s’agissait d’un problème d’accès disque, la plupart des commandes exécutées renvoyaient des erreurs d’entrée/sortie, y compris la commande reboot, qui a besoin d’exécuter les scripts d’init de niveau 6.

Mais tout n’est pas perdu, si vous n’avez pas d’accès physique à la machine ! On va passer par le pseudo système de fichier /proc pour parler directement au noyau et lui dire de redémarrer la machine.
Avant tout (et si il ne s’agit pas d’un problème disque), on tente de forcer la synchronisation du cache vers le disque :

sync

On active ensuite les magic sysrq key si elles ne le sont pas déjà :

echo 1 > /proc/sys/kernel/sysrq

Puis on modifie l’état de la machine :

echo b > /proc/sysrq-trigger

Cette dernière action a exactement le même effet que la combinaison Alt + Syst + b.

Après cela, priez pour que la machine redémarre correctement :)

7 Commentaires
  1. yoho, le 9 août 2010 à 23 h 38 min (permalien)

    Excellent pour la dernière astuce, que je ne connaissais pas. Merci !

  2. Luc Didry, le 10 août 2010 à 10 h 07 min (permalien)

    C’est vraiment pas mal ! Je viens de balancer le lien dans ma boîte, ça pourrait bien servir !

  3. billux, le 10 août 2010 à 13 h 40 min (permalien)

    @yoho, @Luc :
    Oui, une astuce qui ne devrait pas servir souvent, mais à garder en tête :)

  4. kamui57, le 15 janvier 2011 à 22 h 57 min (permalien)

    Les touches magiques sont dans l’ordre r,s,e,i,u,b il me semble donc ne serait-il pas possible de faire

    $ echo r > /proc/sysrq-trigger
    $ echo s > /proc/sysrq-trigger
    $ echo e > /proc/sysrq-trigger
    $ echo i > /proc/sysrq-trigger
    $ echo u > /proc/sysrq-trigger
    $ echo b > /proc/sysrq-trigger

    ?

  5. billux, le 18 janvier 2011 à 20 h 35 min (permalien)

    À priori oui, sauf que :
    * r repasse le clavier en mode raw, donc plus contrôlé par le serveur X : inutile sur un serveur, d’autant plus que tu es connecté via SSH.
    * e et i envoient respectivement un SIGTERM et un SIGKILL à tous les processus, donc à ne surtout pas faire sous peine de perdre la connexion SSH et de ne plus pouvoir rebooter le serveur.

  6. Eric DANNIELOU, le 6 octobre 2011 à 19 h 38 min (permalien)

    Il arrive d’avoir besoin de rebooter un serveur linux car il n’est plus accessible par ssh (oomkiller, …)

    Sans kvm ni pdu, il ne reste alors plus que sysrqd, mais gare a la securite.

Rétroliens & Pingbacks

  1. Hard Reboot d’un GNU/Linux à distance

Poster une réponse

NB : Le XHTML est autorisé. Votre adresse email ne sera jamais publiée ou partagée.

S'abonner au flux RSS des commentaires