====== Réparer Grub2 ======
* Objet : Votre Grub2 ne fonctionne plus, vous voulez le réparer depuis un live-cd.
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : //Votre Grub2 a été cassé par une installation en dual-boot, ou par n'importe quoi d'autre, ça boot plus, et vous voulez le restaurer…//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi :
* Création par [[user>captnfab]] le 12/07/2015
* Testé par Trefix le 01/10/2016 > fonctionne sans le moindre accroc en suivant pas à pas.
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=129035#p129035 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
La réparation s'effectue en quelques étapes
* Récupérer une live (ce peut être l'installateur en mode rescue)
* Démarrer dessus
* Obtenir un terminal root
* Réparer Grub2
En général, une live-debian, ou live-ubuntu, ou un cd gparted, ou un cd d'install Debian en mode rescue font très bien l'affaire. Et il est facile d'obtenir un terminal root en lançant dans un terminal la commande
sudo -s
===== Réparer Grub2 =====
Pour récupérer Grub2, nous allons nous « placer » dans le système installé depuis le live.
Pour cela, il est nécessaire de savoir sur quelle partition est installé le système.
**Trouver la partition sur laquelle est installée le système** :
* La commande ''lsblk'' devrait nous donner une liste des partitions et leur taille:
Exemple:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119,2G 0 disk
├─sda1 8:1 0 100M 0 part
├─sda2 8:2 0 93,1G 0 part
├─sda3 8:3 0 1K 0 part
├─sda5 8:5 0 4,7G 0 part
└─sda6 8:6 0 21,4G 0 part
* La commande ''fdisk -l'' peut nous donner la liste des partitions, leur taille et leur type:
fdisk -l
Disk /dev/sda: 119,2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x51317cf7
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT
/dev/sda2 206848 195540991 195334144 93,1G 7 HPFS/NTFS/exFAT
/dev/sda3 195543038 250068991 54525954 26G 5 Extended
/dev/sda5 195543040 205305855 9762816 4,7G 82 Linux swap / Solaris
/dev/sda6 205307904 250068991 44761088 21,4G 83 Linux
* La commande ''parted /dev/sda p'' peut nous donner la liste des partitions, leur taille et leur type:
parted /dev/sda p
Model: ATA SAMSUNG MZ5PA128 (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 106MB 105MB primary ntfs boot
2 106MB 100GB 100GB primary ntfs
3 100GB 128GB 27,9GB extended
5 100GB 105GB 4999MB logical linux-swap(v1)
6 105GB 128GB 22,9GB logical ext4
Vous pouvez essayer de voir les partitions une par une jusqu'à trouver la partition racine de votre système (comportant les dossiers usr, bin, sbin, root, boot, etc, etc.)
Exemple avec ''sda1'':
* Créer un emplacement pour le montage:
mkdir -p /mnt/target
* Monter:
mount /dev/sda1 /mnt/target
* Lister le contenu:
ls /mnt/target
* Démonter la partition:
umount /mnt/target
On supposera que la partition contenant le système est ''/dev/sdaX'', vous devrez remplacer ''sdaX'' par le bon nom…
==== Mise en place du chroot ====
* Créer un emplacement pour le montage:
mkdir -p /mnt/target
* Monter le système de fichier racine:
mount /dev/sdaX /mnt/target
* Monter les systèmes de fichiers virtuels nécessaires:
mount -o bind /dev/ /mnt/target/dev
mount -o bind /sys/ /mnt/target/sys
mount -t proc proc /mnt/target/proc
* Plonger dans le nouveau système de fichier racine (tout ce qui est au dessus de /mnt/target ne sera plus accessible):
chroot /mnt/target
* Monter les autres partitions:
mount -a
==== Réparer le Grub ====
Le problème peut survenir à plusieurs niveaux.
=== Grub2 n'est pas installé sur le système ===
En principe, il l'est. Ne faites cette étape que si vous pensez que Grub2 a été désinstallé.
Dans ce cas, il y a deux paquets différents à installer suivant que votre installation soit faite sur un UEFI, ou sur un BIOS (ou un UEFI en mode legacy).
* Installation sur un BIOS ou un UEFI en mode Legacy:
apt-get install grub-pc
* Installation sur un UEFI en mode UEFI
apt-get install grub-efi-amd64
=== Grub2 n'est pas présent sur le secteur d'amorçage / dans l'UEFI ===
Il a pu être écrasé si vous avez installé un autre système, si vous avez reformaté, etc.
* Réinstaller le chargeur de démarrage sur un BIOS ou un UEFI en mode Legacy:
grub-install /dev/sda
* Réinstaller le chargeur de démarrage sur un UEFI en mode UEFI:
grub-install
=== Le menu de boot n'est pas à jour ===
* Vérifier que os-prober est bien présent:
which os-prober
Si os-prober n'est pas présent, les autres systèmes d'exploitations ne seront pas détectés. Pour l'installer, connectez votre live à Internet et tapez dans le terminal
apt-get install os-prober
* Mettre à jour la configuration de Grub2:
update-grub
==== Redémarrer ===
Vous pouvez simplement redémarrer à partir des menus du live-cd, ou si vous êtes en console, via un
exit
reboot