[grub]je suis incapable de gérer un dual boot (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Avatar de l’utilisateur
sztruks
archer
Messages : 126
Inscription : mer. 30 mars 2011, 20:45
Localisation : Varsovie

[grub]je suis incapable de gérer un dual boot (résolu)

Message par sztruks »

Bonjour,


Malgré la lecture de tonnes de tutoriels, je suis structurellement incapable de gérer un dual boot, il doit y avoir un truc qui m'échappe. J'essaie actuellement d'installer une arch et une opensuse sur le portable de ma femme,
avec les partitions suivantes:
/sda1 /boot arch
/sda2 swap
/sda3 / opensuse
/sda5 /home arch
/sda6 /var arch
/sda7 / arch
/sda8 /home opensuse

J'ai d'abord installé arch avec le grub en MBR puis opensuse avec le grub en /sda3, mais au démarrage le grub opensuse prend la main et qui plus est ne reconnait pas arch, ce serait trop beau… J'aurais voulu que ce soit le grub arch qui prenne la main et faire un chainload en /sda3. Est-ce que c'est une question de flag amorçable à supprimer dans fstab?

mon fstab sur arch
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
devpts /dev/pts devpts defaults 0 0
shm /dev/shm tmpfs nodev,nosuid 0 0
UUID=28edf269-79c4-482c-aeb1-575c8dbc32a9 swap swap defaults 0 0
UUID=4df088fa-d4f7-4f3e-b7a4-7dd17e227322 /var reiserfs defaults 0 1
UUID=69f7bca4-0d35-417f-a72a-bd4468d10c28 /boot ext2 defaults 0 1
UUID=776c51bd-c962-497c-bed4-0001e15487e6 / ext4 defaults 0 1
UUID=990722e7-fc6e-4d1e-b60a-27569a78a28a /home ext4 defaults 0 1
sur opensuse
/dev/disk/by-id/ata-FUJITSU_MHT2080BH_NR0ST5225N14-part2 swap swap defaults 0 0
UUID=c4e4c371-4de0-4686-bc1d-a6562b0c1d0d / ext4 acl,user_xattr 1 1
UUID=9d759a16-32a4-4815-aaf4-8dba903196ba /home ext4 acl,user_xattr 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
Merci d'avance!

EDIT: je rajoute les fichiers grub de suse: grub.conf
setup --stage2=/boot/grub/stage2 --force-lba (hd0,2) (hd0,2)
quit
menu.lst:
# Modified by YaST2. Last modification on nie lip 17 13:25:59 CEST 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.4
root (hd0,2)
kernel /boot/vmlinuz-2.6.37.1-1.2-default root=/dev/sda3 resume=/dev/disk/by-id/ata-FUJITSU_MHT2080BH_NR0ST5225N14-part2 splash=silent quiet showopts vga=0x317
initrd /boot/initrd-2.6.37.1-1.2-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.4
root (hd0,2)
kernel /boot/vmlinuz-2.6.37.1-1.2-default root=/dev/sda3 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
initrd /boot/initrd-2.6.37.1-1.2-default
Dernière modification par sztruks le dim. 17 juil. 2011, 16:30, modifié 1 fois.
Image
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [grub]je suis incapable de gérer un dual boot

Message par FoolEcho »

Salut,
sztruks a écrit :Est-ce que c'est une question de flag amorçable à supprimer dans fstab?
Non. fstab arrive bien plus tard, aucun rapport.
sztruks a écrit :J'ai d'abord installé arch avec le grub en MBR puis opensuse avec le grub en /sda3, mais au démarrage le grub opensuse prend la main et qui plus est ne reconnait pas arch, ce serait trop beau
Si c'est le grub d'opensuse qui a pris la main, c'est que tu n'as pas mis l'amorce sur sda3 mais sur le mbr (donc en remplacement du grub d'Arch).

Sinon, ce n'est "qu'une" affaire de grub et de menu.lst.
Je ne sais pas comment opensuse gère ses versions de kernel, donc le plus simple est de faire du chaînage entre les grubs (ça fait "plus" de menus, mais moins de maintenance).

Tu démarres sous opensuse, donc ?

Sous opensuse, tu installes son amorce sur sda3:

Code : Tout sélectionner

grub-install /dev/sda3
Et tu rajoutes une entrée dans son menu.lst pour Arch en prévision (chaînage "arrière" -- optionnel):

Code : Tout sélectionner

# (??) Arch
title Arch
rootnoverify (hd0)
makeactive
chainloader +1
Ou tu rajoutes des entrées plus complètes pour ton Arch (pris depuis son menu.lst...), pour éviter de tomber de menu de grub en menu de grub... même si, perso, je préfère chaîner pour des questions de maintenance... ainsi:

Code : Tout sélectionner

# (??) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda7 ro
initrd /kernel26.img
(au passage, dans ce cas, passe plutôt par des uuids)

Puis tu chrootes Arch depuis opensuse (ou directement sous Arch si tu as fait l'entrée précise dans le menu.lst d'opensuse), en suivant bien le wiki ( notamment la ligne concernant mtab, sinon tu ne pourras réinstaller grub https://wiki.archlinux.org/index.php/Ch ... nging_Root):

Code : Tout sélectionner

mkdir -p /mnt/Arch
#montage du système
mount /dev/sda7 /media/Arch # monter arch
mount /dev/sda1 /media/Arch/boot #monter /boot
#montage des dossiers spéciaux
mount --bind /dev /media/Arch/dev
mount -t sysfs sys /media/Arch/sys/
mount -t proc /proc /media/Arch/proc
#en prévision du grub-install
grep -v rootfs /proc/mounts > /media/Arch/etc/mtab
#chroot
chroot /media/Arch
Installation de l'amorce d'Arch sur le MBR:

Code : Tout sélectionner

grub-install /dev/sda
Il te reste à modifier le menu.lst pour incorporer le chaînage vers Opensuse:

Code : Tout sélectionner

# (??) Opensuse
title Opensuse
rootnoverify (hd0,2)
makeactive
chainloader +1
(là encore, si tu préfères, tu mets des entrées complètes d'Opensuse)

Puis exit, "unmount /mnt/Arch" et redémarrage.

EDIT: d'après ton édition, opensuse identifie bien ces kernels selon leur numéro, donc favorise le chainloader dans le menu.lst d'Arch pour ne pas avoir à le modifier à chaque mise à jour du noyau d'opensuse. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
sztruks
archer
Messages : 126
Inscription : mer. 30 mars 2011, 20:45
Localisation : Varsovie

Re: [grub]je suis incapable de gérer un dual boot

Message par sztruks »

Merci pour cette réponse extrèmement rapide, j'ai bien vérifié, le grub de suse est en /sda3 mais avec une option write generic boot code to MBR. Je vais tenter le chainload.

EDIT: problème résolu grâce au chainload. En trifouillant les options de yast, j'ai vu que Suse installait grub sur le / comme indiqué, mais modifiait quand même le MBR. Après avoir décoché la case fautive (évidemment difficilement accessible sur l'installateur graphique de Suse, voilà un exemple pour ceux qui douteraient qu'un installateur texte peut s'avérer plus user-friendly qu'un graphique… :twisted: ) et restauré le MBR qui avait quand même été sauvegardé par Suse (merci…), j'ai pu faire un chainload comme indiqué par FoolEcho mais dans l'autre sens…

Merci!
Image
Répondre