Come uscire dalla shell EFI nella scatola virtuale


13

Sto eseguendo una macchina virtuale per Mac OSX e si avvia sempre nella shell EFI, voglio solo una semplice spiegazione di cosa sia e come, se possibile, uscirne.

Risposte:


15

La shell EFI è uno strumento da riga di comando simile nel concetto a bash in Linux / Unix / OS X o in una finestra del prompt dei comandi in Windows. Consente di visualizzare, eliminare, modificare e rinominare i file, aggiornare le voci del gestore di avvio EFI e così via. È possibile uscire dalla shell digitando exit; tuttavia, nel caso di VirtualBox, questo probabilmente ti porterà a un menu EFI che può essere altrettanto confuso.

Se hai installato un sistema operativo nella sessione di VirtualBox, è probabile che sia installato un caricatore di avvio su EFI System Partition (ESP). La maggior parte dei sistemi operativi registra questi bootloader con il firmware, che li ricorda e li avvia automaticamente. Una stranezza di VirtualBox è che di solito dimentica queste voci del boot manager. Il risultato è che la VM si avvia nella shell EFI per impostazione predefinita. Esistono diversi modi per affrontare questo problema, tra cui:

  • È possibile avviare manualmente il caricatore di avvio utilizzando la shell EFI:
    1. Digitare fs0:per accedere al primo filesystem, che di solito è l'ESP.
    2. Digitare cd EFI\{osname}, dove {osname}è il nome della directory in cui il sistema operativo ha installato il suo caricatore di avvio. (Non hai detto quale sistema operativo hai installato, quindi non posso essere sicuro di cosa sia. Digitare ls EFIti mostrerà cosa c'è.)
    3. Avviare il boot loader digitando il suo nome. Ancora una volta, non so cosa sia. Per Linux, di solito lo è grubx64.efi. Per Windows, lo è bootmgfw.efi.
  • Automatizza la procedura sopra descritta con uno script di avvio della shell EFI ( startup.nshnella directory principale dell'ESP).
  • Rinominare il boot loader in EFI\BOOT\bootx64.efi, ovvero il nome file di fallback:
    1. Digitare fs0:per accedere al primo filesystem, che di solito è l'ESP.
    2. Digitare mv EFI\{osname} EFI\BOOTper rinominare la directory in cui risiede il caricatore di avvio. Come sopra, dovrai determinare cosa sei {osname}.
    3. Digitare mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi, dove si {loadername.efi}trova il nome del caricatore di avvio, ad esempio grubx64.efiper la maggior parte delle installazioni Linux.
  • Registrare il boot loader con il firmware VirtualBox utilizzando gli strumenti della shell. Non conosco una descrizione concisa di come eseguire questa operazione sul Web, e non ho tempo di scriverlo qui. È probabile che sia frustrante senza istruzioni precise perché ci sono molte insidie ​​non ovvie che devi evitare.

Personalmente, la soluzione che utilizzo più spesso è quella di rinominare il boot loader dal valore predefinito del sistema operativo a EFI\BOOT\bootx64.efi. Questo è il più semplice da implementare e funziona abbastanza bene. Uno svantaggio di questo approccio è che se il tuo sistema operativo aggiorna mai il caricatore di avvio, l'aggiornamento andrà probabilmente nella posizione originale, quindi dovrai ripetere il processo se desideri utilizzare il caricatore di avvio aggiornato.


Che dire di Mac? Le tue istruzioni non funzionano
Pacerier
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.