11

Я использую виртуальную машину для Mac OSX, и она всегда загружается в оболочку EFI, мне просто нужно простое объяснение, что это такое и как, если возможно, выйти из нее.

1 ответ1

14

Оболочка EFI - это инструмент командной строки, аналогичный по своей концепции bash в Linux/Unix/OS X или окну командной строки в Windows. Он позволяет просматривать, удалять, редактировать и переименовывать файлы, обновлять записи менеджера загрузки EFI и т.д. Вы можете выйти из оболочки, набрав команду exit ; однако в случае VirtualBox это, вероятно, приведет вас к меню EFI, которое может быть столь же запутанным.

Если вы установили ОС в сеанс VirtualBox, скорее всего, она установлена в системном разделе EFI (ESP). Большинство ОС регистрируют эти загрузчики с помощью прошивки, которая запоминает их и загружает автоматически. Причуда VirtualBox состоит в том, что он обычно забывает эти записи менеджера загрузки. В результате виртуальная машина загружается в оболочку EFI по умолчанию. Существует несколько способов решения этой проблемы, в том числе:

  • Вы можете запустить загрузчик вручную, используя оболочку EFI:
    1. Введите fs0: для доступа к первой файловой системе, которая обычно является ESP.
    2. Введите cd EFI\{osname} , где {osname} - это имя каталога, в котором ваша ОС установила свой загрузчик. (Вы не сказали, какую ОС вы установили, поэтому я не уверен, что это такое. Ввод ls EFI покажет вам, что там.)
    3. Запустите загрузчик, введя его имя. Опять же, я не могу знать, что это такое. Для Linux это обычно grubx64.efi . Для Windows это bootmgfw.efi .
  • Автоматизируйте описанную выше процедуру с помощью сценария запуска оболочки EFI (startup.nsh в корневом каталоге ESP).
  • Переименуйте загрузчик в EFI\BOOT\bootx64.efi , который является резервным именем файла:
    1. Введите fs0: для доступа к первой файловой системе, которая обычно является ESP.
    2. Введите mv EFI\{osname} EFI\BOOT чтобы переименовать каталог, в котором находится загрузчик. Как и выше, вы должны будете определить, что такое {osname} .
    3. Введите mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi , где {loadername.efi} - это имя загрузчика, например grubx64.efi для большинства установок Linux.
  • Зарегистрируйте загрузчик с помощью прошивки VirtualBox с помощью инструментов оболочки. Я не знаю краткого описания того, как сделать это в Интернете, и у меня нет времени, чтобы написать это здесь. Вероятно, это будет неприятно без точных инструкций, потому что есть много неочевидных ловушек, которые вы должны избегать.

Лично решение, которое я чаще всего использую, состоит в том, чтобы переименовать загрузчик из операционной системы по умолчанию в EFI\BOOT\bootx64.efi . Это проще всего реализовать и работает достаточно хорошо. Одним из недостатков этого подхода является то, что если ваша ОС когда-либо обновляет загрузчик, обновление, вероятно, перейдет в исходное местоположение, поэтому вам придется повторить процесс, если вы хотите использовать обновленный загрузчик.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .