96 votes

Est-il possible de redémarrer un système d'exploitation Linux sans redémarrer le matériel ?

Existe-t-il un moyen de redémarrer un système Linux (Debian en particulier) sans redémarrer le matériel ?

J'ai un contrôleur RAID qui met un peu de temps à fonctionner avant que le système d'exploitation ne démarre, et j'aimerais qu'il y ait un moyen de redémarrer rapidement le système d'exploitation Linux sans avoir à passer par tout le processus de redémarrage du contrôleur RAID, etc.

6 votes

Tous les systèmes basés sur l'UEFI sont capables de changer de système d'exploitation sans redémarrer. Vous disposez également kexec() qui est comme exec() mais pour les noyaux Unix.

109voto

ewwhite Points 193555

J'utilise kexec-reboot sur presque tous mes systèmes de production.

Cela fonctionne incroyablement bien, me permettant de contourner la longue durée de POST sur les serveurs HP ProLiant et réduire le cycle de démarrage de 5 minutes à ~45 secondes.

Voir : https://github.com/error10/kexec-reboot

Le seul problème est qu'il ne semble pas fonctionner sur les systèmes RHEL/CentOS 6.x démarrant sous UEFI. Mais la plupart des combinaisons OS/matériel sain fonctionnent.

68 votes

J'ai écrit ça ! Mais ça marche quand même assez bien...

0 votes

Y a-t-il des inconvénients à cette chose ? Sans réinitialiser les périphériques, ils peuvent ne pas être dans un état connu lorsque la machine est redémarrée, n'est-ce pas ? Je me demande si cette méthode est sûre pour la production. ... Eh bien, je viens de lire l'entrée du wiki sur kexec, et il apporte les mêmes points. Je suppose que ma question se résume à : Dans le monde réel, dans quelle mesure est-ce un problème ? Quelqu'un a-t-il l'expérience de l'utilisation régulière de kexec-reboot ? Quel est votre niveau de confort après l'avoir fait ; êtes-vous sûr que vos systèmes fonctionnent de manière saine ?

0 votes

Je l'utilise quand j'ai besoin d'une réinitialisation de l'OS ou d'une mise à jour du noyau. Si je mets à jour le micrologiciel du serveur ou si j'apporte des modifications au BIOS ou au matériel, j'effectue un redémarrage normal.

18voto

martin Points 49

Oui, c'est possible. kexec permettra de démarrer directement un noyau Linux sans passer par le processus de démarrage du BIOS.

0 votes

De plus, l'UEFI permet de changer de système d'exploitation sans redémarrer.

2 votes

@user2284570 Pour autant que je sache, l'UEFI ne fournit pas un tel mécanisme.

17voto

Oui, vous devez utiliser kexec-tools. Pour me faciliter la vie, j'utilise kexec-reboot .

$sudo apt-get install kexec-tools
$wget https://raw.githubusercontent.com/vadmium/kexec-reboot/master/kexec-reboot
$chmod +x kexec-reboot
$sudo mv kexec-reboot /usr/local/sbin/kexec-reboot
$sudo /usr/local/sbin/kexec-reboot

14 votes

Pour qu'il n'y ait pas de confusion, ce n'est pas moi qui ai écrit cela.

0 votes

Il est probable que cela ne concerne qu'Ubuntu/Debian, non ?

1 votes

@ewwhite Ça serait probablement fonctionne sur RHEL/CentOS, mais en lisant le code, j'ai trouvé plusieurs points problématiques où des cas limites pourraient le faire échouer. Et la source semble le reconnaître avec un commentaire : # The error checking is very basic.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X