Le choix du paquet GRUB à installer pour amorcer Ubuntu et les autres OS installés est dépendant du matériel et du type de partitionnement du disque dur.
Au niveau du matériel, pour les PC modernes, il existe deux modes de démarrage : le BIOS et l'UEFI, et deux principaux types d'architecture matérielle : la famille des x86 32 bits aussi nommée i386 ou IA-32, et les x86 64 bits aussi nommée AMD64 ou EMT64. Les architectures plus ancienne comme le PowerPC, ou plus récente comme l'ARM ne sont pas évoquée ici.
Pour ce qui est du partitionnement, qu'il soit sur le disque dur ou un autre suport (clé USB, carte SD), les deux principaux sont le type Intel qui utilise un MBR pour l'amorçage et le type GPT1) qui offre plusieurs possibilités.
L'ensemble de ces technologies pouvant être rencontrées indifféremment, cette page a pour but de vous guider dans vos paramétrages pour installer ou dépanner GRUB selon votre configuration matérielle.
Voir la page UEFI pour la modification du mode de démarrage et savoir dans quel mode est démarré Ubuntu.
A noter que Ubuntu 32 bits comme Ubuntu 64 bits peuvent démarré en mode UEFI même si ils n'ont pas été installé dans ce mode initialement.
Voir la page GPT.
Le tableau ci-dessous indique quel paquet GRUB doit être installé pour permettre l'amorçage en fonction de votre configuration :
mode de démarrage | paquet GRUB | table de partition | commentaire | |
---|---|---|---|---|
BIOS/Legacy | grub-pc | Intel / MBR | Cas standard sur les configurations "anciennes". | |
GPT | Nécessite une partition BIOS-boot. | |||
UEFI | grub-efi | Intel / MBR | Le mode UEFI requiert une partition EFI (ou ESP2)) de type vfat. S'il n'est pas possible de créer une partition primaire supplémentaire, il est préférable de changer le mode de démarrage pour BIOS/Legacy. |
|
GPT | Ubuntu 32 bits | Attention : si votre PC est de type x86-64 et que vous avez installé Ubuntu 32 bits, vous devez installer explicitement le paquet grub-efi-amd643) (voir Changer de version de GRUB) | ||
SecureBoot | Pour la prise en charge de SecureBoot, il faut aussi installer le paquet shim et il est parfois nécessaire d'installer en plus les paquets signés par Microsoft : shim-signed et/ou grub-efi-amd64-signed |
Plusieurs version de GRUB ne peuvent pas cohabiter sur une même installation, donc si vous devez passer de grub-pc
à grub-efi
ou vice versa, il faut absolument désinstaller tout les paquets se rapportant à GRUB avant d'installer la version ciblée.
sudo apt-get remove grub*
sudo update-grub
trop d'info, pas clair, pas au bon endroit : faire un section Problème de boot : version GRUB installé incompatible
D'abord présenter le fonctionnement de GRUB sur BIOS/UEFI et MBR/EFI
Le live CD/USB d'Ubuntu 32 bits ne permet pas le démarrage en mode UEFI, mais il est possible de démarrer en mode BIOS/Legacy : la plupart des PC font ça automatiquement. Ainsi vous avez installé Ubuntu 32 bits et que votre système ne démarre plus après avoir retiré le CD ou la clé USB, vous êtes certainement en mode de démarrage UEFI par défaut et GRUB n'a pas été correctement installé.
Si votre disque dur a une table de partition Intel / MBR : Il suffit de modifier le réglage du BIOS/UEFI pour démarrer en mode Legacy. Lors de l'installation, Ubuntu a déjà dû installer grub-pc, sinon réinstaller-le via un chroot
Si votre disque dur a une table de partition GPT :
GRUB est constitué de 2 parties :
/etc/default/grub
et les scripts situés dans /etc/grub.d
.Dans cette configuration, le chargeur d'amorçage est placé dans un espace de 512 octet qui peut-être :
Le paquet grub-pc doit être installé.
Schéma du disque :
Début du disque | MBR7) | Partition primaire 1 | Partition primaire 2 | Partition primaire 3 | Partition étendue | Fin du disque | ||
---|---|---|---|---|---|---|---|---|
Partition logique 1 | … | Partition logique N | ||||||
Device | /dev/sda | /dev/sda1 | /dev/sda2 | /dev/sda3 | /dev/sda5 | … | /dev/sda(4+N) |
Exemple de partitionnement en présence de Windows :
Emplacement du disque | Device | Point de montage | format | flag | commentaire | |
---|---|---|---|---|---|---|
MBR | sda | - | voir la page dédiée MBR | - | Contient la table des partitions primaires et étendues (jusqu'à 4 maximum) et le chargeur d'amorce GRUB. Pas de système de fichier, ne peut pas être monté |
|
primaire 1 | sda1 | - | ntfs | - | Windows Loader | |
primaire 2 | sda2 | /windows ou /mnt/windows ou /media/windows | ntfs | msftdata | Windows OS | |
étendue 1 | sda3 | - | - | extended | Contient la table des partitions logiques | |
logique 1 | sda5 | / (racine) | ext4 | logical | Racine du système. Contient également /boot | |
logique 2 | sda6 | none | swap | logical | Partition utilisée pour la swap | |
logique 3 | sda7 | /home | ext4 | logical | Contient les données utilisateurs |
Dans cette configuration, la réinstallation de GRUB se fera avec la commande ci-dessous :
sudo grub-install /dev/sda
Schéma du disque :
Début du disque | Table GPT 1 | Protection MBR (inutilisé) | Partition BIOS boot (1Mo) | Partition 2 | Partition 3 | … | Partition N | Table GPT 2 | Fin du disque |
---|---|---|---|---|---|---|---|---|---|
Device | - | /dev/sda | /dev/sda1 | /dev/sda2 | /dev/sda3 | … | /dev/sdaN | - |
Exemple de partitionnement "classique" :
Emplacement du disque | Device | Point de montage | format | flag | commentaire |
---|---|---|---|---|---|
Table GPT 1 | - | - | GPT | - | Inaccessible par fdisk. Utiliser l'outil gdisk. |
MBR | sda | - | - | - | Espace du disque réservé pour empêcher tout écrasement avec les outils ne gérant que le partitionnement Intel/MBR |
partition 1 | sda1 | - | non formaté (RAW) | bios_grub | Contient le chargeur d'amorce GRUB |
partition 2 | sda2 | / (racine) | ext4 | - | Racine du système. Contient également /boot |
partition 3 | sda3 | none | swap | - | Partition utilisée pour la swap |
partition 4 | sda4 | /home | ext4 | - | Contient les données utilisateurs |
Table GPT 2 | - | - | GPT | - | Copie de sauvegarde de la table GPT 1. (optionnel) |
Dans cette configuration, la réinstallation de GRUB se fera avec la commande ci-dessous :
sudo grub-install /dev/sda1
Dans ce mode, une partition EFI est obligatoire pour installer le chargeur d'amorce GRUB.
Le programme bootx64.efi
situé le dossier EFI/Boot
de la partition EFI gère la liste des chargeurs de démarrage (GRUB/Ubuntu, Windows, etc).
Ce dernier doit appeler le programme grubx64.efi
situés dans EFI/ubuntu par défaut pour lancer GRUB.
(ou en premier lieu pour les systèmes avec option SecureBoot activée).
Pour les systèmes avec option SecureBoot activée, c'est le programme shimx64.efi
qui est d'abord appelé (chainloader). Ce dernier appelant ensuite grubx64.efi
.
Le paquet grub-efi doit être installé, ainsi que le paquet grub-efi-amd64 (le plus courant) ou grub-efi-ia32 (pour serveur Itanium) selon votre architecture matérielle.
Schéma du disque :
Début du disque | MBR8) | Partition EFI | Partition primaire 2 | Partition primaire 3 | Partition étendue | Fin du disque | ||
---|---|---|---|---|---|---|---|---|
Partition logique 1 | … | Partition logique N | ||||||
Device | /dev/sda | /dev/sda1 | /dev/sda2 | /dev/sda3 | /dev/sda5 | … | /dev/sda(4+N) |
Exemple de partitionnement en présence de Windows :
Emplacement du disque | Device | Point de montage | format | flag | commentaire | |
---|---|---|---|---|---|---|
MBR | sda | - | voir la page dédiée MBR | - | Contient la table des partitions primaires et étendues (jusqu'à 4 maximum). Pas de système de fichier, ne peut pas être monté |
|
partition EFI (primaire) | sda1 | /boot/efi | vfat (reconnue FAT32 à l'installation) | boot | Contient le chargeur d'amorce GRUB, … ainsi que celui de Windows. | |
primaire 2 | sda2 | /windows ou /mnt/windows ou /media/windows | ntfs | msftdata | Windows OS | |
étendue 1 | sda3 | - | - | extended | Contient la table des partitions logiques | |
logique 1 | sda5 | / (racine) | ext4 | logical | Racine du système. Contient également /boot | |
logique 2 | sda6 | none | swap | logical | Partition utilisée pour la swap | |
logique 3 | sda7 | /home | ext4 | logical | Contient les données utilisateurs |
Dans cette configuration, la réinstallation de GRUB se fera avec la commande ci-dessous :
sudo grub-install --efi-directory=/boot/efi --no-uefi-secure-boot --target=x86_64-efi /dev/sda
ou pour SecureBoot :
sudo grub-install --efi-directory=/boot/efi --uefi-secure-boot --target=x86_64-efi /dev/sda
Remplacer --target=x86_64-efi
par --target=i386-efi
si votre architecture est IA32 (serveur Itanium).
grub-efi-ia32
puis installer manuellement le paquet grub-efi-amd64 et utiliser l'option --target=x86_64-efi
.
Schéma du disque :
Début du disque | Table GPT 1 | Protection MBR (inutilisé) | Partition EFI | Partition 2 | Partition 3 | … | Partition N | Table GPT 2 | Fin du disque |
---|---|---|---|---|---|---|---|---|---|
Device | - | /dev/sda | /dev/sda1 | /dev/sda2 | /dev/sda3 | … | /dev/sdaN | - |
Exemple de partitionnement en présence de Windows :
Emplacement du disque | Device | Point de montage | format | flag | commentaire |
---|---|---|---|---|---|
Table GPT 1 | - | - | GPT | - | Inaccessible par fdisk. Utiliser l'outil gdisk. |
fake MBR | sda | - | - | - | Espace du disque réservé pour empêcher tout écrasement avec les outils ne gérant que le partitionnement Intel/MBR |
partition EFI | sda1 | /boot/efi | vfat (reconnue EFI à l'installation) | boot | Contient le chargeur d'amorce GRUB, … ainsi que celui de Windows. |
partition 2 | sda2 | /windows ou /mnt/windows ou /media/windows | ntfs | msftdata | Windows OS |
partition 3 | sda5 | / (racine) | ext4 | - | Racine du système. Contient également /boot |
partition 4 | sda6 | none | swap | - | Partition utilisée pour la swap |
partition 5 | sda7 | /home | ext4 | - | Contient les données utilisateurs |
Table GPT 2 | - | - | GPT | - | Copie de sauvegarde de la table GPT 1. (optionnel) |
Dans cette configuration, la réinstallation de GRUB se fera avec la commande ci-dessous :
sudo grub-install --efi-directory=/boot/efi --no-uefi-secure-boot --target=x86_64-efi /dev/sda
ou pour SecureBoot :
sudo grub-install --efi-directory=/boot/efi --uefi-secure-boot --target=x86_64-efi /dev/sda
Remplacer --target=x86_64-efi
par --target=i386-efi
si votre architecture est IA32 (serveur Itanium).