(modifié le 13 janvier 2010 à 22:02)

J'ai récemment installé Ubuntu 9.10 Karmic Koala sur un PC, puis Windows 7. Ce qui a provoqué la suppression du système de boot qui dans mon cas était grub, ce qui est normal puisque Windows installe son propre MBR écrasant grub.

En souhaitant restaurer Grub, j'ai cependant été confronté à dysfonctionnement pour démarrer sur Windows 7 (concerne toutes les versions de Windows).

Voici un howto permettant de corriger ce petit désagrément et d'avoir un multi-boot Ubuntu/Seven fonctionnel.

Pré-requis

Premièrement, il faut démarrer sur le CD d'installation d'Ubuntu en mode LiveCD et suivre ce guide (voir Réinstallation de GRUB 2.

Suite à cette manipulation j'ai bien retrouvé le bootloader Grub au démarrage avec l'entrée pour Ubuntu et l'entrée pour Windows 7. Sauf que lorsque je sélectionne Windows 7 j'obtiens ce message d'erreur :

error: no such device 02686f8e686f7f73
Press any key to continue...

Le numéro chez vous sera différent suivant l'architecture de vos partitions et de vos disques.

Réparation temporaire

Pour démarrer sur Windows Seven de façon temporaire :

  1. Démarrer le PC. Une fois Grub affiché, se déplacer avec les flèches du clavier sur la ligne correspondant à "Microsoft Windows 7" et appuyer sur la touche "E".
  2. Supprimer la ligne suivante (peut varier) :
    search --no-floppy --fs-uuid --set 02686f8e686f7f73
  3. Appuyer sur CTRL+X pour démarrer Windows

Windows 7 doit démarrer correctement. Néanmoins, il vous faudra recommencer cette manipulation à chaque démarrage...

Réparation définitive

Pour corriger définitivement cette entrée Grub incorrecte, voici la solution :

  1. Démarrer sur Ubuntu
  2. Ouvrir un terminal : Applications > Accessoires > Terminal
  3. Entrer :
    sudo gedit /usr/lib/grub/grub-mkconfig_lib
  4. Supprimer les lignes suivantes (l.173 à 175 environ) :
    if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
     echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
    fi
  5. Enregistrer les modifications et fermer le fichier
  6. Dans le terminal, entrer :
    sudo update-grub
  7. Vous devriez obtenir un résultat similaire à :
    Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-2.6.31-17-generic
    Found initrd image: /boot/initrd.img-2.6.31-17-generic
    Found linux image: /boot/vmlinuz-2.6.31-14-generic
    Found initrd image: /boot/initrd.img-2.6.31-14-generic
    Found memtest86+ image: /boot/memtest86+.bin
    Found Windows 7 (loader) on /dev/sda2
    done
    
  8. C'est fini !

Il ne vous reste plus qu'à redémarrer et essayer à nouveau de démarrer Windows. Cela a parfaitement fonctionné pour moi 🙂

L'idéal est, bien sûr, d'installer Windows puis Linux afin que Grub s'intalle comme il faut, mais ce n'est pas toujours possible.

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter