mercredi 26 septembre 2007

kernel panic - not syncing VFS Unable to mount root fs on unknown block (0,0)

J'ai eu une sale blague en mettant à jour mon ubuntu 7.04.(MÀJ: ça le fait aussi avec 7.10)
Après un reboot suite à une mise à jour, mes noyaux CentOS 5 n'étaient plus accessibles et une erreur assez inquiétante est apparue:
"kernel panic - not syncing VFS Unable to mount root fs on unknown block (0,0)"
...vachement stressant...
Je regarde le fichier de backup de mon grub et je remarque qu'Ubuntu a changé les titres de TOUS mes noyaux (y compris les non-Ubuntu) dans /boot/grub/grubconf ainsi que les accès au kernel:
Il remplace le titre "CentOS 5, kernel 2.6.18-8.1.10.el5" par "Ubuntu, kernel 2.6.18-8.1.10.el5"
et il remplace les chemins de mes kernels Red Hat
"/vmlinuz-2.6.18-8.1.10.el5 root=/dev/sda2 ro quiet splash locale=fr_FR crashkernel=128M@16M" par un truc du genre
"/vmlinuz-2.6.18-8.1.10.el5 root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash"...
Non mais quel sans-gêne! De quoi je me mêle, sans blague? Saloperie, va!

Bref: je remplace les UUID car je sais que Red Hat (CentOS) ne le supporte pas encore et je reboote... Et PAN ! ça marche pas... encore... J'avais oublié qu'avec le UUID, le grub n'a pas besoin de la ligne initrd dans les choix du multiboot de grub.conf et que donc, il la dégage!!!

En résumé:
Avant la mise à jour, ne pas oublier de faire un backup ou de sortir le grub.conf à l'imprimante
une fois la mise à jour effectuée, vérifier que ça s'est bien passé en lançant ubuntu (il ne manquerait plus que ça foire...)
Editer le grub.conf et dégager le UUID des chemins kernels des distibutions qui ne le supportent pas, comme CentOS 5 en ce moment...
Ne pas oublier de rajouter la ligne initrd, sinon, ça marchera pas... du tout!
Voilà-voilà...