web-dev-qa-db-fra.com

Comment sortir de EFI Shell dans une boîte virtuelle

J'exécute une machine virtuelle pour Mac OSX et elle démarre toujours dans EFI Shell. Je veux simplement une explication simple de ce que c'est et comment, si possible, le quitter.

11
Dan

Le shell EFI est un outil de ligne de commande similaire à celui de bash sous Linux/Unix/OS X ou à une fenêtre d'invite de commande sous Windows. Il vous permet d'afficher, de supprimer, de modifier et de renommer des fichiers, de mettre à jour les entrées du gestionnaire de démarrage EFI, etc. Vous pouvez quitter le shell en tapant exit; Cependant, dans le cas de VirtualBox, cela vous mènera probablement à un menu EFI qui peut être tout aussi déroutant.

Si vous avez installé un système d’exploitation dans votre session VirtualBox, il est probable qu’il ait installé un chargeur de démarrage sur la (ESP) système de partition EFI. démarrer les chargeurs avec le micrologiciel, qui les mémorise et les amorce automatiquement. L'un des inconvénients de VirtualBox est qu'il oublie généralement ces entrées du gestionnaire de démarrage. Le résultat est que la VM démarre dans le shell EFI par défaut. Il existe plusieurs manières de traiter ce problème, notamment:

  • Vous pouvez lancer le chargeur de démarrage manuellement à l'aide du shell EFI:
    1. Tapez fs0: pour accéder au premier système de fichiers, qui est généralement l'ESP.
    2. Tapez cd EFI\{osname}, où {osname} est le nom du répertoire où votre système d'exploitation a installé son chargeur de démarrage. (Vous n'avez pas dit quel système d'exploitation vous avez installé, donc je ne sais pas exactement ce que c'est. Taper ls EFI vous montrera ce qu'il y a là.)
    3. Lancez le chargeur de démarrage en tapant son nom. Encore une fois, je ne peux pas savoir ce que c'est. Pour Linux, c'est généralement grubx64.efi. Pour Windows, c'est bootmgfw.efi.
  • Automatisez la procédure ci-dessus avec un script de démarrage EFI Shell (startup.nsh dans le répertoire racine de l'ESP).
  • Renommez le chargeur de démarrage en EFI\BOOT\bootx64.efi, qui correspond au nom de fichier de secours: .
    1. Tapez fs0: pour accéder au premier système de fichiers, qui est généralement l'ESP.
    2. Tapez mv EFI\{osname} EFI\BOOT pour renommer le répertoire dans lequel réside le chargeur de démarrage. Comme ci-dessus, vous devrez déterminer quel {osname} est vous-même.
    3. Tapez mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi, où {loadername.efi} est le nom du chargeur de démarrage, tel que grubx64.efi pour la plupart des installations Linux.
  • Enregistrez le chargeur de démarrage avec le micrologiciel VirtualBox à l'aide des outils du shell. Je ne connais pas de description concise de la façon de procéder, mais je n'ai pas le temps de l'écrire ici. Cela risque d'être frustrant sans instructions précises car il y a beaucoup de pièges non évidents que vous devez éviter.

Personnellement, la solution que j’utilise le plus souvent est de renommer le chargeur de démarrage du système par défaut en EFI\BOOT\bootx64.efi. C'est le plus facile à mettre en œuvre et cela fonctionne assez bien. Un inconvénient de cette approche est que, si votre système d'exploitation met à jour le chargeur de démarrage, celle-ci ira probablement à l'emplacement d'origine. Vous devrez donc répéter le processus si vous souhaitez utiliser le chargeur de démarrage mis à jour.

14
Rod Smith