PDA

Voir la version complète : You touch my bootloader, my dingdingdong



Dark Fread
20/05/2010, 15h06
Yep,

Vu que mon problème initial (http://forum.canardpc.com/showthread.php?t=196&page=325&post=#9725) s'est fait diluer dans un passionnant débat sur le topic Linux, et que ce problème ne touche pas exclusivement à l'OS des hippies, j'en fais donc un petit topic. :p

Donc, pour résumer, j'ai foiré ma mise à niveau de Ubuntu 9.10 en 10.4. Je suppose qu'il s'est déroulé les choses suivantes (je veux bien une confirmation pour ce qui est en gras :)) :

Détails :

HDD1 (sda) 74 Go - Seven sur une partition de 50Go (sda1), partition vide de 24Go (sda2)
HDD2 (sdb) 750 Go - Données seulement, aucun OS
HDD3 (sdc) 200 Go - Windows XP sur une partition de 160Go (sdc1), Ubuntu sur une de 39 (sdc3), un swap de 1Go. (sdc2)

L'ordre de boot des disques dans le bios est (floppy, DVD) HDD1, HDD2, HDD3.

Les faits :

-à la première installation de mon payçay, j'ai procédé de cette manière :
-+installation de XP sur la partition 1 de HDD3
-+le bootloader Windows a donc logiquement été écrit sur le MBR de HDD3
-+installation de 7 sur HDD1
-+7 n'a fait que mettre à jour le bootloader, qui est ainsi resté sur HDD3 (?)
-+installation d'Ubuntu 9.10 sur HDD3, partition 3, swap sur la partition 1***
-+tout cela marchait nickel, avec un Grub proposant de booter le loader Windows

***tiens, mais il s'était foutu où, Grub, à ce moment-là :blink:

Suite au malencontreux ratage de mise à niveau Ubuntu (qui m'empêcha de booter mes Windows), je suis à présent pratiquement certain d'avoir flingué le bootloader Windows en l'écrasant par Grub, du coup :

-+j'ai sorti le DVD de Seven
-+console de récupération, bootrec /FixBoot, bootrec /FixMbr, bootrec /RebuildBcd
-+les commandes du dessus m'ont permis de booter à nouveau les Windows, MAIS je pense que cela a écrit un nouveau bootloader sur HDD1(?)

Or, je suis peut-être un peu compliqué comme mec, mais je voudrais faire la chose suivante :

-+reconstruire le bootloader Windows sur HDD3
-+pour installer Grub sur le MBR de HDD1

La ligne verte (:tired:), a priori je sais faire :


sudo grub-install /dev/sda
(sauf que pas sûr que le nouveau grub-pc fonctionne si on l'installe sur une partition différente de celle où est Ubuntu :huh:)

Mais la ligne rouge, je trouve pas. J'ai essayé d'aller voir du côté de EasyBCD (http://neosmart.net/dl.php?id=1), un déplcament de loader ne semble pas entrer dans ses qualifications. D'autre part, utiliser son option permettant de créer une entrée Linux dans le bootloader Windows ne fonctionne pas non plus, car il utilise pour cela un Grub différent de celui employé par la dernière version d'Ubuntu.
Peut-être une bête option à ajouter aux commandes fixmbr, fixboot etc ?
Si j'utilise le CD d'XP pour des fixboot et cie, Xp étant sur HDD3, peut-être que ça écrira dans le MBR de ce disque ? Seulement j'ai voulu essayer, la console de récup' m'a demandé le mot de passe administrateur... Normalement y'en a pas, pourtant. J'ai essayé de valider sans mot de passe, avec mon mdp habituel, ou avec "admin", je me suis fait jeter. Donc il me faudra un truc pour trouver ce soi-disant mot de passe.

Si vous avez une idée, je suis preneur ! :lol:

PS : oui, je pourrais aussi changer ma boot sequence, avec HDD3 en premier... Mais c'est naze comme solution, non ? :ninja:

Nihihi
20/05/2010, 15h22
Pour restaurer le bootloader d'XP, le plus sur ça serait de garder que HDD3 de branché, et de le faire à coup d'easybcd/cd d'XP

Quand à l'ordre de boot, j'dirais qu'au contraire, ça serait la solution cohérente : Grub est installé sur le disque d'ubuntu (et donc stage1, stage 2 sur le même disque), et quand tu veux démarrer Seven, tu chainload sur un autre disque..
L'avantage est que si tu perd un des deux disques durs, tu pourras quand même démarrer sur l'autre. Avec l'installation que tu veux faire, si tu perd un disque dur, tu ne pourras plus rien démarrer, car grub aura perdu la moitié de lui même...

Edit : Par contre, si tu change l'ordre de boot, vérifie l'ordre des disques au moment de refaire les disques, histoire de pas reflinguer le bootloader de seven :)

Dark Fread
20/05/2010, 16h31
Merci de tes lumières ;)


Pour restaurer le bootloader d'XP, le plus sur ça serait de garder que HDD3 de branché, et de le faire à coup d'easybcd/cd d'XP

Ah mais oui, je suis con...
Par contre ça va peut-être être un peu bancal, vu que, HDD1 débranché, il sera impossible de détecter l'installation de Seven...?
Hum quoique... Je débranche HDD1, je refais un bootloader sur HDD3 et pour être sûr (7 détecte une install d'XP, mais l'inverse ? Bah, j'imagine que oui) je mets à jour le bootloader via le DVD de Seven par exemple (pour ajouter l'entrée de boot Seven - et avec le DVD de Seven, je n'ai pas le problème zarbi du mdp admin)


Quand à l'ordre de boot, j'dirais qu'au contraire, ça serait la solution cohérente : Grub est installé sur le disque d'ubuntu (et donc stage1, stage 2 sur le même disque), et quand tu veux démarrer Seven, tu chainload sur un autre disque..

D'accord. Question subsidiaire ; changer l'ordre de boot ne va pas foutre le boxon dans mes lettres de disque ? (C: qui devient D: ou des trucs dans le style ?)
Pratiquement sûr que non, les lettres sont attribuées par Windows, mais je préfère être certain :p

Nihihi
20/05/2010, 16h48
Merci de tes lumières ;)



Ah mais oui, je suis con...
Par contre ça va peut-être être un peu bancal, vu que, HDD1 débranché, il sera impossible de détecter l'installation de Seven...?
Hum quoique... Je débranche HDD1, je refais un bootloader sur HDD3 et pour être sûr (7 détecte une install d'XP, mais l'inverse ? Bah, j'imagine que oui) je mets à jour le bootloader via le DVD de Seven par exemple (pour ajouter l'entrée de boot Seven - et avec le DVD de Seven, je n'ai pas le problème zarbi du mdp admin)



D'accord. Question subsidiaire ; changer l'ordre de boot ne va pas foutre le boxon dans mes lettres de disque ? (C: qui devient D: ou des trucs dans le style ?)
Pratiquement sûr que non, les lettres sont attribuées par Windows, mais je préfère être certain :p

En fait, l'idée, ça serait d'avoir 3 bootloaders propres :
-Celui de Seven dans le MBR + la partition système de HDD1, qui se débrouille tout seul si le disque est tout seul. Il sait faire booter Seven et c'est tout
-Celui de XP dans la partition XP de HDD3, capable de booter XP et c'est tout
-Grub dans le MBR et la partition Ubuntu de HDD3, capable de booter Linux, et de chainloader sur les bootloaders d'XP/Seven.

Comme ça, tu évites le multicombo grub-> loader d'XP -> loader de seven quand tu veux démarrer Seven, tes deux disques peuvent démarrer seuls si l'autre dur crash, ton seul fichier de conf à éditer est celui de Grub pour modifier qu'est ce qui boot...

Pour arriver à ça, à ta place je ferais :
-hdd1 branché seul : on fait un bootloader propre pour Seven
-hdd3 branché seul : on fait on bootloader propre pour XP
-tout le monde branché, hdd3 en périph de boot principal : installation de grub (on écrase donc le MBR d'XP)

Dans la conf de grub, il te faudra probablement remaper les disques pour démarrer Seven, mais grub devrait être capable de le faire tout seul à l'installation.

Edit : A propos des lettres de lecteur, à priori pas de problème, surtout si tu remap tes lecteurs (comme ça Seven crois qu'il est le premier disque)

Dark Fread
21/05/2010, 20h50
Bon là, vraiment, je pige pas.

Avec HDD3 branché uniquement, pas moyen de construire un bô bootloader à XP à partir du CD d'XP... En tout cas, pas avec fixboot et fixmbr :|

fixboot c: se déroule sans problème,

fixmbr également, bien qu'on m'informe avant que :


Le secteur de démarrage de votre ordinateur ne semble pas standard ou endommagé.
FIXMBR peut endommager vos tables de partitions si vous continuez.
Cela peut empêcher l'accès à toutes les partitions du disque en cours.
Si vous n'avez pas actuellement de problème d'accès au disque, arrêtez-vous là.

Malgré ces deux trucs, au redémarrage, avec HDD3 uniquement :


Reboot and select proper boot device.

Or insert boot media in selected boot device and press a key.

D'autre part, tout ça semble foirer assez tôt vu qu'en démarrant la console de récup' à l'aide du CD XP, je n'ai pas cet écran :

http://www.zebulon.fr/images/dossiers/console1.png

Enfin je l'ai, mais aucune ligne ne m'indique la détection d'une installation d'un Windows...

Nihihi
22/05/2010, 17h25
Bizarre en effet...

T'es sur que dans tes multiples essais et le foirage d'ubuntu, t'as pas foutu en l'air ta partoch XP?

T'as essayé de continuer quand même le fixmbr? (ou de rajouter un /force ou équivalent?)

Dark Fread
24/05/2010, 21h15
Bizarre en effet...

T'es sur que dans tes multiples essais et le foirage d'ubuntu, t'as pas foutu en l'air ta partoch XP?

Certain, d'ailleurs je rebranche HDD1, fixmbr/fixboot/rebuildbcd depuis le DVD de Seven, mes deux Windows sont à nouveau fonctionnels...

T'as essayé de continuer quand même le fixmbr? (ou de rajouter un /force ou équivalent?)

Oui, mais ça n'a aucun effet.

moimadmax
03/06/2010, 17h14
Oulala je me greffe sur ce sujet car j'ai plus ou moins le même problème, Car je pense que tu vas rencontrer le problème si tu suis ce que Nihihi propose. Et je pense que j'ai un peu plus avancé que toi sur ce problème précis.
J'ai un netbook (HP Mini 311C) avec un seul disque bien sur, découpé comme cela:
- sda1 : Windows XP
- sda2 : ubuntu 10.04
- sda3 : swap

Étant donné que j'utilise le plus souvent windows, je trouve logique de lui donner le MBR. Car le pc peut être tatoué, puis si je change de distrib, je suis sur que windows continu à fonctionner. C'est du vécu, si on formate sda2 on peu plus booter windows :| c'est Balot.

Là vient le problème Grub 2 (alias grub-pc) semble incapable de booter en chaine avec XP, ou plus particulièrement si il est installé sur une partition.
J'ai suivi le tuto (http://doc.ubuntu-fr.org/tutoriel/comment_amorcer_ubuntu_avec_ntldr) qui consiste à récupérer les 512 premiers octets dans un fichier que l'on renseigne dans le boot.ini. Et là je vois bien le menu grub :p (youpi) mais quand je choisi l'option par défaut j'ai un curseur clignotant et rien ne se passe.

Après j'ai essayé de mettre grub-legacy mais fail car il ne boot pas sur du ext4. Donc j'ai essayé avec la partoche en ext3 mais ca n'a pas marché non plus.

La je suis un peu à bout d'idée ... Je pense qu'avec le coup du curseur clignotant je ne devais pas être loin, car si le menu est affiché, il a bien lancé grub et lu le grub.cfg sur /dev/sda2. Mais j'ai pas trop trouvé de solution sur le net :cry:

Si y'a des bonnes âmes.

Nihihi
04/06/2010, 09h50
Étant donné que j'utilise le plus souvent windows, je trouve logique de lui donner le MBR. Car le pc peut être tatoué, puis si je change de distrib, je suis sur que windows continu à fonctionner. C'est du vécu, si on formate sda2 on peu plus booter windows :| c'est Balot.


Sauf que dans le cas de DarkFread, chaque système a son propre disque dur... l'idée est justement d'avoir 3 bootloaders indépendants, qui peuvent fonctionner seuls, et Grub qui passe la main à l'un ou l'autre... Si il formate son 'nux, il a juste à changer le disque de boot pour démarer XP ou Seven.



Là vient le problème Grub 2 (alias grub-pc) semble incapable de booter en chaine avec XP, ou plus particulièrement si il est installé sur une partition.
J'ai suivi le tuto (http://doc.ubuntu-fr.org/tutoriel/comment_amorcer_ubuntu_avec_ntldr) qui consiste à récupérer les 512 premiers octets dans un fichier que l'on renseigne dans le boot.ini. Et là je vois bien le menu grub :p (youpi) mais quand je choisi l'option par défaut j'ai un curseur clignotant et rien ne se passe.



Après j'ai essayé de mettre grub-legacy mais fail car il ne boot pas sur du ext4. Donc j'ai essayé avec la partoche en ext3 mais ca n'a pas marché non plus.

La je suis un peu à bout d'idée ... Je pense qu'avec le coup du curseur clignotant je ne devais pas être loin, car si le menu est affiché, il a bien lancé grub et lu le grub.cfg sur /dev/sda2. Mais j'ai pas trop trouvé de solution sur le net :cry:

Si y'a des bonnes âmes.

Si j'ai bien compris, tu as le menu qui permet de choisir le kernel, et quand tu appuie sur entrée, tu as un curseur clignotant?
Si c'est bien ça, l'install de grub est OK, et ça peut venir de deux choses :
-il te manque un module grub pour gérer l'ext4, ou autre
-ton kernel déconne au chargement..

sur la ligne du grub.cfg où tu as les options passées au kernel, essaie de virer le "quiet", histoire de voir un peu plus ce qui se passe...


EDIT : DarkFread, j'avais pas vu ton dernier post... J'ai atteint mes limites là... Autant je me suis pas mal battu avec Grub/lilo/syslinux, autant les bootloader Microsoft, j'ai jamais trop essayé de mettre les mains dedans..

moimadmax
04/06/2010, 14h02
Si j'ai bien compris, tu as le menu qui permet de choisir le kernel, et quand tu appuie sur entrée, tu as un curseur clignotant?
Si c'est bien ça, l'install de grub est OK, et ça peut venir de deux choses :
-il te manque un module grub pour gérer l'ext4, ou autre
-ton kernel déconne au chargement..

sur la ligne du grub.cfg où tu as les options passées au kernel, essaie de virer le "quiet", histoire de voir un peu plus ce qui se passe...


Tu as tout compris. Je vais explorer les pistes que tu proposes. Je vous tiens au jus.

EDIT: J'ai testé et ca bloque sur b43-pci-bridge 0000:03:00.0: PCI INT A -> Link[AX3A] -> GSI 16 (level, low) -> IRQ 16

LE problème semble venir de la carte wifi. Ce qui est bizarre c'est qu'avec le live USB ca marche.

RE-EDIT: J'ai trouvé la solution ici (http://forum.ubuntu-fr.org/viewtopic.php?id=360724) Merci à Nihihi pour le coup de pouce ;)

Dark Fread
06/06/2010, 16h06
autant les bootloader Microsoft, j'ai jamais trop essayé de mettre les mains dedans..

Ah tiens, et je t'ai pas donné envie ? Étrange :ninja:

Highlander
09/06/2010, 15h07
Dark Fread, tu as essayé de réparer ton boot.ini au cas où ? cf. 10 things you can do when Windows XP won't boot (http://articles.techrepublic.com.com/5100-10878_11-6031733.html?tag=mantle_skin).
À la racine de ton installation d'XP, tu as bien les fichiers nécessaires au boot d'XP (boot.ini, ntldr et NTDETECT.com d'après ce que j'ai compris) ?

Dark Fread
09/06/2010, 17h50
Merci du lien, je vais regarder ça :)

Dark Fread
12/06/2010, 11h38
Bon finalement ça a finit par me gonfler, j'ai employé une méthode radicale :

-formatage de la partition XP
-démarrage sur le DVD de 7 avec uniquement le HDD de 7 branché ; RebuildBcd, FixBoot, FixMbr
-l'ordi démarrait donc normalement, sans afficher de loader, sur 7, avec tous les disques branchés (comme si je venais de faire une install' "classique" de 7)
-installation de Ubuntu sur la partition initialement réservée à XP
-au démarrage, Grub me permet de lancer 7 ou Ubuntu correctement

Donc j'abandonne définitivement XP, mais au moins ça marche. Néanmoins si certains sont capables d'apporter des explications sur ce qui s'est passé pour que ça merde autant, j'accepte volontier, parce qu'il y a des zones d'ombre que j'aimerais bien éclaircir...
Merci de votre aide en tout cas :)

Highlander
12/06/2010, 12h11
Petite question sur ta dernière configuration : as-tu mis GRUB sur le disque où est installé Ubuntu ou sur celui où est installé Windows 7 ?

Dark Fread
12/06/2010, 14h49
Petite question sur ta dernière configuration : as-tu mis GRUB sur le disque où est installé Ubuntu ou sur celui où est installé Windows 7 ?

Bonne question... J'ai laissé par défaut, donc il me semble que Grub s'est installé sur le disque où est installé 7 (/dev/sda1/). Y'a un moyen simple de trouver où il est installé ? Dis donc, il n'existe pas assez de synonymes pour le verbe installer.

Highlander
12/06/2010, 15h17
Tu peux essayer de démarrer en ne branchant que le disque Windows 7, si ça démarre directement sur Windows 7 je pense qu'on peut en déduire que GRUB n'est pas sur ce disque.

Comme le disait Nihihi plus haut, le plus propre serait d'avoir :
- Windows 7 avec son bootloader sur le DD1
- Ubuntu sur le DD3 avec GRUB sur le MBR du DD3

Ainsi, tu démarres sur le DD3 et tu peux chainloader Windows 7 à partir de GRUB. Et si tu casses GRUB, tu peux toujours démarrer à partir du DD1 directement sur Windows 7.