Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !


Versions Warty, Hoary, Breezy, Dapper, Edgy, Feisty...

Rédigé par Golgoth et Kmeleon

Récupération d'Ubuntu après une (ré) installation de Windows

Attention: Il existe un live-cd spécialement conçu pour la restauration de GRUB après une réinstallation de Windows qui est très facile à employer. C'est le Super Grub Disk. Depuis le cdrom de Super Grub Disk, tu suis les options: Français → Linux → Arranger Démarrage de Linux. SGD te dira: SGD a reussi!

Et GRUB sera à nouveau sur ton MBR te permettant de démarrer tant Windows que Linux.

Note: La procédure décrite (utilisation d'un chroot) semble très compliquée vue l'intelligence de Grub ; elle est plutôt adaptée à LiLo qui est plus limité au moment de son exécution. grub comprend en effet les systèmes de fichier qu'il utilise, alors que LiLo se contente lors du boot de charger les secteurs identifiés lors de l'installation (c'est pour cette raison qu'il faut relancer le programme lilo après chaque modification de la configuration ; alors que c'est totalement inutile avec Grub). Grub n'a en effet pas besoin de connaître la configuration normale des points de montage, il suffit d'utiliser le paramètre –root-directory=DIR de la commande grub-install. Je recommande donc plutôt la lecture de la page En cas de soucis avec Grub.

Ce "howto" s'applique dans les cas suivants:

  • une configuration "dual-boot" (double-démarrage) où Windows a été installé après Ubuntu
  • une panne de Windows qui oblige à le réinstaller
  • une récupération de Windows impliquant une restauration du MBR (Master Boot Record)
  • GRUB ne s'installe pas par défaut
  • Vos partitions Ubuntu encore intactes
  • Un LiveCD comme celui d'Ubuntu ou tout autre avec lequel vous êtes à l'aise
  • Connaître assez votre LiveCD pour accéder au mode console
  • Se rappeler de la façon dont vous avez configuré vos partitions (l'idéal est d'avoir une impression de votre /etc/fstab bien que vous puissiez aussi l'obtenir avec un fdisk -l /dev/hda)
  • Savoir comment fonctionne votre noyau (notamment pour initrd) si vous n'utilisez pas le noyau d'Ubuntu ou si vous vous êtes fait vous-même votre propre noyau.
  • Votre version du noyau est la 2.6.10-5-386

Avec une disquette de démarrage GRUB

Si vous n'avez pas de LiveCD mais vous avez un lecteur de disquette, c'est la méthode la plus simple. Tout d'abord, créez une disquette démarrable de GRUB en suivant le didacticiel: disquette_de_boot_avec_grub. Y placer aussi la sauvegarde du fichier MBR comme expliqué dans ce même didacticiel.

Puis, (ré)installez Windows. Une fois que vous êtes prêt à revenir sous Ubuntu, insérez la disquette et redémarrez l'ordinateur. Grub apparaît. Sélectionnez Ubuntu. Une fois le démarrage terminé, ouvrez le Terminal et entrez le code suivant pour restaurer le MBR qui se trouve dans votre disquette:

sudo dd if=/media/floppy/boot.mbr of=/dev/hda bs=512 count=1

Retirez la disquette, redémarrez pour vérifier que tout est rentré dans l'ordre. Sinon, essayez les méthodes ci-dessous.

Avec une disquette de démarrage GRUB mais ne contenant pas le MBR

Une fois que vous êtes prêt à revenir sous Ubuntu, insérez la disquette et redémarrez l'ordinateur. Grub apparaît. Sélectionnez Ubuntu. Une fois le démarrage terminé, ouvrez le Terminal et entrez le code suivant pour restaurer le MBR au démarrage de votre ordinateur:

sudo -s

pour passer en tant que super utilisateur

/sbin/grub-install /dev/hda

pour réinstaller le mbr de façon à ce que grub se lance au démarrage de votre ordinateur

Avec un LiveCD

Pour commencer la procédure de restauration, insérez votre live CD et redémarrez votre ordinateur. Laissez la procédure de boot du live CD se dérouler jusqu'à ce que vous arriviez à une interface. Si votre live CD ne vous propose pas immédiatement une console (aussi appelée terminal), ouvrez-en une (pour faire ceci, cliquez sur Applications → Outils Systèmes → Terminal).

Note: Si le terminal n'est pas présent allez dans Applications → Installer des logiciels Puis Outils systèmes → Autres → Terminal

Note: Comme c'est un environnement live CD, tout changement aux comptes utilisateurs ou aux fichiers système ne sera pas définitif à ce niveau. Cela signifie que vous pouvez créer des répertoires temporaires sans changer votre installation locale de Ubuntu.

Maintenant, vous avez besoin d'un accès superutilisateur. Sous Ubuntu, vous pouvez le faire grâce à la commande suivante:

sudo -s

Avec Knoppix, la commande suivante suffit, et on ne vous demandera pas de mot de passe:

su -

Maintenant que vous avez un accès root, vous avez besoin de monter la ou les partitions contenant les fichiers de boot.

Vous devez avoir accès à votre répertoire /sbin ainsi qu'à votre répertoire /boot. Si vous avez une ligne /boot dans votre fstab, vous êtes parmi ceux qui auront besoin de monter deux partitions.

Commencez par créer un point de montage pour votre environnement de travail. Vous remarquerez que cela revient à créer un répertoire.

mkdir /mnt/work

Si vous avez besoin de monter /boot, exécutez également l'instruction suivante:

mkdir /mnt/work/boot

Maintenant il est temps de charger les données de votre système de fichiers. Relisez votre fstab et identifiez où se trouve(nt) / et /boot/; cela ressemblera vraisemblablement à /dev/hda3 et /dev/hda4 bien que la lettre "a" et les chiffres "3" et "4" peuvent différer.

Note: Pour la suite de ce "howto", on utilisera /dev/hda3 et /dev/hda4 donc changez-les le cas échéant.

Entrez les commandes suivantes afin de charger votre système de fichiers ainsi que quelques informations dont GRUB peut avoir besoin.

mount /dev/hda4 /mnt/work 
mount -o bind /dev /mnt/work/dev
mount -o bind /proc /mnt/work/proc
cp /proc/mounts /mnt/work/etc/mtab
  

Maintenant, vous devez entrer dans votre environnement de travail. Lancez la commande suivante:

chroot /mnt/work/ /bin/bash

Attention: À partir de ce point, toute modification d'un fichier sera pris en compte. Vous n'avez plus la sécurité du LiveCD.

Passez à l'étape suivante.

Avec le CD-Rom SystemRescueCD

  • Téléchargez SystemRescueCD à partir du site officiel, puis gravez-le.
  • Lancez votre ordinateur afin de démarrer sur le CD
  • Appuyez sur Entrée lorque l'écran de démarrage apparaît
  • Entrez 16 comme code clavier
  • Montez votre partition Ubuntu dans le dossier temp1:
mount /dev/hdax /mnt/temp1

x étant le numéro de votre partition sur le disque hda (ou hdb au choix)

  • Chrootez la partition ainsi montée:
chroot /mnt/temp1 /bin/sh -i
  • Passez à l'étape suivante….

Avec votre LiveCD

Si vous avez une partition distincte pour /boot/, tapez la commande suivante:

$ mount /dev/hda3 /boot/

Réinstaller GRUB à partir de ce point est facile, tapez la commande suivante:

$ /sbin/grub-install /dev/hda

Si cette commande ne fonctionne pas, ce qui est peu probable, vous allez devoir configurer GRUB manuellement (ce n'est pas trop dur); si au contraire elle a fonctionné, vous devriez lire: "Configuring the GRUB menu".

Avant de passer à l'étape suivante, il est important de comprendre comment GRUB identifie les partitions.

NB: Si vous obtenez l'erreur "Could not find device for /boot: Not found or not a block device.", faites

cp /proc/mounts /etc/mtab

Pour GRUB, les nombres commencent à 0 et les lettres sont exprimées numériquement, commençant également à 0.

Par exemple, /dev/hda1 est "hd0,0" pour GRUB. De la même façon, /dev/hdb3 est "hd1,2" (si hda est un disque dur)

Note: La ligne "root" doit pointer sur la location de votre partition /boot/ si vous en avez une. Si vous n'en avez pas, il faut qu'elle pointe sur votre partition /.

/sbin/grub 
grub> root (hd0,2)
grub> setup (hd0)
grub> quit

Note: Cette etape n'est pas indispensable si vous essayez juste de récupérer votre MBR. L'installation de Windows ne va pas changer le contenu de votre menu.lst, donc si tout fonctionnait correctement avant, tout continuera `a fonctionner maintenant et vous pouvez donc redémarrer votre ordinateur.

Ouvrez /boot/grub/menu.lst avec votre editeur de texte préféré. Par exemple:

nano /boot/grub/menu.lst

Note: Le menu.lst est utilise pour contrôler l'affichage de GRUB au démarrage ainsi que son apparence. Cet "howto" ne vous expliquera pas comment le rendre joli mais le fera fonctionner, c'est tout!

Vous trouverez ci-dessous un exemple de menu.lst dénué de tout commentaire. Il est base sur l'exemple de /dev/hda3 et /dev/hda4 utilise précédemment et suppose que Windows est sur /dev/hda1.

timeout 5 #Le nombre de secondes que GRUB devra attendre avant de démarrer sur l'OS
default 0 #L'entree sur laquelle GRUB démarrera par défaut
fallback 1 #L'entree sur laquelle GRUB démarrera si la première entrée par défaut génère une erreur
 
title  Ubuntu, 2.6.10 #Une entrée Ubuntu 32bits
root   (hd0,0)
initrd /initrd.img-2.6.10-5-386
kernel /vmlinuz-2.6.10-5-386 root=/dev/hda4
 
title  Ubuntu, 2.6.10 #Une autre entrée Ubuntu 32bits
root   (hd0,4)
initrd /boot/initrd.img-2.6.10-5-386
kernel /boot/vmlinuz-2.6.10-5-386
 
title  Microsoft Windows XP Home #Une entrée pour une installation Windows
root   (hd0,3)
makeactive
chainloader +1

Voila, c'est termine, sauvegardez ce fichier, ensuite redémarrez et testez les entrées de GRUB.


N'y a t-il pas une erreur ?

"Par exemple, /dev/hda1 est "hd0,0" pour GRUB. De la même façon, /dev/hdb3 est "hd1,2""

serait a remplacer par

"Par exemple, /dev/hda1 est "hd0,0" pour GRUB. De la même façon, /dev/hdb3 est "hd0,2""

Si ca n'est pas le cas, veillez m'excuser (alphamax)


Non, il n'y a pas d'erreur car, comme cite ci-dessus dans l'article, la numérotation des lettres commence, pour GRUB, à partir de 0 donc:

  • a → 0
  • b → 1
  • c → 2
  • d → 3
  • etc…

Donc "/dev/hdb3" est bien "hd1,2" pour GRUB :)

c_dd2 (visiteur de passage ;])


Note : suite aux commentaires apportés sur cette page (que je viens de supprimer), j'ajoute que hd$ correspond seulement aux disques durs. HD comme HardDrive. hd0, premier disque, hd1, deuxième disque…


Je dirais même que les hd$ correspondent seulement aux disques durs IDE, les SATA sont des sd$ GruntGrunt (de passage aussi)

  • installation/recup_ubuntu_apres_win.1188552318.txt.gz
  • Dernière modification: Le 18/04/2011, 14:49
  • (modification externe)