web-dev-qa-db-fra.com

Comment changer le noyau qui démarre Ubuntu XEN VPS?

J'ai un serveur VPS sous Ubuntu 12.04. Il y a quelque temps, mon hôte a installé un autre noyau (l'un des noyaux EC2 d'Amazon) pour résoudre un problème de démarrage que je rencontrais. Maintenant, 2 versions Ubuntu plus tard, ce noyau (2.6.31-302-ec2) est toujours utilisé même si des noyaux plus récents (3.2.xx) ont été installés.

Comment faire en sorte que le serveur utilise le noyau installé le plus récent, de préférence sans simplement désinstaller le noyau EC2 au cas où cela poserait des problèmes?

1
Tim Fountain

Félicitations, vous êtes sur PyGrub!

  • Votre fichier _menu.lst_, les différentes images du noyau de votre répertoire _/boot_ et, plus important encore, le noyau que vous exécutez (une version Amazon EC2 extrêmement peu probable ). exécutant sur un hôte physique) implique fortement que vous avez activé pygrub .
    • Cela est dû au fait que les XenPV non Pygrub doivent utiliser le même noyau que l'hôte .
  • Le dmesg étrangement vide est probablement un effet secondaire des personnalisations dans le noyau EC2; comparer avec la sortie très informative d'un noyau normal sur un XenPV 3.4

Un peu sur les options du noyau XenPV:

  • Votre noyau EC2 personnalisé actuel démarre avec les options _root=/dev/sda1 xencons=tty_ (voir fin de _menu.lst_)
  • Les options de démarrage XenPV standard sur les noyaux standard sont plutôt _root=/dev/xvda1 console=hvc0_
    • xvda est le périphérique de disque paravirtualisé (et plus efficace), tandis que sda est le périphérique émulé le moins efficace - c'est la première fois que je vois ce dernier utilisé dans un XenPV 3.x.
    • _xencons=tty_ et _console=hvc0_ sont très similaires, mais je crois que le premier est un usage plus ancien (hérité); vous pouvez les empiler sans effets néfastes; il indique simplement au noyau que le terminal virtuel standard n'est pas disponible pour la console et qu'il utilise plutôt le périphérique spécialisé _hvc0_.

Comment changer de noyau:

Cette partie peut être légèrement poilue et vous devriez être dans les bons livres de votre fournisseur, car vous aurez peut-être besoin de son aide pour effectuer une opération simple cp une ou deux fois! Après cela, vous saurez quelles options vous avez besoin et doivent être définies pour l’avenir.

  • Pour vous donner un contexte si vous en avez besoin, voici quelques fichiers de mon VPS XenPV sur le dernier noyau 64 bits: ls -l /boot , menu.lst = et un post-boot complet dmesg
  • Ajoutez les éléments suivants en haut de votre _menu.lst_, en fonction de la version du noyau dont vous avez besoin:

     défaut = 0 
     titre vmlinuz-3.2.0-25-generic 
     racine (hd0) 
     noyau /boot/vmlinuz-3.2.0-25-25générique ro root =/dev/sda1 xencons = console tty = hvc0 
     initrd /boot/initrd.img-3.2.0-25-generic
    
  • Croisez les doigts, redémarrez et espérez que ça revienne!

  • Sinon, essayez de passer à _root=/dev/xvda1_ et cela devrait presque certainement fonctionner.
  • N'oubliez pas de refuser l'installation du "nouveau" _menu.lst_ lors de la mise à niveau des noyaux!
2
ish

Par défaut, les invités xen (domU) ne peuvent pas contrôler les noyaux utilisés.

Le noyau est provisionné à partir de l'hyperviseur (dom-0) où la version du noyau spécifique est codée en dur avec l'adresse IP, la taille du disque mémoire, etc. dans le script de configuration de chaque machine virtuelle.

Pygrub n'est pas activé par votre fournisseur VPS, ce qui permet d'utiliser et de démarrer des noyaux personnalisés dans le VPS. si tel est le cas, regardez cette instruction

Xen et PyGrub

1
tomodachi