grub2-install: “cette étiquette de partition GPT ne contient aucune partition de démarrage BIOS”

41

Il semble y avoir beaucoup de discussions à ce sujet, mais je ne trouve pas de réponse simple.

Lorsque j'essaie d'installer grub2, j'obtiens cette erreur:

# grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub2-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub2-install: error: will not proceed with blocklists.

Voici la mise en page de / dev / sda:

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 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: gpt
Disk identifier: 7ECE06D0-9F0C-44FF-BCFB-142283172CCA

Device        Start       End   Sectors  Size Type
/dev/sda1      2048    411647    409600  200M Linux filesystem (/boot)
/dev/sda2    411648   4605951   4194304    2G Linux swap
/dev/sda3   4605952  46548991  41943040   20G Linux filesystem (/)
/dev/sda4  46548992 234441614 187892623 89.6G Linux LVM (/var)

Existe-t-il un moyen simple de contourner ce problème? Je comprends que je dois créer une petite partition au début du disque en tant que "partition de démarrage du BIOS". Je suppose qu’une option serait de déplacer le swap vers / dev / sda4 en tant que volume logique et d’utiliser / dev / sda2 en tant que / boot.

Sinon, je pourrais simplement revenir à Grub-Legacy et ne pas m'inquiéter à ce sujet (y a-t-il vraiment un avantage à passer à Grub2 si cela pose autant de problèmes?).

Pensées?

Robert S
la source

Réponses:

23

Vous devez d’abord déterminer si vous souhaitez utiliser un démarrage en mode BIOS / CSM / en mode hérité ou en mode EFI / UEFI. Le premier est la façon dont les PC démarrent depuis les années 1980, mais c’est un système laid et hack qui suivra trop longtemps le dodo. Windows lie le démarrage en mode BIOS à la table de partition MBR, que vous n'utilisez pas (mais vous pourriez le faire; votre disque est loin d'être suffisant pour nécessiter un GPT). Linux, FreeBSD et la plupart des autres systèmes d’exploitation modernes sont plus flexibles et prennent en charge le démarrage en mode BIOS à partir de GPT; mais il y a parfois des complications créées par le microprogramme, et bien sûr, si vous décidez ultérieurement d'installer Windows dans une configuration à double démarrage, vous devrez apporter des modifications ou des compromis.

Le démarrage en mode EFI / UEFI est moins astucieux; Cependant, la qualité des implémentations EFI varie considérablement et le niveau global d'expertise et de support sur le Web pour EFI est inférieur à celui du BIOS. Windows lie l'utilisation de GPT au démarrage en mode EFI. Ainsi, si vous prévoyez d'installer Windows sur votre ordinateur, EFI est définitivement la voie à suivre. Les ordinateurs plus anciens ne contiennent que le BIOS. EFI a commencé à décoller sur le marché à la mi-2011. Par conséquent, si votre ordinateur est plus ancien, vous ne pourrez peut-être pas utiliser EFI.

Si vous optez pour un démarrage en mode BIOS, vous devez créer une partition de démarrage BIOS sur le disque. Il y a assez de place au début de votre disque pour cette partition, mais vous devrez définir la valeur d'alignement de secteur sur 1 (sur 2048 habituelle) pour que cela fonctionne. Je ne sais pas si cela peut être fait parted, mais vous pouvez le faire avec gdisk. (Notez que l'espace au début de votre disque est légèrement inférieur à la taille recommandée de 1 Mo pour une partition de démarrage BIOS, mais de quelques secteurs seulement. Il fonctionnera probablement correctement, mais pourrait éventuellement échouer ultérieurement.) , vous pouvez réduire l’une de vos partitions de 1 à 2 Mo pour laisser de la place à la partition de démarrage du BIOS. Cette partition n'a pas besoin d'être la première partition du disque, bien que ce soit l'emplacement conventionnel.

Si vous démarrez avec le démarrage en mode EFI / UEFI, vous devez créer une partition système EFI (ESP). Cette partition doit être au format FAT et doit être considérablement plus grande qu'une partition de démarrage BIOS. Vous devrez donc redimensionner quelque chose pour la créer. Je recommande une taille de 550 Mo, bien qu'un dixième de cela puisse fonctionner à la rigueur.

Pour installer GRUB, vous devez d’abord vous assurer que vous avez installé le bon progiciel GRUB. Je ne suis pas sûr de nommer dans toutes les distributions, mais sous Ubuntu, ce serait grub-pcpour le mode BIOS / CSM / legacy et grub-efi-amd64pour le mode EFI / UEFI. Une installation en mode EFI nécessite également d’amorcer tout ce que vous utilisez pour installer GRUB (vraisemblablement un CD / USB, en mode EFI). Pour ce faire, vous devrez peut-être utiliser le gestionnaire de démarrage intégré de votre ordinateur, auquel on accède généralement via une touche de fonction, mais les détails varient d'un ordinateur à l'autre.

Rod Smith
la source
Merci pour votre réponse très utile. J'ai des choses qui fonctionnent sur une machine virtuelle avec un peu de déconner. Lorsque j'essaie de faire cela sur ma machine "de production" (qui a deux disques durs), j'ai un certain nombre de problèmes: grub2-install grub-setup=/bin/true /dev/sdadonne grub2-install: error: More than one install device?.. Sur ma machine virtuelle, le secteur de départ est marqué 32, mais sur la machine de production, il porte 2048. Je ne sais pas si cela est pertinent.
Robert S
Comme Flow le suggère dans sa réponse, le type de partition de la partition d'amorçage BIOS doit être défini sur 0x04, c'est-à-dire "initialisation BIOS", faute de quoi l'installation de grub échoue. Cela peut être défini par exemple avec la commande "t" de fdisk.
user1225999
Est-il possible de faire installer grub 2 sans partition de démarrage du bios? Je veux seulement utiliser UEFI.
CMCDragonkai
1
Dans une installation en mode EFI, GRUB 2 n'utilise pas de partition de démarrage BIOS. Si GRUB en demande un, il est probable que vous ayez démarré en mode BIOS, et non en mode EFI. Vérifiez vos options de démarrage pour vous assurer que votre CSM est désactivé, comme décrit sur ma page Web à ce sujet: rodsbooks.com/efi-bootloaders/csm-good-bad-ugly.html
Rod Smith
6

Si vous souhaitez utiliser des partitions GPT avec le mode d’amorçage du BIOS de l’ancien style, vous devez créer une partition BIOS de quelques mégaoctets (16Mi devrait être compatible avec le futur) sur le périphérique sur lequel vous souhaitez installer grub grub-install.

Utilisez, par exemple, fdiskpour créer la partition de type "BIOS boot" quelque part sur votre disque. Exemple de sortie:

# fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 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: gpt
Disk identifier: 57E16A16-36B4-4445-A216-031EF6501415

Device        Start        End    Sectors   Size Type
/dev/sda1      2048    4196351    4194304     2G Linux RAID
/dev/sda2   4196352   35653631   31457280    15G Linux RAID
/dev/sda3  35653632   37750783    2097152     1G Linux swap
/dev/sda4  37750784   37816319      65536    32M BIOS boot
/dev/sda5  37816320 1953525134 1915708815 913.5G Linux LVM
Couler
la source
3

La partition de démarrage doit être formatée fat32 pour fonctionner

mkfs.vfat -F32 /dev/sdXY

Devrait le réparer pour vous

De plus, le drapeau de démarrage doit être activé dans Parted:

set 1 boot on
Kevin Huntly
la source