VirtualBox загружается только в UEFI Interactive shell

45

Я установил Ubuntu 14.10 в VirtualBox с UEFI. Но теперь я перезагрузил эту ОС, и теперь она загружается в UEFI Interactive Shell v2.0. Как я могу нормально загрузиться в Grub?

    
задан Benjamin Stütz 28.12.2014 в 18:19
источник

10 ответов

51

Я столкнулся с той же проблемой и обнаружил, что если я выведу следующую команду в интерактивной оболочке, виртуальная машина загрузится в Ubuntu:

fs0:\efi\ubuntu\grubx64.efi

(Использовать обратную косую черту, косая черта не работает. Команды в интерактивной оболочке UEFI нечувствительны к регистру.)

Моя версия VirtualBox - это 4.3.20 r96997, версия Ubuntu - 14.10 AMD64. Я не знаю, почему это происходит и как его решить. Просто нашел это не изящным и все-таки немного затруднительным обходным путем.

Обновление 1:

Я прочитал этот , отследил до отчет об ошибке и нашел лучшее обходное решение .

Обновление 2:

Обходной путь в обновлении 1 не удался. Я отключил виртуальную машину, запустил ее. И он снова загрузился в UEFI Interactive shell. В соответствии с этим проблема, вероятно, вызвана ошибкой VirtualBox. Я все еще ищу для этого дальнейшее решение.

Обновление 3:

Наконец, найдено решение. В соответствии с этим вам необходимо создать скрипт startup.nsh вручную. За исключением метода в упомянутом сообщении, вы также можете сделать это:

$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
    
ответ дан Nairen Zheng 14.01.2015 в 12:43
источник
30

У меня была та же проблема (с EFI включен , потому что я не мог заставить ее работать в противном случае). Странный; хотя установка Ubuntu 14.04.2 не получила ошибок, установка Kubuntu 15.04 не удалось завершить. Он застыл в самом конце, когда его попросили удалить DVD. После перезагрузки он загрузился нормально, но после отключения питания он вывел оболочку.

Итак, чтобы избежать типа оболочки:

fs0:
edit startup.nsh

и в открывшемся окне добавьте эти 2 строки:

FS0:
\EFI\ubuntu\grubx64.efi

нажмите Ctrl + s и Введите для сохранения и Ctrl + q бросить курить. Затем перезапустите VM.

В качестве альтернативы вы всегда можете использовать эти 2 строки для выхода из оболочки и загрузочной ОС. Но во второй раз, когда вы перезагрузитесь, вы снова будете в оболочке и не сможете редактировать startup.nsh .

    
ответ дан VRR 31.05.2015 в 16:58
11

Еще одна опция - отменить опцию «Расширенные функции» под названием «Включить EFI» под «Материнская плата» для вашей виртуальной машины.

Если эта проблема возникнет для установки Gnome Ubuntu 12.04.2 amd64bit.

Обнаружено это после изменения параметров аппаратного ускорения. Я остался с включенным VT-x / AMD-V, вложенным пейджингом. Моя виртуальная машина имеет 2 процессора, 8 ГБ оперативной памяти для справки.

После полной проверки проблема полностью обходится Gnome Ubuntu не загружает никаких проблем. Запуск Virtual Box 4.3.18 r96516 на 64-разрядном хосте Windows 7.

    
ответ дан robocop 05.03.2015 в 20:56
3

Скопировать grubx64.efi в /EFI/boot/bootx64.EFI
VirtualBox использовать bootx64.efi для загрузки.
Ref .: Вики-страница Archlinux Virtualbox

    
ответ дан cylgalad 06.12.2015 в 13:01
1

Я мог бы решить эту проблему, изменив устройство cdrom в виртуальном боксе с IDE на SATA. Я удалил стандартное отображение виртуального диска cdrom в конфигурации устройства.

Просто добавьте устройство cdrom в существующий контроллер SATA, который будет использоваться для вашего установочного носителя.

Et voila, никаких дополнительных проблем с EFI нет.

    
ответ дан Laurent 11.04.2015 в 09:42
1

для этого вам нужно написать его следующим образом:

fs0:
cd EFI
cd ubuntu
grubx64

вот как я получил его, чтобы работать, если вы напишете его каким-либо другим способом, которым он не будет работать.

    
ответ дан Dan Duncker 08.09.2016 в 04:38
1

Другая работа вокруг:

В оболочке uefi временно загрузитесь в ubuntu, используя:

fs0:
cd EFI
cd ubuntu
grubx64

Затем, внутри ubuntu, отредактируйте файл startup.nsh, как показано ниже:

Открыть терминал Ctrl + Alt + T .

Тип:

sudo nano /boot/efi/startup.nsh

Введите пароль.

Теперь удалите все, что там, используя ключ del или backspace.

Затем введите это точно: ( FS0 - это число 0 , а не алфавит O )

FS0:
\EFI\ubuntu\grubx64.efi

Теперь нажмите Ctrl + O (это алфавит O ).

Затем Alt + D (Чтобы изменить текст в формат msdos).

Затем нажмите Enter .

Затем Ctrl + X .

Теперь перезагрузитесь.

sudo reboot

Теперь все должно быть хорошо.

    
ответ дан Ddm 08.03.2017 в 06:37
1

Используя Ubuntu 16.04.4 с включенным EFI и при запуске виртуальной машины я обнаружил, что он не загружается и остается в интерактивной оболочке EFI.

Вот как я исправил загрузку:

Сначала я обнаружил, что grubx64.efi находится в BLK2, поэтому для однократной загрузки я просто набрал в интерактивной оболочке следующее:

BLK2:/EFI/ubuntu/grubx64.efi

И альт, Ubuntu запущен и работает.

Я постоянно исправляю эту проблему, как только система встала, я повторил следующую строку в /boot/efi/startup.nsh.

sudo echo 'BLK2:/EFI/ubuntu/grubx64.efi' > /boot/efi/startup.nsh

Вот и все, система будет загружаться правильно.

    
ответ дан Yaron Morad 21.07.2018 в 13:31
0

Недавно я столкнулся с этой проблемой. Проверьте настройки виртуальной ОС. Щелкните правой кнопкой мыши на виртуальном os- > system- > Расширенные функции- > Включить EFI (снимите этот флажок).

    
ответ дан Sudip7 17.01.2016 в 13:31
0

После установки Kubuntu15.10 в VirtualBox5 с UEFI перезагрузка VM завершается с ошибкой.

Добавление строки

FS0:\EFI\ubuntu\grubx64.efi
в UEFI-Shell не помогает.

И решение с созданием нового файла startup.nsh в Kubuntu15.10 в среде chroot с

sudo echo '\EFI\ubuntu\grubx64.efi' > startup.nsh 
также не улучшает.

Я нашел решение:

Проблема заключалась в том, что каталог / boot / efi / EFI / ubuntu с файлом grubx64.efi не существует.

После загрузки Live-CD и перехода в среду chroot я установил отсутствующие пакеты и создаю необходимую запись NVRAM с помощью:

sudo apt-get install grub-efi-amd64-signed shim-signed
sudo update-grub
    
ответ дан sun312 12.03.2016 в 01:44