Skip to content
 

booter en toute tranquillité avec un nouveau kernel

Avec un serveur dédié chez un hébergeur, aucun accès physique n’est possible au serveur. Il est donc essentiel de pouvoir rebooter en toute sécurité pour pouvoir accéder ensuite à la machine en ssh.

A l’inverse, il est toujours possible chez soi de booter sur un cd puis de monter les partitions manuellement.

La mise à jour du kernel est donc une opération délicate : en cas d’échec, il n’existe à ma connaissance que deux options, accéder à la machine avec une KVM sur IP (option payante généralement) ou réinstaller la distribution.

La commande grub-set-default permet de booter sur un nouveau kernel UNE FOIS seulement, histoire de vérifier que le boot se passe bien.

grub est un gestionnaire d’amorçage qui s’installe sur le premier secteur absolu du disque dur (MBR = Master Boot Record).

A l’allumage de l’ordinateur, le BIOS lit les informations du MBR , permettant à grub de charger le noyau du système d’exploitation.

Mon menu grub se présentait comme cela (/boot/grub/menu.lst)

default 0

timeout      3

title        Ubuntu 8.04.3 LTS, kernel 2.6.25.4dedibox-r9-smp-x64
root        (hd0,0)
kernel        /vmlinuz-2.6.25.4dedibox-r9-smp-x64 root=/dev/md1 ro quiet splash
quiet

title        Ubuntu 8.04.3 LTS, kernel 2.6.25.4dedibox-r9-smp-x64 (recovery mode)
root        (hd0,0)
kernel        /vmlinuz-2.6.25.4dedibox-r9-smp-x64 root=/dev/md1 ro single

title        Ubuntu 8.04.3 LTS, memtest86+
root        (hd0,0)
kernel        /memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

Les deux premières lignes (défault 0 et timeout 3) indique que le kernel qui sera utilisé, faute d’intervention manuelle d’un opérateur pendant les 3 premières secondes, sera le premier de la liste ! En effet, la numérotation commence par zéro, ce qui peut être trompeur.

Le nouveau kernel sera chargé par une commande classique

sudo apt-get install linux-image-2.6.24-24-server , ce qui lance la création de l’image système minimale initrd mais ne met pas à jour menu.lst

La commande update-grub met à jour le menu de grub: le nouveau kernel apparait dans la liste

title           Ubuntu 8.04.3 LTS, kernel 2.6.25.4dedibox-r9-smp-x64
root            (hd0,0)
kernel          /vmlinuz-2.6.25.4dedibox-r9-smp-x64 root=/dev/md1 ro quiet splash
quiet

title           Ubuntu 8.04.3 LTS, kernel 2.6.25.4dedibox-r9-smp-x64 (recovery mode)
root            (hd0,0)
kernel          /vmlinuz-2.6.25.4dedibox-r9-smp-x64 root=/dev/md1 ro single

title           Ubuntu 8.04.3 LTS, kernel 2.6.24-24-server
root            (hd0,0)
kernel          /vmlinuz-2.6.24-24-server root=/dev/md1 ro quiet splash
initrd
/initrd.img-2.6.24-24-server
quiet

../..

L’astuce consiste à modifier default 0 par default saved. Ainsi le kernel utilisé sera celui qui aura été sauvegardé.

Ensuite la commande en console grub-set-default 2 permet de demander à grub de booter la prochaine fois sur le nouveau kernel n°3.

Attention, il faut également intercaler une commande save default 0 dans le menu de grub, après appel du nouveau kernel, pour qu’un nouveau boot permette de revenir au kernel initial.

title        Ubuntu 8.04.3 LTS, kernel 2.6.24-24-server
root        (hd0,0)
kernel        /vmlinuz-2.6.24-24-server root=/dev/md1 ro quiet splash
savedefault    0
initrd        /initrd.img-2.6.24-24-server
quiet

Si le test du nouveau kernel est concluant, il suffira de fixer save default à 2 .

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BlogMemes Fr
  • E-mail this story to a friend!
  • Netvibes
  • Turn this article into a PDF!
  • Wikio FR
  • Technorati
  • Twitter
  • Twitthis

Laissez une réponse