web-dev-qa-db-fra.com

Comment vérifier si j'utilise GRUB-EFI ou GRUB-PC?

J'utilise Ubuntu 14.04 dans un chroot sous ChromeOS, qui utilise un système UEFI. Pour installer WinUSB afin de créer un support de récupération pour Windows, je devais changer grub-efi-AMD64 en grub-pc. WinUSB a effectué ce processus pour moi. À ma connaissance, cela rendrait mon appareil incapable de démarrer.

Pour tenter de résoudre ce problème, j'ai exécuté Sudo apt-get install grub-efi qui a peut-être corrigé le problème, mais je ne souhaite pas redémarrer l'ordinateur pour le découvrir au cas où je me trompe.

Comment pourrais-je vérifier si le problème est résolu?

On m'a dit que je pourrais exécuter Sudo grub pour entrer dans le shell grub, puis echo $grub_install pour me dire si j'utilise grub-pc ou grub-efi-AMD64. Cependant, j'utilise GRUB 2.02 et Sudo grub semble être obsolète.

Comme je suis sur un Chromebook, qui démarre toujours dans ChromeOS, je n’ai aucun moyen d’accéder à un shell GRUB au démarrage.

Quelqu'un peut-il m'aider?

6
snazzybouche

Consultez cette question pour déterminer comment votre ordinateur a été démarré:

Comment savoir si mon système a été démarré en tant que EFI/UEFI ou BIOS?

Ce n'est pas tout à fait identique à la question que vous avez posée, raison pour laquelle je ne marque pas votre question comme un doublon. Normalement, la méthode de démarrage (BIOS contre EFI) détermine quelle version de GRUB était la dernière à démarrer l'ordinateur. (Si vous avez déjà installé d'autres chargeurs d'amorçage, vous auriez peut-être démarré avec l'un d'eux. Cette approche ne fera pas la distinction entre, par exemple, le mode EFI GRUB et le mode EFI ELILO.)

Vous pouvez vérifier quelle version du package GRUB est installée à l'aide de votre gestionnaire de packages, comme dans:

dpkg -l | grep grub | grep ii

Les chargeurs de démarrage tels que GRUB sont inhabituels car l'installation du package est différente de l'insertion du chargeur de démarrage dans le processus de démarrage. Normalement, vous installez le paquet Debian puis utilisez ses fichiers pour insérer le chargeur de démarrage dans le processus de démarrage; mais ce dernier peut être fait sans paquet, et un paquet peut être installé sans que le processus de démarrage ne soit modifié. En fait, dans votre cas, vous pourriez avoir à la fois les versions BIOS et EFI de GRUB disponibles en tant qu'options de démarrage.

Le moyen le plus simple de vérifier ce qui est accessible en tant qu'options de démarrage est d'utiliser le script d'informations de démarrage. Ce script génère un fichier appelé RESULTS.txt qui indique les chargeurs de démarrage disponibles; Cependant, il faut des connaissances pour interpréter le résultat. Les chargeurs de démarrage en mode BIOS affichent quelque chose comme ceci, près du sommet de la sortie:

============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 40 
    of the same hard drive for core.img, but core.img can not be found at this 
    location.

Les chargeurs de démarrage en mode EFI sont stockés sous forme de fichiers sur le Partition système EFI (ESP). Ces fichiers apparaîtront dans le résultat, à peu près comme ceci:

sda1:     __________________________________________________________________________

    File system:       vfat
    Boot sector type:  FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /EFI/Boot/bootx64.efi /EFI/ubuntu/MokManager.efi 
                       /EFI/ubuntu/fwupx64.efi /EFI/ubuntu/grubx64.efi 
                       /EFI/ubuntu/shimx64.efi 
                       /EFI/Microsoft/Boot/bootmgfw.efi 
                       /EFI/Microsoft/Boot/bootx64.efi

Notez en particulier le fichier /EFI/ubuntu/grubx64.efi, qui est GRUB. (/EFI/ubuntu/shimx64.efi gère le démarrage sécurisé, et d'autres fichiers, en particulier dans /EFI/ubuntu, peuvent également être pertinents.) Si vous utilisez un chargeur de démarrage EFI autre que GRUB, il se peut qu'il apparaisse quelque part également.

De plus, les chargeurs de démarrage en mode EFI sont normalement référencés par des entrées stockées dans la NVRAM, que le script d'informations de démarrage identifiera via des exécutions de efibootmgr:

=================== efibootmgr -v
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0000,0002,2001,2003,2002
Boot0000* ubuntu    HD(1,GPT,249432ce-52fe-4533-b029-ba6c1a901382,0x800,0x100000)/File(EFIubuntushimx64.efi)
Boot0001* EFI Network 0 for IPv4 (68-F7-28-DA-88-B8)    PciRoot(0x0)/Pci(0x2,0x4)/Pci(0x0,0x0)/MAC(68f728da88b8,0)/IPv4(0.0.0.0:0<->0.0.0.0:0,0,0)RC
Boot0002* Windows Boot Manager  HD(1,GPT,249432ce-52fe-4533-b029-ba6c1a901382,0x800,0x100000)/File(EFIMicrosoftBootbootmgfw.efi)RC
Boot0003* EFI Network 0 for IPv6 (68-F7-28-DA-88-B8)    PciRoot(0x0)/Pci(0x2,0x4)/Pci(0x0,0x0)/MAC(68f728da88b8,0)/IPv6([::]:<->[::]:,0,0)RC
Boot0004* EFI USB Device (Generic Flash Disk)   PciRoot(0x0)/Pci(0x12,0x0)/USB(0,0)/USB(0,0)/HD(1,MBR,0x4294967218,0x800,0x1f6a800)RC
Boot2001* EFI USB Device    RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network   RC

Notez que efibootmgr est utilisable uniquement à partir d’un démarrage en mode EFI. Ainsi, si vous démarrez en mode BIOS, vous ne verrez pas cette sortie, même si un chargeur de démarrage EFI est disponible. En outre, certains EFI sont buggés et oublient ou ignorent les entrées de démarrage EFI, mais ils peuvent généralement toujours être démarrés en mode EFI à l'aide de diverses solutions de contournement laides.

Quoi qu'il en soit, la sortie efibootmgr semble effrayante et complexe, mais les points clés sont les suivants:

  • Si GRUB est correctement configuré, une entrée Boot#### devrait pointer dessus. Dans le cas d’Ubuntu, il devrait s’appeler ubuntu; cherchez donc une entrée ubuntu - Boot0000 dans ce cas. (Le nombre peut être n'importe quelle valeur hexadécimale.)
  • BootOrder indique l'ordre dans lequel les entrées de démarrage sont essayées. Dans ce cas, 0000 est en premier, ce qui signifie que l’entrée Boot0000 (ubuntu) sera essayée en premier.

L'intérêt de tout cela est que vous pouvez avoir à la fois les versions en mode BIOS et en mode EFI de GRUB disponibles pour le micrologiciel. Si tel est le cas, les deux apparaîtront dans la sortie du script d'informations d'initialisation et il sera difficile de déterminer lequel sera réellement utilisé. Pour cela, vérifier votre mode de démarrage actuel est la meilleure approche. Il peut arriver qu’une certaine confusion se produise ou que vous passiez d’un mode de démarrage à un autre. La suppression des chargeurs de démarrage redondants peut aider à éviter toute confusion, mais cela peut être risqué - en particulier le retrait d'un chargeur de démarrage en mode BIOS d'un MBR, car cela nécessite l'utilisation de dd, qui peut facilement détruire votre disque si vous faites une erreur. Il est généralement préférable de laisser les chargeurs de démarrage inutilisés accessibles au microprogramme plutôt que de risquer de tels désastres.

3
Rod Smith