- Modifié
Bonjour
J'ai dû mettre les mains dans le cambouis pour bricoler "mon" Grub 2 .. je donne les manips faites pour infos
Mon Pb était le suivant:
- j'installe Fedora sur le hd0 et W7 sur le hd1
- Grub est installé sur le hd0 . ainsi le mbr du disque de W7 reste vierge ..
Pourquoi dites-voius? Ben champion de la fausse manip je préfère ne pas toucher au disque de W7.. en cas boulette. je demande au bios un boot sur le hd1
ainsi, si je plante le PC.. le dépannage est rapide. Je peux remettre le PC en route sans me faire tuer par le reste de la famille.
Seulement cette manip pose un PB.
Grub trouve bien le disque de W7 et crée bien une entrée fonctionnelle automatiquement.
On peut donc lancer W7... mais la mise en veille de W7 ne fonctionne pas... pour rendre la mise en veille possible, il faut "croiser" virtuellement hd0 et hd1
Dans l'ancien grub.. çà donnait çà, à mettre dans le grub.conf... Mais là pas de grub conf !!!! Ah les c.... !!
Grub2, le chargeur d'amorçage version 2
seul PB c'est pas pour fedora.. alors un peu de galère et de test...
1er point .. ne pas chercher à changer à la mano le grug.cfg dans /boot/grub2 ou le grub2.cfg dans /etc/
Les paramètres se donnent dans divers fichiers comme expliqué dans le lien ci-dessus..
on a ces fichiers à prendre en compte (enfin pour ce que je voulais modifier... nota: il semble qu'il manque un fichier de configuration dans la liste des fichiers du répertoire /grub.d.. ce serait pour le thème et ou l'image de fond de grub ? à confirmer).
Au passage le GRUB_DEFAULT=saved me pose un PB.. en théorie, avec la variable à saved , c'est le dernier item du menu grub sur lequel on a booté qui devient l'item par défaut. Chez moi çà marche pas.. que je boot sur W7 ou Fedora.. c'est toujours Fedora qui part au boot suivant après la tempo de grub.
il faudrait que le mette en dur la valeur à 2 pour booter sur la ligne N°3 du menu.... je vais chercher..
le second fichier le 40_custom !
heu.. j’oublie un truc... toutes les modifs que vous faites sur ces fichiers.. il faut les valider avec la commande suivante (en root bien sur):
voici donc la preuve.. avec le /boot/grub2/grub.cfg
(le seul defaut c'est que j'ai maintenant 2 entrée W7 au menu.. l'une donnée par la section /etc/grub.d/30_os-prober, non fonctionnelle pour la veille.
et une donnée par la section /etc/grub.d/40_custom.. c'est pas vraiment gênant.
J'ai dû mettre les mains dans le cambouis pour bricoler "mon" Grub 2 .. je donne les manips faites pour infos
Mon Pb était le suivant:
- j'installe Fedora sur le hd0 et W7 sur le hd1
- Grub est installé sur le hd0 . ainsi le mbr du disque de W7 reste vierge ..
Pourquoi dites-voius? Ben champion de la fausse manip je préfère ne pas toucher au disque de W7.. en cas boulette. je demande au bios un boot sur le hd1
ainsi, si je plante le PC.. le dépannage est rapide. Je peux remettre le PC en route sans me faire tuer par le reste de la famille.
Seulement cette manip pose un PB.
Grub trouve bien le disque de W7 et crée bien une entrée fonctionnelle automatiquement.
On peut donc lancer W7... mais la mise en veille de W7 ne fonctionne pas... pour rendre la mise en veille possible, il faut "croiser" virtuellement hd0 et hd1
Dans l'ancien grub.. çà donnait çà, à mettre dans le grub.conf... Mais là pas de grub conf !!!! Ah les c.... !!
title Windows 7
root (hd1,0) # la partition à démarrer
makeactive # cette commande positionne le bit de partition active à 1 (au cas où)
map (hd0) (hd1) # hd0 devient hd1
map (hd1) (hd0) # hd1 devient hd0 virtuellement
chainloader +1 # saut au début de la piste suivante car c’est un OS Microsoft(R).
Pour commencer un lien intéressantGrub2, le chargeur d'amorçage version 2
seul PB c'est pas pour fedora.. alors un peu de galère et de test...
1er point .. ne pas chercher à changer à la mano le grug.cfg dans /boot/grub2 ou le grub2.cfg dans /etc/
Les paramètres se donnent dans divers fichiers comme expliqué dans le lien ci-dessus..
on a ces fichiers à prendre en compte (enfin pour ce que je voulais modifier... nota: il semble qu'il manque un fichier de configuration dans la liste des fichiers du répertoire /grub.d.. ce serait pour le thème et ou l'image de fond de grub ? à confirmer).
/etc/default/grub
/etc/grub.d/40_custom
j'ajoute le boot/grub2/device.map (normalement généré par anaconda.. si certain ont installé F16 avec des disques déconnectés.. cela risque de poser PB donc)
Donc le premier
GRUB_TIMEOUT=7
GRUB_DISTRIBUTOR="Fedora"
GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 quiet LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 KEYTABLE=fr-latin9"
#
# Résolution et type du terminal graphique (défaut 640x480, gfxgrub). Si une liste de résolution est
# donnée, elles serviront d'alternatives de secours en cas d'impossibilité d'utiliser la principale.
# GRUB_GFXMODE=1280x1024x24
# GRUB_TERMINAL=gfxterm
# GRUB_GFXPAYLOAD_LINUX="keep"
# Image de fond pour le menu grub
# GRUB_BACKGROUND=/boot/grub/mon_image.jpg
les lignes commentés viennent d'ici je ferai qqs essais plus tard sur ces pointsAu passage le GRUB_DEFAULT=saved me pose un PB.. en théorie, avec la variable à saved , c'est le dernier item du menu grub sur lequel on a booté qui devient l'item par défaut. Chez moi çà marche pas.. que je boot sur W7 ou Fedora.. c'est toujours Fedora qui part au boot suivant après la tempo de grub.
il faudrait que le mette en dur la valeur à 2 pour booter sur la ligne N°3 du menu.... je vais chercher..
le second fichier le 40_custom !
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#Windws 7 entry pour veille win 7 active
menuentry "Windows 7 (loader) (on /dev/sdb1) (avec veille)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
drivemap (hd0) (hd1) # hd0 devient hd1
drivemap (hd1) (hd0) # hd1 devient hd0 virtuellement
search --no-floppy --fs-uuid --set=root 1040536840535416
chainloader +1
}
c'est beau non !! et le pire c'est que çà marche. (la veille de window7..)heu.. j’oublie un truc... toutes les modifs que vous faites sur ces fichiers.. il faut les valider avec la commande suivante (en root bien sur):
grub2-mkconfig -o /boot/grub2/grub.cfg
A noter qu'ainsi le fichier /etc/grub2.cfg est mis à jour lui aussi .. (comment .. mystère !.. il en faut bien un peu non ?)voici donc la preuve.. avec le /boot/grub2/grub.cfg
(le seul defaut c'est que j'ai maintenant 2 entrée W7 au menu.. l'une donnée par la section /etc/grub.d/30_os-prober, non fonctionnelle pour la veille.
et une donnée par la section /etc/grub.d/40_custom.. c'est pas vraiment gênant.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="${saved_entry}"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
set timeout=7
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora Linux, with Linux 3.1.0-7.fc16.x86_64' --class fedora --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root a2eb585e-09b3-43e2-8704-59887471a3e9
echo 'Loading Linux 3.1.0-7.fc16.x86_64 ...'
linux /vmlinuz-3.1.0-7.fc16.x86_64 root=UUID=6831ddc1-b9d7-4c70-923f-34b4603a08b3 ro rd.md=0 rd.lvm=0 rd.dm=0 quiet LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 KEYTABLE=fr-latin9
echo 'Loading initial ramdisk ...'
initrd /initramfs-3.1.0-7.fc16.x86_64.img
}
menuentry 'Fedora Linux, with Linux 3.1.0-7.fc16.x86_64 (recovery mode)' --class fedora --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root a2eb585e-09b3-43e2-8704-59887471a3e9
echo 'Loading Linux 3.1.0-7.fc16.x86_64 ...'
linux /vmlinuz-3.1.0-7.fc16.x86_64 root=UUID=6831ddc1-b9d7-4c70-923f-34b4603a08b3 ro single rd.md=0 rd.lvm=0 rd.dm=0 quiet LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 KEYTABLE=fr-latin9
echo 'Loading initial ramdisk ...'
initrd /initramfs-3.1.0-7.fc16.x86_64.img
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sdb1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root 1040536840535416
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#Windws 7 entry pour veille win 7 active
menuentry "Windows 7 (loader) (on /dev/sdb1) (avec veille)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
drivemap (hd0) (hd1) # hd0 devient hd1
drivemap (hd1) (hd0) # hd1 devient hd0 virtuellement
search --no-floppy --fs-uuid --set=root 1040536840535416
chainloader +1
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###
A+