[grub] yé fait une connerie (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
silmaa
archer de cavalerie
Messages : 161
Inscription : ven. 24 juin 2011, 13:52

[grub] yé fait une connerie (résolu)

Message par silmaa »

BOnjour,

J'ai merdouillé avec windows et grub :
  • Il y a quelques mois j'ai installé Arch, en créant une partition en vue d'accueillir windows plus tard :
    /dev/sda1 pour windows
    /dev/sda2 pour /boot
    /dev/sda3 pour /
    /dev/sda4 pour /home
  • J'ai installé grub dans /boot comme conseillé dans le wiki (enfin c'est conseillé sur la page "dualboot" et déconseillé sur la page "grub".
  • J'ai installé windows ce matin, en prenant soin de modifier au préalable /boot/grub/menu.lst en ajoutant

    Code : Tout sélectionner

    #Windows 7
    title Windows 7
    rootnoverify (hd0,0)
    chainloader +1
    Je pensais qu'avec cette précaution, tout irait bien. Problème : grub n'apparait pas au démarrage...
Bon J'aimerais d'abord comprendre pourquoi malgré mes précautions, ça a foiré. Ensuite, j'aimerais savoir comment réparer ma bétise (réinstaller grub ? Si oui faut faire un chroot, ou avec une live cd Xubuntu je peux m'en tirer ?)

Merci :)
Dernière modification par silmaa le ven. 04 mai 2012, 12:36, modifié 2 fois.
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [grub] yé fait une connerie

Message par oktoberfest »

Salut,

il n'y a pas de bêtise de ta part. Quand Windows s'installe, il écrase joyeusement le MBR du disque en y installant le sien. Donc aucune chance que grub démarre.

La solution : booter de puis un CD/usb (n'importe quelle distribution proposant grub1 fera l'affaire : l'iso de arch par exemple, ou un Ubuntu proposant grub1) et faire (je te laisse vérifier) :

Code : Tout sélectionner

# grub
grub> root (hd0,1)
grub> setup (hd0)
grub> exit
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [grub] yé fait une connerie

Message par MrMen »

Bonjour, le problème c'est que windows a installé son chargeur d'ammorçage à la racine de ton disque et donc à dégagé grub (je pense). Tu avais installé grub à la racine du disque ? si oui c'est bien ce que je dis. Généralement on dit qu'il vaut mieux mettre Windows avant GNU/Linux pour ne pas avoir ce problème, mais ça se règle bien.

Pour le livecd, il faut que tu prennes un cd de la même architecture pour réaliser un chroot. Mais pour réinstaller grub le chroot n'est pas obligatoire.

Pour une install juste par livecd :
Installation de grub

Dis moi si ce n'est pas très clair : c'est le réveil là…

Edit : Grillé, le matin c'est plus dûr…
Arch 64 | Awesome | Zsh | Bépo
Avatar de l’utilisateur
silmaa
archer de cavalerie
Messages : 161
Inscription : ven. 24 juin 2011, 13:52

Re: [grub] yé fait une connerie

Message par silmaa »

Merci de vos réponses.

Effectivement je pensais bien que windows installait des trucs sur le MBR, mais c'est pour ça que j'avais pris la précaution d'installer grub sur une partition /boot à part, c'est pour ça que je suis étonné que grub ne démarre plus. Ensuite, il me semble (mais j'ai fait ça vite fait, alors je peux me tromper) que j'ai décoché une case "installer le bootloader de Windows".

Sinon concernant la réinstallation de grub, j'ai bien tenté de le faire avec le CD d'Arch en allant directement à l'étape "installer le bootloader", mais il m'a jeté en disant que je n'avais pas effectué les étapes précédentes. Avec ce même CD, on peut en théorie lancer un OS déjà installé, mais je n'ai jamais réussi à lancer mon Arch (je comprends pas la syntaxe qu'il faut utiliser, visiblement, ce n'est pas grub qui est utilisé).

Enfin bref, du coup j'ai téléchargé un live CD de Xubuntu, avec ça je devrais pouvoir installer grub ^^ Je vous tiens au courant.
Dernière modification par silmaa le ven. 04 mai 2012, 11:59, modifié 1 fois.
Avatar de l’utilisateur
silmaa
archer de cavalerie
Messages : 161
Inscription : ven. 24 juin 2011, 13:52

Re: [grub] yé fait une connerie

Message par silmaa »

J'oubliais Mr_Men : tu dis "pas besoin d'un chroot" mais dans le wiki il est dit
Astuce: Si vous devez installer Grub depuis un liveCD ou tout autre système -> Chroot.
Edit : Bon ok alors j'ai pas fait de chroot. J'ai lancé le CD d'arch, monté ma partition /boot (/dev/sda2), fait

Code : Tout sélectionner

cp -a /usr/lib/grub/i386-pc/* /mnt/mapartitionboot/grub
puis j'ai lancé grub, fait

Code : Tout sélectionner

>root (hd0,1)
> setup (hd0,1)
Et c'est windows qui démarre ! Faut absolument que j'installe grub sur le MBR ou quoi ?

Edit 2 : ah ben ouais c'est ça... Du coup je vois pas l'intérêt d'avoir une partition boot séparée... :?
Dernière modification par silmaa le ven. 04 mai 2012, 12:33, modifié 1 fois.
viperpaulo
Chu Ko Nu
Messages : 389
Inscription : lun. 06 déc. 2010, 13:58

Re: [grub] yé fait une connerie

Message par viperpaulo »

Avec un live cd (Arch, ubuntu, ... )tu fais un chroot en pensant à monter ta partition boot dans ton chroot puisque tu as une partition séparée. Puis tu réinstalle grub et le tour est joué !
Avatar de l’utilisateur
silmaa
archer de cavalerie
Messages : 161
Inscription : ven. 24 juin 2011, 13:52

Re: [grub] yé fait une connerie (résolu)

Message par silmaa »

C'est donc résolu, merci à tous :)

Simplement, ma question subsiste : à quoi bon faire une partition boot séparée si c'est pour être obligé d'installer grub sur le MBR ?

Sinon pour l'anecdote, je n'ai pas installé Windows depuis plus de 2 ans sur ma machine, et à peine installé les ennuis commencent : pas de connexion internet. Et j'avais oublié qu'il fallait installer à la main tous les drivers :'( Je suis pas près de jouer à Mass Effect :evil:
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [grub] yé fait une connerie (résolu)

Message par oktoberfest »

Il ne faut pas confondre /boot et MBR : cela n'a rien à voir.

Le MBR (Master Boot Record) est le premier secteur de chaque disque dur (cf Wikipedia). Il est composé de trois parties :
- une zone de 446 octets qui contient du code
- une table des partitions de 64 octets, pouvant contenir la définition de 4 partitions
- une signature : AA55

Au démarrage, le BIOS va charger le MBR du disque dur défini comme principal, et exécuter le code qui s'y trouve.
- Pour Windows, le code cherche une partition active dans la table des partitions et démarre le windows qui s'y trouve.
- pour Grub, le code (appelé stage1) va charger la suite du code (appelé stage1.5) sur la partition définie lors de l'exécution de la commande root de grub.

les stage 1.5 de grub (il y en a un pour extXfs, un pour reiserfs, un pour jfs...) permettent de lire un filesystem du type considéré et donc de trouver le couple noyau/initrd.

L'intérêt d'une partition /boot dédiée :
- ta racine (/) est au choix : cryptée, dans un LVM, via un montage NFS. Comme grub n'a pas de stage1.5 pour ces types de filesystem (ce ne sont pas des filesystems à proprement parlé, mais je simplifie), tu dois avoir un /boot séparé
- tu as plusieurs os linux et tu ne veut qu'un menu de boot. Tu mets tes différents noyaux (debian, Arch, Ubuntu...) dans la même partition et tu définis ton menu.lst pour te les présenter tous.

EDIT : il y a cette page qui présente bien le mécanisme de boot du bios et de linux. Il y a une erreur à la fin de la partie stage1 (l'article dit que le primary boot-loader "stage" cherche une partition active, mais cela dépend du code - c'est comme ça que fonctionne Windows, mais pas grub)
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [grub] yé fait une connerie (résolu)

Message par FoolEcho »

oktoberfest a écrit :Il ne faut pas confondre /boot et MBR : cela n'a rien à voir.
+1

Pour complèter:
oktoberfest a écrit :L'intérêt d'une partition /boot dédiée :
- ta racine (/) est au choix : cryptée, dans un LVM, via un montage NFS. Comme grub n'a pas de stage1.5 pour ces types de filesystem (ce ne sont pas des filesystems à proprement parlé, mais je simplifie), tu dois avoir un /boot séparé
- tu as plusieurs os linux et tu ne veut qu'un menu de boot. Tu mets tes différents noyaux (debian, Arch, Ubuntu...) dans la même partition et tu définis ton menu.lst pour te les présenter tous.
Pour le deuxième point, tu peux aussi garder des systèmes cloisonnés et utiliser le chaînage entre les différents chargeurs d'amorces (et c'est là qu'installer grub sur la partition /boot trouve son intérêt).

Sinon (je l'ai probablement dit sur d'autres sujets), la raison du /boot séparée est avant tout historique, lorsque grub ne pouvait démarrer sur de l'ext3 ou 4 (système de fichiers journalisés, donc très important pour loger le système d'exploitation et les données personnelles et les récupérer en cas de pépins). Donc /boot était en ext2 et le reste du système en ext3 et/ou 4 (puis à peu près ce qu'on veut aujourd'hui).
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [grub] yé fait une connerie (résolu)

Message par tuxce »

Histoire de compléter (aussi :mrgreen:)
silmaa a écrit :J'ai installé grub dans /boot comme conseillé dans le wiki (enfin c'est conseillé sur la page "dualboot" et déconseillé sur la page "grub".
En fait, le wiki (si tu parles de celui ci: https://wiki.archlinux.org/index.php/Wi ... _Dual_Boot) conseille d'installer grub, on parle ici du chargeur de démarrage pas des fichiers sur la partition /boot ou "/" si tu n'as pas de partition séparée pour /boot.
L'avantage étant de garder le MBR tel qu'il est et de ne jouer que sur les partitions bootable.
Une fois windows installée, il suffit de remettre le drapeau "bootable" sur la partition /boot (ou / si pas de /boot séparé) et de redémarrer
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [grub] yé fait une connerie (résolu)

Message par oktoberfest »

Je vais me compléter moi-même :dance:
Sur un des pc de la maison j'ai installé GAG comme bootloader. Pour les enfants (qui veulent jouer sous Windows) cela propose un menu de boot graphique plus joli et compréhensif que le menu texte de grub.
GAG est un 'vrai' bootloader, dans le sens où son rôle se résume à charger le secteur de boot de la partition sélectionnée.
Dans mon cas j'ai donc installé syslinux (mais pour grub ça marche aussi) sur le LBR (Logical Boot Sector : le premier secteur de la partition) de /boot. On a donc lors du boot :
- soit GAG -> syslinux -> Linux
- soit GAG -> NTLDR -> Windows
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
silmaa
archer de cavalerie
Messages : 161
Inscription : ven. 24 juin 2011, 13:52

Re: [grub] yé fait une connerie (résolu)

Message par silmaa »

Merci pour vos précisions. Ça va déjà mieux, mais je ne suis pas sûr d'avoir tout saisi. Corrigez moi si je me trompe :
  • Grub est un peu plus qu'un bootloader, puisqu'il ne se limite pas au stage 1
  • Le stage 1 est peut-être installé sur le MBR, et permet de lancer le stage 2 (ou kernel loader), situé sur la partition /boot ou /. On installe le stage 1 (dans le cas grub) avec setup (hd0)
  • Le stage 1 peut aussi être installé sur la partition /boot
    The /boot/grub directory contains the stage1, stage1.5, and stage2 boot loaders, as well as a number of alternate loaders (for example, CR-ROMs use the iso9660_stage_1_5).
    Mais pour cela, comme dit tuxce "Une fois windows installée, il suffit de remettre le drapeau "bootable" sur la partition /boot (ou / si pas de /boot séparé) et de redémarrer". C'est ça que je n'avais pas fait (en fait je ne sais même pas exactement en quoi ça consiste), et c'est pour ça que malgré mon setup (hd0,1) grub ne se lançait pas.
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [grub] yé fait une connerie (résolu)

Message par oktoberfest »

Tu as tout bon.

Pour le troisième point, il te faut utiliser cfdisk, fdisk, parted, gparted (ou tout utilitaire de gestion de la table des partitions) et positionner le flag boot (amorce en français) sur la partition désirée. Le bootloader de windows démarrant la partition déclarée bootable, tu peux donc enchaîner sur grub.
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Répondre