Как выйти из EFI shell в virtual box
Я запускаю виртуальную машину для Mac OSX, и она всегда загружается в оболочку EFI, мне просто нужно простое объяснение того, что это такое и как, если возможно, выйти из нее.
1 ответов
оболочка EFI-это инструмент командной строки, аналогичный по концепции bash в Linux/Unix / OS X или окну командной строки в Windows. Он позволяет просматривать, удалять, редактировать и переименовывать файлы, обновлять записи менеджера загрузки EFI и так далее. Вы можете выйти из оболочки, набрав exit ; однако, в случае VirtualBox, это, вероятно, приведет вас к меню EFI, которое может быть столь же запутанным.
если вы установили ОС в сессии VirtualBox, скорее всего, он установлен загрузки погрузчик на системный раздел EFI (ESP). большинство ОС регистрирует эти загрузчики с прошивкой, которая помнит их и загружает их автоматически. Одной из особенностей VirtualBox является то, что он обычно забывает эти записи менеджера загрузки. В результате виртуальная машина загружается в оболочку EFI по умолчанию. Есть несколько способов справиться с этой проблемой, в том числе:
- вы можете запустить загрузчик вручную, используя оболочку EFI:
- тип fs0: для доступа к первой файловой системе, которая обычно является ESP.
- тип cd EFI\
, где — это имя каталога, в котором ваша ОС установила свой загрузчик. (Вы не сказали, какую ОС вы установили, поэтому я не могу быть уверен, что это такое. Введите ls EFI покажет вам, что есть.) - запустите загрузчик, введя его имя. Опять же, я не могу знать, что это такое. Для Linux это обычно grubx64.efi . Для Windows, это bootmgfw.efi .
- автоматизируйте описанную выше процедуру с помощью сценария запуска оболочки EFI ( startup.nsh в корневом каталоге ESP).
- переименуйте загрузчик в EFI\BOOT\bootx64.efi , которое является резервным именем файла:
- тип fs0: для доступа к первой файловой системе, которая обычно является ESP.
- тип mv EFI\
EFI\BOOT переименовать каталог, в котором находится загрузчик. Как и выше, вы должны будете определить, что — это себе. - тип mv EFI\BOOT\
EFI\BOOT\bootx64.efi , где — имя загрузчика, например grubx64.efi для большинства версий Linux.
- зарегистрируйте загрузчик с помощью встроенного ПО VirtualBox с помощью инструментов оболочки. Я не знаю краткого описания того, как это сделать в интернете, навскидку, и у меня нет времени писать его здесь. Это, вероятно, будет неприятно без точных инструкций, потому что есть много неочевидных подводных камней, которые вы должны избегать.
лично я чаще всего использую решение переименовать загрузчик из ОС по умолчанию в EFI\BOOT\bootx64.efi . Это самый простой в реализации и работает достаточно хорошо. Одним из недостатков этого подхода является то, что если ваша ОС когда-либо обновляет загрузчик, обновление, вероятно, перейдет в Исходное расположение, поэтому вам придется повторить процесс, если вы хотите использовать обновленный загрузчик.
Я застрял в оболочке EFI при включении компьютера [ИСПРАВЛЕНО]
Bootloops и BSOD – это то, с чем сталкивается каждый пользователь ПК. Важно не паниковать и не пытаться определить причину проблемы. В этом случае некоторые пользователи застряли в EFI Shell после перезагрузки компьютера.
Для некоторых ошибка предшествовала внезапному отключению, в то время как другие не испытывали ничего необычного до ошибки EFI Shell. Мы нашли 3 возможных решения этой проблемы и поместили их ниже.
Как исправить ошибки EFI Shell при загрузке ПК
- Подключите жесткий диск в другой порт
- Отключить MSI Fast Boot или UEFI Boot в BIOS
- Удалить CMOS аккумулятор
Решение 1. Подключите жесткий диск к другому порту
Первый шаг, с которым мы сталкиваемся как возможное решение, – это изменение порта жесткого диска. По-видимому, переключая порты SATA, некоторым пользователям удалось получить EFI (Extensible Firmware Interface). Это, конечно, указывает на некоторые аппаратные проблемы, поэтому, даже если ваш компьютер может загрузиться в систему, всегда есть страх перед HDD или, что менее вероятно, проблемами с материнской платой.
Кроме того, если вы застряли в цикле загрузки, попробуйте выключить компьютер и переключить слоты оперативной памяти. Если у вас есть две RAM-карты, поменяйте их местами. Также рекомендуется отключить все USB-устройства, за исключением клавиатуры.
Попробуйте загрузиться снова и ищите изменения. Если вы можете получить доступ к настройкам загрузки, убедитесь, что жесткий диск находится в верхней части списка. Если вы не видите свой жесткий диск в списке загрузочных дисков, мы, скорее всего, обратимся к проблеме с оборудованием.
Решение 2. Отключите MSI Fast Boot или UEFI Boot в BIOS
Каждый OEM материнской платы имеет несколько конкретных настроек. Хотя некоторые из них являются уловками, такие функции, как MSI Fast Boot, часто используются для ускорения загрузки в систему.
Однако, похоже, что эта функция не работает должным образом с Windows 10. Некоторые пользователи смогли выйти из оболочки EFI, отключив эту функцию.
Кроме того, если у вас UEFI загружается где-то в настройках EFI, отключите его. Это еще одна возможная причина проблемы. Кроме того, попробуйте сбросить настройки EFI до заводских настроек по умолчанию. Таким образом, вы будете уверены, что никаких изменений не было.
- ОТНОСИТЕЛЬНО: 5 лучших программ для восстановления загрузки Windows 10, чтобы оживить ваш компьютер в 2019 году
Решение 3 – Удалить батарею CMOS
Наконец, если ни один из предыдущих шагов не вывел вас из EFI Shell, мы можем предложить только одно решение. А именно, конфигурация BIOS/UEFI может быть повреждена, и единственный реальный способ решить эту проблему в этом текущем состоянии – извлечь батарею CMOS.
Таким образом, вся кэшированная конфигурация будет сброшена, и вы сможете загрузить систему. Конечно, это означает, что все жесткие диски работоспособны.
Это не совсем сложно. Просто выключите компьютер и удалите все кабели. Получите доступ к внутренней части корпуса, и где-то посередине материнской платы вы увидите батарею для ручных часов. Удалите его и вставьте снова. Подключи все и попробуй еще раз. Если жесткий диск распознан и установлен в качестве первого варианта загрузки, рассмотрите возможность переустановки системы. Просто не забудьте сделать резервную копию ваших файлов.
Если у вас есть альтернативные решения, о которых мы забыли упомянуть, обязательно сообщите нам об этом в разделе комментариев ниже.
How to get out of EFI shell in virtual box
I am running a virtual machine for Mac OSX and it always boots into EFI shell, I just want a simple explanation of what this is and how, if possible, to exit it.
![]()
1 Answer 1
The EFI shell is a command-line tool similar in concept to bash in Linux/Unix/OS X or a Command Prompt window in Windows. It lets you view, delete, edit, and rename files, to update EFI boot manager entries, and so on. You can exit from the shell by typing exit ; however, in the case of VirtualBox, this will probably bring you to an EFI menu that can be just as confusing.
If you’ve installed an OS in your VirtualBox session, chances are it installed a boot loader on the EFI System Partition (ESP). Most OSes register these boot loaders with the firmware, which remembers them and boots them automatically. One quirk of VirtualBox is that it usually forgets these boot manager entries. The result is that the VM boots up into the EFI shell by default. There are several ways to deal with this problem, including:
- You can launch the boot loader manually by using the EFI shell:
- Type fs0: to access the first filesystem, which is usually the ESP.
- Type cd EFI\
, where is the name of the directory where your OS installed its boot loader. (You haven’t said what OS you’ve installed, so I can’t be sure what that is. Typing ls EFI will show you what’s there.) - Launch the boot loader by typing its name. Again, I can’t know what that is. For Linux, it’s usually grubx64.efi . For Windows, it’s bootmgfw.efi .
- Automate the above procedure with an EFI shell startup script ( startup.nsh in the root directory of the ESP).
- Rename the boot loader to EFI\BOOT\bootx64.efi , which is the fallback filename:
- Type fs0: to access the first filesystem, which is usually the ESP.
- Type mv EFI\
EFI\BOOT to rename the directory in which the boot loader resides. As above, you’ll have to determine what is yourself. - Type mv EFI\BOOT\
EFI\BOOT\bootx64.efi , where is the boot loader’s name, such as grubx64.efi for most Linux installations.
- Register the boot loader with the VirtualBox firmware by using the shell’s tools. I don’t know of a concise description of how to do this on the web, offhand, and I don’t have time to write it up here. It’s likely to be frustrating without precise instructions because there are a lot of non-obvious pitfalls you must avoid.
Personally, the solution I most often use is to rename the boot loader from the OS’s default to EFI\BOOT\bootx64.efi . This is the easiest to implement and it works well enough. One drawback to this approach is that if your OS ever updates the boot loader, the update will probably go to the original location, so you’ll have to repeat the process if you want to use the updated boot loader.