Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/02/2009, à 14:01

guga

[Résolu] Installer grub sur le 1er EBR

Bonjour,

j'ai décidé de poster suite à la situation dans laquelle je me suis (volontairement) retrouvé récemment. Explications:

Voici la façon dont est partitionné mon disque:

partitions.200921911254.jpg

On voit que j'ai choisi d'installer Ubuntu sur une partition logique. J'ai choisi pendant l'installation d'installer GRUB sur la même partition soit sda5 (ou encore (hd0,4) en notation GRUB) pour ne pas modifier le MBR de mon disque. Je note au passage que durant l'installation de GRUB via l'interface d'installation d'Ubuntu (livecd) il est impossible d'installer GRUB sur l'EBR (=le "MBR" de sda3) car ce choix n'est pas accessible (liste déroulante proposant seulement sda (le MBR), sda1, sda2 et sda5).

Du coup comme je m'y attendais, au redémarrage après l'installation, le marqueur "boot" étant initialement sur la partition sda2 (Windows XP), mon ordinateur démarre directement sur Windows XP. En effet, la routine native du MBR (inscrite par windows) ne fait que chainer sur la partition déclarée amorçable dans la table de partition du MBR.

Je me dis donc, qu'à cela ne tienne je vais déclarer ma partition sda5 amorçable (ajout d'un marqueur "boot" avec gparted par exemple) au lieu de sda2 et voir ce qui se passe.

Réponse: rien.

C'était prévisible après tout, puisque dans la table des partitions du MBR, seules figurent les partitions primaires et la partition étendue (sda3) et aucune d'entre elle n'étant déclarée bootable, rien ne se passe.

Je vous mets le MBR pour info:

guga@guga-laptop:~$ hd -v /windows/save/mbr_restore_save 
00000000  33 c0 8e d0 bc 00 7c fb  50 07 50 1f fc be 1b 7c  |3.....|.P.P....||
00000010  bf 1b 06 50 57 b9 e5 01  f3 a4 cb bd be 07 b1 04  |...PW...........|
00000020  38 6e 00 7c 09 75 13 83  c5 10 e2 f4 cd 18 8b f5  |8n.|.u..........|
00000030  83 c6 10 49 74 19 38 2c  74 f6 a0 b5 07 b4 07 8b  |...It.8,t.......|
00000040  f0 ac 3c 00 74 fc bb 07  00 b4 0e cd 10 eb f2 88  |..<.t...........|
00000050  4e 10 e8 46 00 73 2a fe  46 10 80 7e 04 0b 74 0b  |N..F.s*.F..~..t.|
00000060  80 7e 04 0c 74 05 a0 b6  07 75 d2 80 46 02 06 83  |.~..t....u..F...|
00000070  46 08 06 83 56 0a 00 e8  21 00 73 05 a0 b6 07 eb  |F...V...!.s.....|
00000080  bc 81 3e fe 7d 55 aa 74  0b 80 7e 10 00 74 c8 a0  |..>.}U.t..~..t..|
00000090  b7 07 eb a9 8b fc 1e 57  8b f5 cb bf 05 00 8a 56  |.......W.......V|
000000a0  00 b4 08 cd 13 72 23 8a  c1 24 3f 98 8a de 8a fc  |.....r#..$?.....|
000000b0  43 f7 e3 8b d1 86 d6 b1  06 d2 ee 42 f7 e2 39 56  |C..........B..9V|
000000c0  0a 77 23 72 05 39 46 08  73 1c b8 01 02 bb 00 7c  |.w#r.9F.s......||
000000d0  8b 4e 02 8b 56 00 cd 13  73 51 4f 74 4e 32 e4 8a  |.N..V...sQOtN2..|
000000e0  56 00 cd 13 eb e4 8a 56  00 60 bb aa 55 b4 41 cd  |V......V.`..U.A.|
000000f0  13 72 36 81 fb 55 aa 75  30 f6 c1 01 74 2b 61 60  |.r6..U.u0...t+a`|
00000100  6a 00 6a 00 ff 76 0a ff  76 08 6a 00 68 00 7c 6a  |j.j..v..v.j.h.|j|
00000110  01 6a 10 b4 42 8b f4 cd  13 61 61 73 0e 4f 74 0b  |.j..B....aas.Ot.|
00000120  32 e4 8a 56 00 cd 13 eb  d6 61 f9 c3 49 6e 76 61  |2..V.....a..Inva|
00000130  6c 69 64 20 70 61 72 74  69 74 69 6f 6e 20 74 61  |lid partition ta|
00000140  62 6c 65 00 45 72 72 6f  72 20 6c 6f 61 64 69 6e  |ble.Error loadin|
00000150  67 20 6f 70 65 72 61 74  69 6e 67 20 73 79 73 74  |g operating syst|
00000160  65 6d 00 4d 69 73 73 69  6e 67 20 6f 70 65 72 61  |em.Missing opera|
00000170  74 69 6e 67 20 73 79 73  74 65 6d 00 00 00 00 00  |ting system.....|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 2c 44 63  94 cd 03 61 00 00 00 01  |.....,Dc...a....|
000001c0  01 00 1b fe 3f f2 3f 00  00 00 f4 90 3b 00 00 00  |....?.?.....;...|
000001d0  01 f3 07 fe ff ff 33 91  3b 00 20 1f bf 01 00 00  |......3.;. .....|
000001e0  c1 ff 0f fe ff ff 53 b0  fa 01 ee 5d aa 09 00 00  |......S....]....|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

Je déclare donc cette fois-ci sda3 amorçable (à l'aide de gparted par exemple) et je redémarre pour voir.

Comme je m'y attendais rien ne se passe.

En effet, la routine native du MBR chaine sur sda3 et tombe sur l'EBR qui ne contient aucune routine d'exécution. Voici en fait à quoi ressemble l'EBR dépourvu de routine d'exécution:

guga@guga-laptop:~$ hd -v /home/sda3_ebr 
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 fe  |................|
000001c0  ff ff 83 fe ff ff 3f 00  00 00 e1 1e bf 01 00 fe  |......?.........|
000001d0  ff ff 05 fe ff ff 20 1f  bf 01 ce 3e eb 07 00 00  |...... ....>....|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

On ne voit que la table de partition logique (sda5 et sda6 non bootables comme en attestent les 00h en début de séquence pour chaque partition en 01BDh et 01DDh).

A tout hasard, des fois que part défaut une routine vide conduise au chainage sur le premier disque déclaré amorçable trouvé, je me dis je vais déclarer sda5 amorçable (c'est a dire changer le 00h en position 01BDh par 80h cf. l'excellent http://forum.pcastuces.com/sujet.asp?f=01&s=108547 pour ceux qui ne sont pas familiers avec ce jargon).

Cette manip m'amène à une remarque: si je modifie le marqueur "boot" de sda5 via gparted, alors celui-ci me supprime obligatoirement celui de sda3 (que je veux aussi garder si vous m'avez suivi). Du coup, je suis obligé d'éditer le fichier à la main (avec un éditeur hexadécimal) et de le réinjecter à la main dans l'EBR (avec dd par exemple). Je vérifie d'ailleurs en ouvrant gparted que j'ai bien deux marqueurs "boot": un sur sda3 et l'autre sur sda5.

Je redémarre et regarde ce qui se passe. Réponse: toujours rien. Cette fois-ci, je me dis pas de miracle, sans routine dans l'EBR j'ai peu de chance de pouvoir accéder à mon menu GRUB. J'aurais donc bien aimé pouvoir installer GRUB initialement sur sda3 (hd0,2) lors de l'installation d'Ubuntu mais ce choix n'était pas offert...

Du coup, j'ai installé GRUB à la main sur sda3 avec les commandes classiques suivantes:

guga@guga-laptop:~$ sudo grub
[sudo] password for guga: 
Probing devices to guess BIOS drives. This may take a long time.

       [ Minimal BASH-like line editing is supported.   For
         the   first   word,  TAB  lists  possible  command
         completions.  Anywhere else TAB lists the possible
         completions of a device/filename. ]

grub> root (hd0,4)     #pour lui dire de prendre les fichiers images stage* sur sda5 où ils se trouvent depuis l'installation initiale de GRUB

grub> setup (hd0,2)   #pour installer stage1 sur l'EBR et lier correctement stage2 et menu.lst
setup (hd0,2)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,2)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,2)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0,2) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.

Je vérifie que l'opération a bien fonctionné:

guga@guga-laptop:~$ sudo hd -v -n 512 /dev/sda3
00000000  eb 48 90 00 00 00 00 00  00 00 00 00 00 00 00 00  |.H..............|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 03 02  |................|
00000040  ff 00 00 80 92 b0 b0 03  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 be 7f 7d  |. ..@|<.t...R..}|
00000070  e8 34 01 f6 c2 80 74 54  b4 41 bb aa 55 cd 13 5a  |.4....tT.A..U..Z|
00000080  52 72 49 81 fb 55 aa 75  43 a0 41 7c 84 c0 75 05  |RrI..U.uC.A|..u.|
00000090  83 e1 01 74 37 66 8b 4c  10 be 05 7c c6 44 ff 01  |...t7f.L...|.D..|
000000a0  66 8b 1e 44 7c c7 04 10  00 c7 44 02 01 00 66 89  |f..D|.....D...f.|
000000b0  5c 08 c7 44 06 00 70 66  31 c0 89 44 04 66 89 44  |\..D..pf1..D.f.D|
000000c0  0c b4 42 cd 13 72 05 bb  00 70 eb 7d b4 08 cd 13  |..B..r...p.}....|
000000d0  73 0a f6 c2 80 0f 84 ea  00 e9 8d 00 be 05 7c c6  |s.............|.|
000000e0  44 ff 00 66 31 c0 88 f0  40 66 89 44 04 31 d2 88  |D..f1...@f.D.1..|
000000f0  ca c1 e2 02 88 e8 88 f4  40 89 44 08 31 c0 88 d0  |........@.D.1...|
00000100  c0 e8 02 66 89 04 66 a1  44 7c 66 31 d2 66 f7 34  |...f..f.D|f1.f.4|
00000110  88 54 0a 66 31 d2 66 f7  74 04 88 54 0b 89 44 0c  |.T.f1.f.t..T..D.|
00000120  3b 44 08 7d 3c 8a 54 0d  c0 e2 06 8a 4c 0a fe c1  |;D.}<.T.....L...|
00000130  08 d1 8a 6c 0c 5a 8a 74  0b bb 00 70 8e c3 31 db  |...l.Z.t...p..1.|
00000140  b8 01 02 cd 13 72 2a 8c  c3 8e 06 48 7c 60 1e b9  |.....r*....H|`..|
00000150  00 01 8e db 31 f6 31 ff  fc f3 a5 1f 61 ff 26 42  |....1.1.....a.&B|
00000160  7c be 85 7d e8 40 00 eb  0e be 8a 7d e8 38 00 eb  ||..}.@.....}.8..|
00000170  06 be 94 7d e8 30 00 be  99 7d e8 2a 00 eb fe 47  |...}.0...}.*...G|
00000180  52 55 42 20 00 47 65 6f  6d 00 48 61 72 64 20 44  |RUB .Geom.Hard D|
00000190  69 73 6b 00 52 65 61 64  00 20 45 72 72 6f 72 00  |isk.Read. Error.|
000001a0  bb 01 00 b4 0e cd 10 ac  3c 00 75 f4 c3 00 00 00  |........<.u.....|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 fe  |................|
000001c0  ff ff 83 fe ff ff 3f 00  00 00 e1 1e bf 01 00 fe  |......?.........|
000001d0  ff ff 05 fe ff ff 20 1f  bf 01 ce 3e eb 07 00 00  |...... ....>....|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

Je redémarre et là Ô Miracle je tombe enfin sur mon menu GRUB.

Néanmoins, je note au passage qu'ayant voulu supprimer le marqueur "boot" de sda5 via gparted suite à cette opération, gparted m'a remis l'EBR dans son état précédent et j'ai donc du refaire la manip. Voilà une autre bizarrerie de gparted...


Conclusions:

1. Je ne sais pas si j'ai trouvé la solution la plus simple étant donné les contraintes que je m'imposais (Ubuntu sur une partition logique et volonté de booter "directement" sur GRUB). A ce titre je suis preneur de toutes remarques (cf quand même le PS).

2. C'est dommage que l'on n'ai pas la possibilité d'installer GRUB directement sur l'EBR à l'installation d'Ubuntu via le live-cd.

[edit] De manière générale, à l'installation via le live-cd, on ne sait finalement pas très bien comment et où vont être installés les stages de GRUB. Je vous renvoie à ce titre à la remarque faite en introduction de cette page: http://mirror.href.com/thestarman/asm/mbr/GRUB.htm.

3. Il me reste encore à confirmer que l'installation de GRUB sur sda5 est bien superflue dans mon cas. Je vous tiendrais au courant

[edit] Je confirme que l'installation de GRUB sur sda5 est superflue sans mon cas.

Voilà, j'espère que ce post pourra aider ou renseigner d'autres personnes.

Cordialement.


PS:
1. oui j'aurais pu installer ubuntu sur une partition primaire et marquer boot cette partition (en supprimant le makeactive dans menu.lst pour windows) et pour l'avoir déjà fait ca marche.
2. oui j'aurais pu rajouter une ligne dans le boot.ini et booter depuis un menu windows

Dernière modification par guga (Le 02/03/2009, à 12:27)


Halte au sketch! Réveillons-nous!
http://cluaran.free.fr/dette.html

Hors ligne