===== Gérer le programme d'amorçage : Grub =====
Suite à une mise à jour majeur ou lors de la désinstallation d'une distribution Linux en dualboot, il arrive parfois que le système ne démarre plus. A cette effet, on tombe souvent sur le "Grub Rescue"
[[https://fr.wikipedia.org/wiki/GNU_GRUB|Grub]] est un utilitaire qui permet de démarrer sur la bonne partition où le système est installé.
source :
* https://wiki.archlinux.org/index.php/GRUB#Windows_installed_in_UEFI-GPT_Mode_menu_entry
* https://wiki.archlinux.org/index.php/Dual_boot_with_Windows
==== Si la distribution est toujours présente ====
Il est donc nécessaire de le localiser puis de le renseigner dans les variables d'environnements "prefix" et "root".
grub rescues> ls
(hd0) (hd0,msdos0) (hd0,msdos1) (hd1) (hd1,msdos0) (hd1,msdos1)
La commande ci-dessous nous donne la liste les différentes partitions. On peut en déduire que le fichier grub.cfg se situe en réalité sur la partition hd1,msdos0. (On peut vérifier cette suggestion avec cette synthaxe : ls (hd1,msdos0)/boot/grub)
Renseigner correctement les variables d'environnements et on indique à Grub que c'est une partition normale en suivant cette procédure :
grub rescue> set prefix=(hd1,msdos0)/boot/grub
grub rescue> set root=(hd1,msdos0)
grub rescue> insmod normal
grub rescue> normal
A ce stade, Grub démarre le système. Après que le système ait chargé, il faut modifier la mauvaise ligne dans le fichier de configuration :
# nano /boot/grub/grub.cfg
On peut maintenant rebooter tranquillement!
//Dans le pire des cas, il est possible de réinstaller grub en lançant l'installation d'une distribution (ex : Debian) et d'aller directement à l'option, "installation de Grub".//
==== Suite à la suppression de la partition ====
Booter sur clé USB Windows 10, par exemple, et lancer un terminal en tant qu'administrateur pour exécuter ces commandes :
X:> bootrec /fixmbr
X:> bootrec /fixboot
On relance la machine et la système Windows redémarre.
==== Menu Grub pour Windows ====
* Avec GPT :
menuentry "Windows x86_64 UEFI-GPT" {
set root='(hd0,gpt3)'
insmod part_gpt
insmod fat
insmod ntfs
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root $hints_string $fs_uuid
chainloader (${root})/Windows/System32/Boot/winload.efi
# Ou chainloader +1 si la 1er partition (genre de taill 100Mo) existe toujours
}
==== Menu Grub pour Debian ====
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-763bb40c-9060-48f9-86dd-f109d087c22f' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 763bb40c-9060-48f9-86dd-f109d087c22f
else
search --no-floppy --fs-uuid --set=root 763bb40c-9060-48f9-86dd-f109d087c22f
fi
echo 'Chargement…'
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=763bb40c-9060-48f9-86dd-f109d087c22f ro quiet
initrd /boot/initrd.img-3.16.0-4-amd64
}
==== Changer la résolution du tty avec Grub ====
La résolution par défaut du terminal n'est pas adapté pour les écrans d'aujourd'hui. Voici les étapes à suivres :
nano /etc/default/grub
GRUB_GFXMODE=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep
Puis on sauvegarde la configuration :
update-grub