Grub2 : MBR vs PBR ?

Ouais mais le PBR de sda1 contient une amorce de grub1 si j’ai bien lu ton premier message. Une amorce de grub2 devrait plutôt se trouver dans le MBR de sda.

Je suppose que c’est juste une chaîne de caractères que l’amorce de grub doit pouvoir afficher en cas d’erreur.

Exact,

Voici un Grub2 (si ça t’intéresse…)

root@sidux:~# dd if=/dev/sda bs=512 count=1 | strings 1+0 enregistrements lus 1+0 enregistrements écrits 512 octets (512 B) copiés, 1,788e-05 s, 28,6 MB/s GAG: ZRr= `|f \|f1 GRUB Geom Hard Disk Read Error
Il reste même une trace de GAG que j’ai installé et enlevé hier…

1+0 records in 1+0 records out 512 bytes (512 B) copied, 4.8035e-05 s, 10.7 MB/s ZRr= `|f \|f1 GRUB Geom Hard Disk Read Error .;r$
Chez moi sur Squeeze (si ça peut servir).
Comment peut on être sûr que grub2 est bien installé sur le MBR? Je sais qu’il est installé en tant que paquet mais a t’il remplacé grub1?

Merci, c’est toujours intéressant.
Les deux se ressemblent beaucoup, mais ce n’est pas surprenant, il n’y a pas de raison que l’amorce ait fondamentalement évolué entre les deux versions.

Concernant les messages d’avertissement de grub2, il a raison, les listes de blocs ne sont pas fiables en théorie : il suffit que qu’un morceau du fichier soit déplacé pour une raison ou une autre pour que cette liste ne soit plus à jour.

Ce qui suit s’applique à grub 1, je ne sais pas pour grub2.
Quand grub installe son amorce dans le MBR, il installe aussi dans les secteurs suivants, dans l’espace inoccupé avant la première partition, un étage intermédiaire (stage 1.5) qui lui permet de lire le système de fichiers sur lequel est installé l’étage final (stage 2). Il existe une version de stage 1.5 différente pour chaque type de système de fichiers supporté. Ainsi grub n’a pas besoin de connaître à l’avance la position des blocs contenant le stage 2. Quand l’amorce est installée dans le PBR d’une partition en revanche (ce qui n’est pas possible avec tous les systèmes de fichiers car certains utilisent le PBR pour autre chose), il n’y a pas toujours assez de place derrière pour y installer le stage 1.5, et donc grub ne peut compter que sur la position des blocs qu’il a enregistrée à l’installation pour charger le stage 2. Ceci dit, lilo enregistre aussi la position des blocs et je n’ai jamais entendu parler de problèmes liés à un déplacement intempestif par le système de fichiers.

[quote=“silver.sax”]
Comment peut on être sûr que grub2 est bien installé sur le MBR? Je sais qu’il est installé en tant que paquet mais a t’il remplacé grub1?[/quote]
En bootant et en regardant la version affichée au-dessus du menu, non ?

De mon côté…

J’ai remis de l’ordre dans mes partitions (vive l’UUID qui simplifie bien la vie…)
Je retente tout ça demain…

Merci pour votre aide précieuse !

Re-bonjour,
J’ai mis de l’ordre dans les disques :

[code]~/ fdisk -l
Disk /dev/sda: 750.2 GB, 750155292160 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x744bc8e4

Device Boot Start End Blocks Id System
/dev/sda1 * 1 5042 40499833+ 83 Linux
/dev/sda2 5043 10083 40491832+ 83 Linux
/dev/sda3 10084 91201 651580335 5 Extended
/dev/sda5 10084 11104 8201119+ 82 Linux swap / Solaris
/dev/sda6 11105 20665 76798701 83 Linux
/dev/sda7 20666 49993 235577128+ 83 Linux
/dev/sda8 49994 59330 74999421 83 Linux
/dev/sda9 59331 68891 76798701 83 Linux
/dev/sda10 68892 78452 76798701 83 Linux[/code]
J’ai tenté la réinstallation de grub dans dans /dev/sda6 - ça ne marche pas… :cry:

[code]~/ grub-install --force /dev/sda6
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea.
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged.
Installation finished. No error reported.

~/ dd if=/dev/sda6 bs=512 count=1 | strings
1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 1,6623e-05 s, 30,8 MB/s[/code]

Et… je m’suis dit… Et si j’essayais d’installer Gub2 dans le PBR d’une partition principale…
Et ça fonctionne :frowning: :

[code]~/ grub-install --recheck /dev/sda2 --force
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea.
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged.
Installation finished. No error reported.

~/ dd if=/dev/sda2 bs=512 count=1 | strings
1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 0,000556565 s, 920 kB/s
ZRr=
`|f
|f1
GRUB
Geom
Hard Disk
Read
Error
[/code]

Conclusion ?
Impossible d’installer Grub2 dans le PBR d’une partition “extended”, mais possible dans le PBR d’une partition principale !
Quelqu’un peut-il m’aider à confirmer ? Parce que ça change tout à la façon dont il va falloir organiser les partitions et les OS ! :imp: Déplacer de grosses partitions c’est long…
Merci d’avance.

Je n’ai pas plus d’info. Grub part peut-être du principe qu’une partition logique n’est pas amorçable et donc qu’il serait vain d’y installer l’amorce, sans envisager la possibilité de l’amorcer depuis un autre chargeur ou un gestionnaire de démarrage plus élaboré que le MBR standard.

Tu as essayé directement via l’invite de grub, avec les commandes root et setup ?

Note aussi que tu n’as pas absolument besoin d’installer l’amorce de grub dans le PBR de la partition racine ou /boot correspondante, ça peut être n’importe quelle partition principale (pas swap) ou même la partition étendue qui est une partition principale presque comme une autre.

[quote=“PascalHambourg”]Je n’ai pas plus d’info. Grub part peut-être du principe qu’une partition logique n’est pas amorçable et donc qu’il serait vain d’y installer l’amorce, sans envisager la possibilité de l’amorcer depuis un autre chargeur ou un gestionnaire de démarrage plus élaboré que le MBR standard.

Tu as essayé directement via l’invite de grub, avec les commandes root et setup ?

Note aussi que tu n’as pas absolument besoin d’installer l’amorce de grub dans le PBR de la partition racine ou /boot correspondante, ça peut être n’importe quelle partition principale (pas swap) ou même la partition étendue qui est une partition principale presque comme une autre.[/quote]

Re,

Il me manque encore quelques certitudes :

  • Peut-on installer grub-legacy dans le PBR d’un lecteur logique à l’intérieur de la partition étendue ?
  • Essayer aussi directement dans le PBR d’une partition étendue comme tu le propose.
  • Peut-on installer grub2 dans le PBR d’une lecteur logique à l’intérieur de la partition étendue à partir de l’invite de grub2 (comme tu m’y a si justement fait pensé) ?

Effectivement, un seul Grub (dans n’importe laquelle des partitions principales) suffit pour ensuite démarrer n’importe quel noyau, ou qu’il se trouve…
Je suis ravi de ces quelques découvertes, je maîtrise un peu mieux grub maintenant.

Je dois (encore) re-modifier mes partitionnements pour prendre en compte les quelques contraintes que je viens de mettre à jour. Je teste ensuite les trois derniers points.

Merci.

Salut,

Résumé personnel de ce post :

Pourquoi faire simple quand on peut faire compliqué.

Grub2 à même un stade de prévu (other-os) pour éviter toutes ces complications et vous en êtes à penser qu’il est plus simple de passer par deux étages de menus :slightly_smiling:

[quote=“ggoodluck47”]Salut,

Résumé personnel de ce post :

Pourquoi faire simple quand on peut faire compliqué.

Grub2 à même un stade de prévu (other-os) pour éviter toutes ces complications et vous en êtes à penser qu’il est plus simple de passer par deux étages de menus :slightly_smiling:[/quote]

:mrgreen: Tu as un peu raison car effectivement ça rajoute un étage… (Mais je n’ai jamais dit que c’était plus simple)

Deux réponses à ta remarque :

  • La joie de la découverte, et de la maîtrise complète (si c’est jamais possible) d’un outil. Un ciseau à bois, un appareil photo, un bootloader… :wink:
  • Il y a quand même un avantage, en cas de gros bug sur Grub2 tu te retrouve le bec dans l’eau. Pas moi puisque j’ai le choix de démarrer sur plusieurs Grub… Il n’y a pas si longtemps tu te méfiais beaucoup de Grub2 non ?

Et puis PascalHambourg ne cesse de marteler (j’exagère à dessein) dans ses réponses qu’il vaut mieux installer Grub dans le PBR plutot que dans le MBR, j’ai voulu voir par moi même…

:smt006

Sur une machine en multiboot avec plusieurs systèmes d’exploitation, oui. Chaque système ayant fortement tendance à vouloir mettre l’amorce de son propre chargeur dans le MBR à l’installation, écrasant la précédente. Tu as pu le constater toi-même.

Je suppose que ce que ggoodluck47 appelle “other-os” correspond au chaînage. Mais pour cela, il faut que chaque chargeur chaîné soit fonctionnel et notamment que son amorce soit intacte, et donc ailleurs que dans le MBR. Au lieu de chaîner il y a la possibilité de charger le fichier de configuration de grub d’un autre système (optin “configfile” avec grub1), mais cela ne fonctionne que pour des versions de grub identiques.

En revanche sur une machine sur laquelle est installé un seul système, il n’y a pas d’inconvénient à installer l’amorce du chargeur dans le MBR, et à vrai dire pas d’avantage à l’installer ailleurs.

Re,

Je n’avais pas précisé, mais c’était évident…

J’ai déplacé le Grub de mon MBR et j’ai installé trois grubs dans les PBR des trois premières partitions.
J’ai mis GAG à la place de Grub2 dans le MBR.
C’est très rapide, GAG ne fait pas perdre plus d’une ou deux secondes. Je démarre trois Grub à partir de ce menu, et Windows (sur un deuxième disque).
Chaque Grub à un chainload vers les autres Grub en cas de problème. Je ne suis donc plus dépendant du Grub2 de ma SID en cas de “foirage” d’une MAJ (ça ne m’est encore jamais arrivé, mais…).
Je suis ravi de cette solution, même si je ne trouve pas le menu de GAG très joli, c’est efficace.
Je vais aller voir aussi du côté de SBM ou Air-boot, qui font la même chose je crois…

Je passe en résolu, même si je n’ai pas encore toutes les réponses. Je complèterai plus tard (futur simple pas de “s” je crois ?).