Jak wydostać się z powłoki EFI w wirtualnym pudełku

13

Korzystam z maszyny wirtualnej dla systemu Mac OSX i zawsze uruchamia się ona w powłoce EFI, chcę tylko proste wyjaśnienie, co to jest i jak to możliwe, jeśli to możliwe, aby z niej wyjść.

Dan
źródło

Odpowiedzi:

15

Powłoka EFI to narzędzie wiersza polecenia podobne do bash w Linux / Unix / OS X lub okno wiersza polecenia w systemie Windows. Pozwala przeglądać, usuwać, edytować i zmieniać nazwy plików, aktualizować wpisy menedżera rozruchu EFI i tak dalej. Możesz wyjść z powłoki, wpisując exit; jednak w przypadku VirtualBox prawdopodobnie spowoduje to przejście do menu EFI, które może być równie mylące.

Jeśli zainstalowałeś system operacyjny w sesji VirtualBox, jest prawdopodobne, że zainstalował moduł ładujący na partycji systemowej EFI (ESP). Większość systemów operacyjnych rejestruje te programy ładujące z oprogramowaniem układowym, które je zapamiętuje i uruchamia automatycznie. Jednym z dziwactw VirtualBox jest to, że zwykle zapomina tych wpisów menedżera rozruchu. W rezultacie maszyna wirtualna uruchamia się domyślnie w powłoce EFI. Istnieje kilka sposobów rozwiązania tego problemu, w tym:

  • Możesz uruchomić moduł ładujący ręcznie za pomocą powłoki EFI:
    1. Wpisz, fs0:aby uzyskać dostęp do pierwszego systemu plików, którym zwykle jest ESP.
    2. Wpisz cd EFI\{osname}, gdzie {osname}jest nazwa katalogu, w którym system operacyjny zainstalował moduł ładujący. (Nie powiedziałeś, jaki system operacyjny zainstalowałeś, więc nie jestem pewien, co to jest. Wpisanie ls EFIpokaże ci, co tam jest).
    3. Uruchom moduł ładujący, wpisując jego nazwę. Znów nie wiem, co to jest. W przypadku Linuksa jest to zwykle grubx64.efi. W przypadku systemu Windows tak jest bootmgfw.efi.
  • Zautomatyzuj powyższą procedurę za pomocą skryptu uruchamiania powłoki EFI ( startup.nshw katalogu głównym ESP).
  • Zmień nazwę modułu ładującego na EFI\BOOT\bootx64.efi, który jest zastępczą nazwą pliku:
    1. Wpisz, fs0:aby uzyskać dostęp do pierwszego systemu plików, którym zwykle jest ESP.
    2. Wpisz, mv EFI\{osname} EFI\BOOTaby zmienić nazwę katalogu, w którym znajduje się moduł ładujący. Jak wyżej, musisz ustalić, co {osname}jest sobą.
    3. Wpisz mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi, gdzie {loadername.efi}jest nazwa modułu ładującego, na przykład w grubx64.efiprzypadku większości instalacji systemu Linux.
  • Zarejestruj moduł ładujący z oprogramowaniem układowym VirtualBox za pomocą narzędzi powłoki. Nie znam zwięzłego opisu tego, jak to zrobić w Internecie, bezpośrednio, i nie mam czasu, aby to tutaj napisać. Bez precyzyjnych instrukcji może to być frustrujące, ponieważ istnieje wiele nieoczywistych pułapek, których należy unikać.

Osobiście rozwiązaniem, którego najczęściej używam, jest zmiana nazwy modułu ładującego z domyślnego na system operacyjny EFI\BOOT\bootx64.efi. Jest to najłatwiejszy do wdrożenia i działa wystarczająco dobrze. Wadą tego podejścia jest to, że jeśli Twój system operacyjny kiedykolwiek zaktualizuje moduł ładujący, aktualizacja prawdopodobnie przejdzie do oryginalnej lokalizacji, więc będziesz musiał powtórzyć proces, jeśli chcesz użyć zaktualizowanego modułu ładującego.

Rod Smith
źródło
Co z komputerem Mac? Twoje instrukcje nie działają
Pacerier