Page 1 sur 1
[grub] yé fait une connerie (résolu)
Publié : ven. 04 mai 2012, 07:00
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

Re: [grub] yé fait une connerie
Publié : ven. 04 mai 2012, 08:08
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) :
Re: [grub] yé fait une connerie
Publié : ven. 04 mai 2012, 08:11
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…
Re: [grub] yé fait une connerie
Publié : ven. 04 mai 2012, 11:55
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.
Re: [grub] yé fait une connerie
Publié : ven. 04 mai 2012, 11:59
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
puis j'ai lancé grub, fait
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...

Re: [grub] yé fait une connerie
Publié : ven. 04 mai 2012, 12:33
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é !
Re: [grub] yé fait une connerie (résolu)
Publié : ven. 04 mai 2012, 12:45
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

Re: [grub] yé fait une connerie (résolu)
Publié : ven. 04 mai 2012, 13:06
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)
Re: [grub] yé fait une connerie (résolu)
Publié : ven. 04 mai 2012, 13:34
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).
Re: [grub] yé fait une connerie (résolu)
Publié : ven. 04 mai 2012, 13:41
par tuxce
Histoire de compléter (aussi

)
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
Re: [grub] yé fait une connerie (résolu)
Publié : ven. 04 mai 2012, 13:48
par oktoberfest
Je vais me compléter moi-même
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
Re: [grub] yé fait une connerie (résolu)
Publié : sam. 05 mai 2012, 05:04
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.
Re: [grub] yé fait une connerie (résolu)
Publié : sam. 05 mai 2012, 22:53
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.