Est-il bon d'avoir plusieurs versions du noyau Linux?

14

Une fois, j'installais des correctifs du noyau et quelque chose s'est mal passé sur un serveur en direct où nous avions des centaines de clients. Un seul noyau était présent dans le système. Donc, le serveur est tombé en panne pendant un certain temps, et en utilisant un CD live, nous avons fait fonctionner le système et fait les travaux de réparation supplémentaires.

Maintenant ma question: est-ce une bonne idée d'avoir 2 versions du noyau, de sorte que si le noyau est corrompu, nous pouvons toujours redémarrer avec un autre noyau disponible? S'il vous plaît, faites-moi savoir.

Est-il également possible d'avoir 2 versions du même noyau? Pour que je puisse choisir un autre noyau en cas de corruption du noyau?

Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)

Comment puis-je avoir la même copie de ce noyau, de sorte que lorsque mon noyau corrompt, je puisse démarrer le noyau de sauvegarde?

Mani
la source
4
Il me semble que vous avez répondu à votre propre question. Il n'y a aucun inconvénient à avoir plusieurs noyaux, tant que vous savez qu'ils fonctionnent avec votre système, et cela peut parfois être utile si vous rencontrez des problèmes avec un noyau particulier pour une raison quelconque.
Faheem Mitha
Merci, peut-être que je n'ai pas demandé correctement les qns. Comment puis-je avoir la même copie de ce noyau, de sorte que lorsque mon noyau est corrompu, je peux démarrer le noyau de sauvegarde?
Mani
2
Bien sûr, vous pouvez avoir le même noyau. Le noyau n'est qu'un fichier sur le disque. Vous pouvez copier votre noyau existant avec un nom légèrement différent.
Faheem Mitha
Sur l'un des serveurs dont j'ai hérité, il y avait 16 entrées de démarrage pour 8 noyaux différents dessus ... Vous savez, jusqu'à ce que je le nettoie
Canadian Luke
Je garde généralement le noyau précédent en cas de problème.
Joshua

Réponses:

18

Les distributions basées sur RedHat et Debian conservent plusieurs versions de Kernel lorsque vous en installez une nouvelle en utilisant yumou apt-getpar défaut. Cela est considéré comme une bonne pratique et se fait exactement pour le cas que vous décrivez: si quelque chose ne va pas avec le dernier noyau, vous pouvez toujours redémarrer et dans GRUB choisir de démarrer en utilisant l'un des noyaux précédents.

Dans les distributions RedHat, vous contrôlez le nombre de noyaux pour rester en phase /etc/yum.confavec le installonly_limitréglage. Sur ma nouvelle installation CentOS 7, la valeur par défaut est 5.

De plus, si sur RedHat vous installez un nouveau noyau à partir du package RPM, vous devez l'utiliser rpm -ivh, non rpm -Uvh: le premier gardera l'ancien noyau en place tandis que le dernier le remplacera.

Debian conserve les anciens noyaux mais ne les supprime pas automatiquement. Si vous devez libérer votre partition de démarrage, vous devez supprimer les anciens noyaux manuellement (n'oubliez pas de laisser au moins l'un des noyaux précédents). Pour répertorier tous les packages d'installation du noyau et des en-têtes de noyau, utilisez dpkg -l | egrep "linux-(im|he)".

Répondre à votre question - Est-il également possible d'avoir une version 2 du même noyau? -- Oui c'est possible. Je ne peux pas le vérifier sur CentOS 6.5 pour le moment, mais sur CentOS 7, j'ai pu obtenir le résultat souhaité en dupliquant simplement les fichiers de /bootrépertoire liés au noyau et en reconstruisant le menu grub:

cd /boot

# Duplicate kernel files; 
# "3.10.0-123.el7" is a substring in the name of the current kernel
ls -1 | grep "3.10.0-123.el7" | { while read i; \
    do cp $i $(echo $i | sed 's/el7/el7.backup/'); done; }

# Backup the grub configuration, just in case
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

# Rebuild grub configuration
grub2-mkconfig -o /boot/grub2/grub.cfg

# At this point you can reboot and see that a new kernel is available 
# for you to choose in GRUB menu
Golem
la source
merci, j'y travaille. Mais dans CentOS 6.5, il n'y a pas de "grub2-mkconfig". savez-vous comment faire cela dans centos 6.5, je pense que grub2 n'est disponible que dans centos 7. Je suis en train de googler maintenant, si je trouve un soln, je mettrai à jour ici.
Mani
J'ai modifié ces lignes pour convenir à Centos 6.5 comme ci-dessous et je suis resté coincé avec la façon de mettre à jour le grub.conf. ls -1 | grep "2.6.32-431.el6" | {pendant la lecture i; \ do cp $ i $ (echo $ i | sed 's / el6 / el6.backup /'); terminé; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup
Mani
Merci beaucoup!!! Cela a fonctionné et j'ai modifié comme ça ls -1 | grep "2.6.32-431.el6" | {pendant la lecture i; \ do cp $ i $ (echo $ i | sed 's / el6 / el6.backup /'); terminé; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup et j'ai édité le grup.conf manuellement. Vous pouvez garder l'UUID identique, si vous allez copier sur le même disque et la même partition.
Mani
7

Oui, c'est possible et je dirais même conseillé. Il vous suffit de configurer le processus de démarrage pour vous proposer l'alternative. En règle générale, cela se fait dans la configuration du chargeur de démarrage - généralement, vous pouvez simplement dupliquer l'entrée qui s'y trouve et modifier le nom de fichier de l'image du noyau et le libellé de l'entrée du menu de démarrage.

Sur un serveur de production, ce n'est généralement pas un problème, mais chaque fois que vous mettez à niveau le noyau, c'est une bonne idée d'avoir une sauvegarde présente. Certaines distributions Linux offrent une restauration (généralement soutenue par des capacités de capture instantanée du système de fichiers) sur les mises à jour des packages pour rendre le processus aussi indolore que possible, mais même dans ces cas, j'aurais tendance à garder une sauvegarde prête.

Quant à avoir plusieurs copies du même noyau - même cela aurait du sens, mais comme le souligne @goldilocks dans le commentaire ci-dessous, si votre noyau est corrompu, vous devriez penser à remplacer le matériel. D'un autre côté, le fait de placer le doublon sur un autre disque dur physique peut vous éviter des problèmes. Mais gardez à l' esprit que le fichier image du noyau n'est jamais utilisé durant le démarrage.

peterph
la source
J'ai modifié le qns, merci de me le faire savoir, Comment avoir un noyau de sauvegarde? (de préférence la même version)
Mani
3
Vous ne devriez rien faire, ils sont déjà là - mais dans différentes versions. Cela ne sert à rien d'avoir deux la même version à moins que vous n'en ayez compilé vous-même, sinon ce ne sont que des copies identiques. La question de la «corruption» est une sorte de faux - selon cette logique, vous auriez besoin de deux copies identiques de tout le système au cas où le bashbinaire serait corrompu, libccorrompu, etc., ce qui rendra le système inutile. Ces fichiers ne devraient pas être «corrompus». Si tel est le cas, remplacez votre matériel.
goldilocks
1
@goldilocks Ou remplacez votre administrateur système, en fonction de l'emplacement du défaut.
Philip Kendall
@goldilocks voir la réponse mise à jour - cela peut avoir du sens dans des cas spécifiques. De toute évidence, le remplacement du matériel défectueux doit être préféré dans la mesure du possible.
peterph