So verlassen Sie die EFI-Shell in einer virtuellen Box

13

Ich verwende eine virtuelle Maschine für Mac OSX und sie startet immer in der EFI-Shell. Ich möchte nur eine einfache Erklärung, was dies ist und wie ich sie nach Möglichkeit beenden kann.

Dan
quelle

Antworten:

15

Die EFI-Shell ist ein Befehlszeilentool, dessen Konzept dem Bash unter Linux / Unix / OS X oder einem Eingabeaufforderungsfenster unter Windows ähnelt. Sie können Dateien anzeigen, löschen, bearbeiten und umbenennen, um EFI-Bootmanager-Einträge zu aktualisieren usw. Sie können die Shell durch Eingabe verlassen exit. Im Fall von VirtualBox gelangen Sie jedoch wahrscheinlich zu einem EFI-Menü, das ebenso verwirrend sein kann.

Wenn Sie in Ihrer VirtualBox-Sitzung ein Betriebssystem installiert haben, ist wahrscheinlich ein Bootloader auf der EFI-Systempartition (ESP) installiert . Die meisten Betriebssysteme registrieren diese Bootloader bei der Firmware, die sie speichert und automatisch startet. Eine Besonderheit von VirtualBox ist, dass diese Bootmanager-Einträge normalerweise vergessen werden. Das Ergebnis ist, dass die VM standardmäßig die EFI-Shell startet. Es gibt verschiedene Möglichkeiten, um dieses Problem zu lösen, darunter:

  • Sie können den Bootloader mithilfe der EFI-Shell manuell starten:
    1. Geben Sie ein, fs0:um auf das erste Dateisystem zuzugreifen, bei dem es sich normalerweise um das ESP handelt.
    2. Typ cd EFI\{osname}, in dem {osname}der Name des Verzeichnis, in dem Ihr Betriebssystem seine Bootloader installiert. (Sie haben nicht gesagt, welches Betriebssystem Sie installiert haben, daher kann ich nicht sicher sein, was das ist. Wenn ls EFISie tippen , sehen Sie, was da ist.)
    3. Starten Sie den Bootloader, indem Sie seinen Namen eingeben. Wieder kann ich nicht wissen, was das ist. Für Linux ist es normalerweise grubx64.efi. Für Windows ist es bootmgfw.efi.
  • Automatisieren Sie den obigen Vorgang mit einem EFI-Shell-Startskript ( startup.nshim Stammverzeichnis des ESP).
  • Benennen Sie den Bootloader in EFI\BOOT\bootx64.efiden Fallback-Dateinamen um:
    1. Geben Sie ein, fs0:um auf das erste Dateisystem zuzugreifen, bei dem es sich normalerweise um das ESP handelt.
    2. Geben Sie ein mv EFI\{osname} EFI\BOOT, um das Verzeichnis umzubenennen, in dem sich der Bootloader befindet. Wie oben müssen Sie bestimmen, was Sie {osname}selbst sind.
    3. Geben Sie ein mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi, wo {loadername.efi}der Name des Bootloaders steht, z. B. grubx64.efifür die meisten Linux-Installationen.
  • Registrieren Sie den Bootloader mithilfe der Tools der Shell bei der VirtualBox-Firmware. Ich kenne keine prägnante Beschreibung, wie man das im Internet ohne weiteres macht, und ich habe keine Zeit, es hier aufzuschreiben. Ohne genaue Anweisungen ist es wahrscheinlich frustrierend, da es viele nicht offensichtliche Fallstricke gibt, die Sie vermeiden müssen.

Persönlich ist die Lösung, die ich am häufigsten verwende, das Umbenennen des Bootloaders von der Standardeinstellung des Betriebssystems in EFI\BOOT\bootx64.efi. Dies ist am einfachsten zu implementieren und funktioniert gut genug. Ein Nachteil dieses Ansatzes besteht darin, dass, wenn Ihr Betriebssystem den Bootloader jemals aktualisiert, das Update wahrscheinlich an den ursprünglichen Speicherort verschoben wird. Sie müssen den Vorgang also wiederholen, wenn Sie den aktualisierten Bootloader verwenden möchten.

Rod Smith
quelle
Was ist mit Mac? Ihre Anweisungen funktionieren nicht
Pacerier