Impossible de réinstaller GRUB suite à reinstall XP !

Bonsoir à tous,

Ayant réinstallé XP (oui, je sais déjà la 1ère erreur :wink: ) sur mon portable (qui était en dual boot avec ma Lenny par le biais de GRUB) ma MBR a été réécrite et donc plus de GRUB ! (=> Je ne suis pas le 1er et ne serais pas le dernier à me faire avoir !)

Après recherches à droite et à gauche sur le Net, j’insère mon DVD d’install Lenny, je passe en mode Advanced Options/Rescue mode : langage = français, pays = France, clavier = Italien (clavier QWERTY) Ne pas configurer le réseau maintenant, Nom de machine = debian (on s’en fout de toute façon) et c’est à “Périphérique à monter comme système de fichiers racine (/)” que commencent mes problèmes : quoi choisir dans la liste proposée (/dev/hda1 ou /dev/hda2 ou /dev/hda3 ou /dev/hda5 ou /dev/hda6 ou /dev/hda7 ou /dev/hda8 ou /dev/hda9) sachant que je n’ai qu’un seul disque dur (160Go) sur ce PC avec 40 Go pour XP, (installé en premier il y a longtemps) le reste étant pour ma Debian et que d’après le “Gestionnaire de disque” de Window$ j’ai :

  • 2 partitions principales : NTFS (40Go) + inconnue (337Mo)
  • 1 partition étendue, constituée de 5 lecteurs logiques : inconnue (4,66Go) + inconnue (2,8Go) + inconnue (2,53Go) + inconnue (384Mo) + inconnue (99,3Go)

J’ai essayé plusieurs choses…
D’abord ce qui me paraissait logique : /dev/hda2 puis “Réinstallation du programme de démarrage GRUB” (les autres choix obtiennent soit une erreur de montage, soit se monte mais ne proposent pas “Réinstallation du programme de démarrage GRUB” donc de ce coté là, je pense que /dev/hda2 est bon !)
Ensuite, j’ai tout d’abord mis hd0 (ou /dev/hda) et j’ai bien vu une rapide barre de progression “Installation du programme GRUB” puis j’ai fait redémarrer le système et malheureusement, je reboote sur XP :imp: !
J’ai ensuite essayé hd0,0 (ou /dev/hda1) et aussi hd0,1 (ou /dev/hda2) re-barre de progression, re-redémarrage et re XP :imp: :imp: !
J’ai aussi essayé en passant par “Exécuter un shell dans /dev/hda2” de voir le contenu de /boot/grub/menu.lst :

[code]title Debian GNU/Linux, kernel 2.6.26-1-686
root (hd0,1)
kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/hda2 ro quiet
initrd /boot/initrd.img-2.6.26-1-686

title Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/hda2 ro single
initrd /boot/initrd.img-2.6.26-1-686

title Other operating systems:
root

title Microsoft Windows XP Professionnel
root (hd0,0)
savedefault
makeactive
chainloader +1[/code]
et vu ce que j’en lis et crois en comprendre, l’une des trois solutions essayées aurait du fonctionner, non ?

Alors d’où vient mon erreur ???

Merci d’avance pour votre aide…

@+
Eric

Question subsidiaire: c’est quoi au juste la 8ème partition que le mode rescue m’a trouvé (/dev/hda3) ???

Il passe avant via le système de démarrage écrit sur le mbr. Si debian n’y est pas ou si tu ne la pas “chainloadé” là, il démarre sur le seul truc qu’il trouve: XP.
Normalement (Mais je n’ai pas de Windows sur mes machines) si en mode rescue tu réinstalles grub sur le mbr, cela devrait marcher.

Salut,

Il faut effectivement procéder comme tu l’as fait :
Démarrer en rescue
Exécuter un shell (apparemment sur /hda2 c’est bon)

Ensuite :

sudo grub find /boot/grub/stage1 root (hd0,1) (en fonction du résultat de la commande ci-dessus !) setup (hd0) quit

Et tu redémarre (croise les doigts) ! :mrgreen:

Puisque ton PC était en dual boot Windows+Linux - avec Windows installé en premier, je suppose - ton erreur a surtout été d’avoir installé l’amorce de grub dans le MBR (/dev/hda, hd0) où elle était à la merci de Windows, au lieu de l’installer dans la partition Linux de boot|root (a priori /dev/hda2, hd0,1) si son type de système de fichier le permet (c’est le cas avec ext2 et ext3 notamment) où elle aurait été préservée. La seule opération à faire après la réinstallation de Windows pour réactiver grub aurait été de marquer la partition Linux active avec le gestionnaire de disques de Windows. Je te suggère de profiter de cette occasion pour réinstaller grub dans une partition Linux bootable.

EDIT : Si ça se trouve en fait c’est ce que tu avais fait. :smiley:

EDIT 2 : Ça m’étonnerait, sinon l’option “makeactive” aurait activé la partition Windows au lieu de la partition Linux contenant grub, et grub n’aurait plus été chargé après le premier démarrage de Windows. Il faut donc supprimer cette option si grub est installé dans une partition et non le MBR.

Si tu ne te souviens pas à quoi correspondent les partitions, tu peux ouvrir un shell dans une autre console (alt+2 ou alt+3) et faire un “fdisk -l” ou cfdisk sur /dev/hda.

[quote=“Eric75”]Ensuite, j’ai tout d’abord mis hd0 (ou /dev/hda) et j’ai bien vu une rapide barre de progression “Installation du programme GRUB” puis j’ai fait redémarrer le système et malheureusement, je reboote sur XP :imp: !
J’ai ensuite essayé hd0,0 (ou /dev/hda1) et aussi hd0,1 (ou /dev/hda2) re-barre de progression, re-redémarrage et re XP :imp: :imp: ![/quote]
Oula ! D’après ton menu.lst, /dev/hda1 (hd0,0) est la partition Windows, y installer grub aurait dû écraser le code amorce qui lance le chargeur de Windows (ntloader), ce qui rend impossible le démarrage de Windows. Si Windows se lance toujours, j’ai comme l’impression que la soi-disant installation de grub n’a en réalité rien fait. Idem dans les autres cas, l’installation dans /dev/hda (hd0) aurait dû le faire réapparaître (sauf si menu.lst lui dit de ne pas afficher le menu et de démarrer Windows en priorité).

Note : tu peux vérifier avec “file -s /dev/hda*” ce qui est installé dans le MBR ou l’amorce des partitions.

Je dirais que c’est la partition étendue qui contient les partitions logiques /dev/hda5 et suivantes. A ce propos, on peut aussi installer l’amorce du chargeur dans l’EBR qui est l’équivalent du MBR pour la partition étendue (je l’ai fait avec lilo, y a pas de raison que ça ne marche pas avec grub) mais c’est plus délicat pour la déclarer amorçable car tous les outils de gestion de partitions ne le permettent pas, et notamment celui de Windows ce qui n’est pas pratique.

Désolé Pascal,
J’espère ne pas avoir été trop rapide et simpliste dans ma solution… Nous avons posté en même temps exactement, sinon je me serais “éclipsé”…

@ lol : Nos deux réponses ne sont pas dans le même plan et donc complémentaires. Et contradictoires dans la mesure où tu suggères d’installer l’amorce de grub dans le MBR (comme il était précédemment probablement) alors que je suggère de l’installer dans la partition principale Linux afin d’éviter que le problème se reproduise.

1°) Merci à vous trois pour votre aide : c’est super cool !

@PascalHambourg :

[quote=“PascalHambourg”]dual boot Windows+Linux - avec Windows installé en premier, je suppose -[/quote]exact !

[quote=“PascalHambourg”]ton erreur a surtout été d’avoir installé l’amorce de grub dans le MBR (/dev/hda, hd0) où elle était à la merci de Windows, au lieu de l’installer dans la partition Linux de boot|root (a priori /dev/hda2, hd0,1)[/quote]maintenant, grace à toi, je sais que ça peut se faire… pour la prochaine fois… :wink:

[quote=“PascalHambourg”]La seule opération à faire après la réinstallation de Windows pour réactiver grub aurait été de marquer la partition Linux active avec le gestionnaire de disques de Windows.[/quote]sauf que ce “cher” Window$ me laisse l’option “Activer la partition” grisée sur toutes les partitions quelle qu’elles soient ! (droits admin)

[quote=“PascalHambourg”]fdisk -l[/quote]me donne :

Disk /dev/hda: 160.0 GB 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xd8d0d8d0 Device Boot Start End Blocks Id System /dev/hda1 * 1 5099 40957686 7 HPFS/NTFS /dev/hda2 5100 5142 345397+ 83 Linux /dev/hda3 5143 19457 114985237+ 5 Extended /dev/hda5 5143 5750 4883728+ 83 Linux /dev/hda6 5751 6115 2931831 83 Linux /dev/hda7 6116 6445 2650693+ 82 Linux swap / Solaris /dev/hda8 6446 6494 393561 83 Linux /dev/hda9 6495 19457 104125266 83 Linux

[quote=“PascalHambourg”]D’après ton menu.lst, /dev/hda1 (hd0,0) est la partition Windows, y installer grub aurait dû écraser le code amorce qui lance le chargeur de Windows (ntloader)[/quote]donc j’suis pas si bête alors… :smt003 parce c’est justement ce que je pensais au début… mais vu comment ça a réagit (ou pas, justement !) j’ai eu un gros doute !!!
Et en plus le fdisk -l confirme bien que je boote sur /dev/hda1 (hd0,0) : ça aurait donc du fonctionner !!!

[quote=“PascalHambourg”]sauf si menu.lst lui dit de ne pas afficher le menu et de démarrer Windows en priorité[/quote]non, non, c’est lenny qui démarrait au bout de 10s avant…

:arrow_right: je ne comprends pas !

[quote=“Eric75”]Question subsidiaire: c’est quoi au juste la 8ème partition que le mode rescue m’a trouvé (/dev/hda3) ???[/quote][quote=“PascalHambourg”]Je dirais que c’est la partition étendue qui contient les partitions logiques /dev/hda5 et suivantes.[/quote]exact et confirmé par le fdisk -l ! (C’est bien, j’en apprends des choses !!!)

@lol :
J’ai essayé aussi ta méthode… mais je dois merdouiller quelque part car toutes les commandes foirent :

sh-3.2# sudo grub sh: sudo: command not found

sh-3.2# find /boot/grub/stage1 sh: find: command not found
J’ai aussi essayé :

sh-3.2# su root@debian: / # grub bash: grub: command not found root@debian: / # find /boot/grub/stage1 bash: find: command not found
etc, etc…
J’ai essayé aussi en ouvrant une console (Alt+F2) mais résultats identiques !

:arrow_right: $#@!§£%*&$#
de grosse $%*#@ de Window$ :smt013

:smt022

Ah zut, le gestionnaire de disques de Windows ne permet d’activer que les partitions principales de type Windows (FAT et NTFS). Donc il faut un autre outil ou booter avec autre chose pour réactiver une partition Linux. Comme mes PC ont encore un lecteur de disquette j’utilise “Smart Boot Manager” (SBM) fourni sur le CD d’installation de Debian qui permet de booter sur n’importe quelle partition.

Note : Quand j’ai dit que l’installation de grub sur la partition Windows aurait dû écraser le secteur d’amorce de celle-ci, ce n’était pas une bonne chose car cela aurait empêché Windows de démarrer. On peut installer grub dans le MBR ou dans le secteur d’amorce d’une partition Linux de type compatible (ext2, ext3 notamment mais pas swap ou XFS) mais pas dans celui d’une partition Windows.

Concernant les commandes indiquées par lol, ce n’est pas la peine d’utiliser sudo ou su puisque tu es déjà root. Tu les exécutes bien après avoir monté /dev/hda2, chrooté dessus et monté /usr si c’est une partition séparée car le programme grub est dans /usr/sbin ? Ici “find”, “root” et “setup” sont des commandes de l’interpréteur de grub, pas des programmes lancés depuis le shell.
Tu as essayé “file -s” pour savoir ce que contiennent le MBR (/dev/hda) et les secteurs d’amorce des partitions (/dev/hda*) ?

Bonjour,

C’est la sagesse ! Mais c’est parfois plus “compliqué”…

Oui là, je me suis laissé emporté avec sudo… :blush:

Si c’est avec le CD debian en mode “rescue” je pense que ce n’est pas la peine ?

@Eric

Effectivement les commandes ne doivent ps être précédées de “sudo”. Tu es déja en root “sh-3.2#” dans ta console… (désolé)
Donc simplement réessaye sans “sudo”

Si ça ne fonctionne toujours pas, vérifie que grub est bien installé…

$ dpkg-query -W | grep -i grub grub 0.97-55 grub-common 1.96+20090725-1 grub-legacy 0.97-55

A +

[quote=“PascalHambourg”]et monté /usr si c’est une partition séparée car le programme grub est dans /usr/sbin[/quote]heu… j’aurai du faire fonctionner un peu plus mon neurone… car c’est vrai que c’est évident !!! Désolé… :blush:
Comme je ne sais pas exactement sur quelle partition ce trouve /usr, j’ai fait un mount -a comme ça je suis tranquille !
Et effectivemment, j’ai moins d’erreur du style command not found. :smt003

Voici donc ce que me donne file -s :

sh-3.2# file -s /dev/hda1 /dev/hda1: x86 boot sector sh-3.2# file -s /dev/hda2 /dev/hda2: Linux rev 1.0 ext3 filesystem data, UUID=99293bc9-d7fe-4b0c-824c-96bbd1c57c38 sh-3.2# file -s /dev/hda3 /dev/hda3: x86 boot sector; partition 1: ID=0x83, starthead 1, startsector 63, 9767457 sectors; partition 2: ID=0x5, starthead 0, startsector 9767520, 5863725 sectors sh-3.2# file -s /dev/hda5 /dev/hda5: Linux rev 1.0 ext3 filesystem data, UUID=dba3d25e-1f59-4332-be07-fc012c22ce01 (needs journal recovery) (large files) sh-3.2# file -s /dev/hda6 /dev/hda6: Linux rev 1.0 ext3 filesystem data, UUID=62fad2bb-2029-4c3c-a7f8-c32f9c96e156 (needs journal recovery) (large files) sh-3.2# file -s /dev/hda7 /dev/hda7: Linux/i386 swap file (new style), version 1 (4k pages), size 662672 pages, no label, UUID=0-0-0-0-00 sh-3.2# file -s /dev/hda8 /dev/hda8: Linux rev 1.0 ext3 filesystem data, UUID=99626330-15cc-40a6-9b60-f464a01c5103 (needs journal recovery) sh-3.2# file -s /dev/hda9 /dev/hda9: Linux rev 1.0 ext3 filesystem data, UUID=36996fe1-f0c2-4e83-8833-751b4ca19b (needs journal recovery) (large files)

J’ai deux x86 boot sector… (hda1 et hda3) normal/pas normal ???

@lol :

sh-3.2# grub Probing devices to guess BIOS drives. This may take a long time. Error opening terminal: bterm.

Et juste pour info :

sh-3.2# dpkg-query -W|grep -i grub grub 0.97-47lenny2 grub-common 1.96+20080724-16
J’ai pas de grub-legacy !

Salut,

Tu trouveras dans la FAQ de ce site comment réinstaller Grub :

forums.knoppix-fr.org/

[quote=“Eric75”]

sh-3.2# grub Probing devices to guess BIOS drives. This may take a long time. Error opening terminal: bterm.[/quote]
essaye ça

Sinon effectivement voici une solution (qui sera peut-être plus simple)
Avec un liveCD
Tu monte ta partition ou est installée la debian dans un répertoire préalablement créé

mkdir /mnt/repertoire

mount /dev/hda3 /mnt/repertoire ( hda3 étant la partition contenant debian, à vérifier)

puis tu “chroot”

chroot /mnt/repertoire

Et tu réinstalle grub

grub-install /dev/hda

Il faudra que tu cherches un peu, avec le chroot il doit falloir monter d’autres dossiers (proc, dev…) ? mais je n’ai pas ça en tête… Et si tu trouve par toi même ce sera plus gratifiant…

Je pense que ça devrait “le faire” :wink:

@ggoodluck47 :
Rien trouvé dans la FAQ !
Par contre, en faisant une recherche avec GRUB comme mot clé, je suis tombé ici sur un de tes posts et j’ai tenté le grub-install /dev/hda et tout est redevenu dans l’ordre ! :smiley:

:arrow_right: Quel bonheur de revoir mon petit GRUB adoré qui start automatiquement ma Debian (adorée aussi) au lieu de cette $#@!§£%*&$# de grosse $%*#@ de Window$ !!!

Un grand merci à vous tous pour votre aide : j’ai encore appris pleins de choses grâce à vous, mais j’ai pas encore tout compris… :blush: d’où cette dernière petite question svp : mon GRUB, il est installé où finalement : sur la 1ère partition principale de mon HD de 160Go et non sur la MBR alors ?

@lol :
J’avais pas vu ta dernière réponse…

[quote=“lol”]Et tu réinstalle grub

grub-install /dev/hda[/quote]exact : c’est “juste” ça qu’il fallait faire… (après avoir monté /usr :wink: !)

Donc, je ne sais pas comment opère le Rescue mode de la Debian mais apparemment, pas de la même façon qu’un “simple” grub-install /dev/hda !!!

Re,

Un premier morceau se trouve sur le MBR, il permet de lire ce qui se trouve dans /boot/grub/menu.lst :slightly_smiling:

[quote=“Eric75”]@lol :
J’avais pas vu ta dernière réponse…

[quote=“lol”]Et tu réinstalle grub

grub-install /dev/hda[/quote]exact : c’est “juste” ça qu’il fallait faire… (après avoir monté /usr :wink: !)

Donc, je ne sais pas comment opère le Rescue mode de la Debian mais apparemment, pas de la même façon qu’un “simple” grub-install /dev/hda !!![/quote]

Le principal est que cela fonctionne…

N’oublie pas de mettre ce fil en [résolu] :wink:

Donc vaut-il mieux “laisser” ça comme c’est actuellement (puisque je sais maintenant comment réparer les bétises d’XP ou faire comme PascalHambourg & lol le suggère : [quote=“PascalHambourg”]je suggère de l’installer dans la partition principale Linux afin d’éviter que le problème se reproduise.[/quote][quote=“lol”]C’est la sagesse ! Mais c’est parfois plus “compliqué”…[/quote]mais dans ce cas, comment faire ???

Note : je passe ce post en résolu puisque grâce à vous c’est le cas ! :mrgreen:

Décidemment, j’me suis fais encore grillé d’une 1 minute : j’avais pas vu ta réponse lol !

Salut,

Je suis curieux de savoir comment vous faites pour booter après avoir installé grub autre part que sur le MBR (sans utiliser le menu Windows, bien sûr)

(Je connais mal grub d’un point de vue pratique, ayant plutôt bricolé avec lilo, mais ce fil me donne l’occasion de me familiariser avec lui.)

* Concernant le message d’erreur de grub "Error opening terminal: bterm"
Il semble qu’il y a un problème entre la commande grub (et d’autre programmes comme nano) et le terminal bterm de la première console en framebuffer de l’installateur Debian. Une solution est d’utiliser grub-install à la place de grub comme tu l’as fait, mais la documentation de grub avertit que cette procédure est moins fiable car dans certaines configurations grub-install peut se tromper en devinant le mapping entre les noms de périphérique Linux (/dev/hda) et grub (hd0). Dans un cas simple comme le tien (un seul disque en primary master) il ne devrait pas y avoir de problème.

Il y avait néanmoins d’autres solutions pour exécuter grub depuis le CD d’installation Debian en mode rescue :

  • Désactiver le framebuffer en ajoutant l’option “fb=false” au démarrage du CD, avec l’inconvénient que certaines langues “exotiques” ne seront pas supportées sans framebuffer. Le type de terminal est alors “linux”.

  • Exécuter grub avec l’option --batch ou --no-curses, avec l’inconvénient mineur que la complétion et l’historique des commandes ne seront pas disponibles.

  • Modifier la variable d’environnement $TERM pour déclarer un autre terminal à la place de “bterm” comme l’a proposé lol :

avec l’inconvénient que l’affichage peut être altéré, notamment les lignes qui se recouvrent.

  • Exécuter grub dans la console 2 ou 3 de l’installateur qui ont comme type de terminal “linux”. Pour cela, il faut faire le chroot à la main comme pour la solution avec un CD live proposée par lol. En supposant que la partition racine est déjà montée sur /target en mode rescue :

* Concernant l’absence du paquet grub-legacy
Ce paquet n’existe pas dans lenny et n’apparaît qu’à partir de squeeze, c’est normal que tu ne l’aies pas.

* Concernant l’endroit où grub est installé.
Grub se décompose en 2 ou 3 parties appelées “stages”, chacune lançant la suivante :

  • stage1 est l’amorce de grub, située dans le MBR ou le secteur de boot d’une partition
  • stage1.5 (optionnel) sert à lire un type de système de fichiers si stage2 est dessus
  • stage2 contient le gros de grub (interpréteur, menu, chargeur…), c’est ce dernier et non le stage1 qui lit le fichier menu.lst.

En général quand on dit “installer grub”, on parle surtout du stage1, pour le reste c’est grub qui se débrouille.

a installé le stage1 dans le MBR du disque dur hda à la place du code amorce standard de DOS/Windows. Pour l’installer dans le secteur de boot de la partition principale Linux il aurait fallu indiquer hda2, puis rendre celle-ci amorçable à la place de la partition Windows hda1 car le MBR standard de DOS/Windows charge le secteur de boot de la partition marquée bootable.

@ ggoodluck47
Le code standard du MBR de DOS/Windows (ou du paquet mbr par exemple) amorce la partition principale marquée active (bootable), donc il suffit de marquer la partition où grub est installé comme active avec fdisk ou autre. Une limitation est donc que ce doit être une partition principale (y compris la partition étendue) car le MBR standard ne peut booter une partition logique.