VirtualBox загружается только в интерактивной оболочке UEFI
49
Я установил Ubuntu 14.10 в VirtualBox с UEFI. Но теперь я перезагрузил эту ОС и теперь она загружается в UEFI Interactive Shell v2.0. Как я могу нормально загрузиться в Grub снова?
Хорошие новости всем, с VirtualBox 5.1 обходные пути больше не нужны. Возможно, вам просто нужно добавить новую запись EFI (вручную efibootmgrили автоматически путем переустановки grub), чтобы он сразу же снова загрузил Ubuntu.
phk
2
Даже в версии 5.1 изменения переменных efi, такие как требуемая настройка загрузки с efibootmgr, теряются после завершения работы (хотя они остаются при перезагрузке).
chappjc
1
5.1.30 все еще существует. Хотя это легко исправить, но я должен исправлять каждый раз после установки Debian & Ubuntu.
CallMeLaNN
Ответы:
52
Я столкнулся с той же проблемой и обнаружил, что если я выполню следующую команду в интерактивной оболочке, виртуальная машина загрузится в Ubuntu:
fs0:\efi\ubuntu\grubx64.efi
(Используйте обратную косую черту, прямая косая черта не работает. Команды в интерактивной оболочке UEFI не чувствительны к регистру.)
Моя версия VirtualBox - 4.3.20 r96997, версия Ubuntu - 14.10 AMD64. Я не знаю, почему это происходит и как это решить. Просто нашел это не элегантно и все еще немного хлопотно.
Обходной путь в обновлении 1 не удалось. Я выключил виртуальную машину, запустил ее. И он снова загрузился в интерактивную оболочку UEFI. Согласно этому , проблема, вероятно, была вызвана ошибкой VirtualBox. Я все еще ищу дальнейшее решение этого.
Обновление 3:
Наконец-то нашел решение. В соответствии с этим вам необходимо вручную создать скрипт startup.nsh. Кроме метода в упомянутом посте, вы также можете сделать это:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
«В настоящее время невозможно манипулировать переменными EFI из запущенного гостя» . Решение во втором обновлении, позволяющее переместить любой загрузчик, который вы хотите использовать в ESP,\EFI\boot\bootx64.efiзвучит для меня как лучшее решение, чем тратит 5 soconds на запуск startup.nsh. , Примечание: Вы можете нажать F12 во время загрузки или войтиexitв оболочку EFI, чтобы получить доступ к настройкам прошивки и изменить все виды вещей, включая разрешение терминала, но эти изменения не сохраняются постоянно.
LiveWireBT
После выдачи команды в интерактивной оболочке вы можете установить refindисправление EFI
Eduardo
1
Приятно знать, что это ошибка. Просто edit startup.nsh. +1 Он ищет \EFI\boot\bootx64.efiпропустить 5сек.
CallMeLaNN
1
Копирование и переименование \EFI\ubuntu\shimx64.efiв \EFI\boot\bootx64.efiлучшее. кредит
CallMeLaNN
Обновление 3 сделало это для меня ....
cljk
32
У меня была та же самая проблема (с включенным EFI, потому что я не мог заставить его работать иначе). Странный; хотя установка Ubuntu 14.04.2 не вызвала ошибок, установка Kubuntu 15.04 не была завершена. Он застыл в самом конце, когда его попросили снять DVD. После сброса загрузился нормально, но после выключения поднял оболочку.
Итак, чтобы избежать типа оболочки:
fs0:
редактировать startup.nsh
и в открывшемся окне добавьте эти 2 строки:
FS0:
\ EFI \ ubuntu \ grubx64.efi
нажмите Ctrl+ sи, Enterчтобы сохранить и Ctrl+, qчтобы выйти. Затем перезапустите ВМ.
Кроме того, вы всегда можете использовать эти 2 строки для выхода из оболочки и загрузки ОС. Но при втором перезапуске вы снова попадете в оболочку и не сможете ее редактировать startup.nsh.
Ввод команды работает, но проблема в том, что при следующем перезапуске она снова переходит в эту оболочку, и файл startup.nsh, похоже, не сохраняется.
Игорь Чордаш
Чтобы сохранить файл startup.nsh, вам нужно использовать Ctrl + S для сохранения и нажать Enter, чтобы записать в файл.
Willoczy
2
Если вы не используете Ubuntu, вы можете определить правильный путь для вашей машины, используя lsоболочку UEFI. Например ls FS0:\EFI, ls FS0:\EFI\redhatчтобы узнать путь FS0:\EFI\redhat\grub.efiк CentOS.
ntc2
1
@ ntc2 Спасибо, это именно то, что я искал! Для моей установки Slackware это было FS0:\EFI\Slackware\elilo.efi.
Фабиомая
11
Другой вариант - снять флажок «Расширенные функции» под названием «Включить EFI» в разделе «Материнская плата» для вашей виртуальной машины.
Если бы эта проблема возникла для установки Gnome Ubuntu 12.04.2 amd64bit.
Обнаружил это после того, как пришлось изменить настройки аппаратного ускорения. У меня остался VT-x / AMD-V с включенным Nested Paging. Моя виртуальная машина имеет 2 процессора, 8 ГБ ОЗУ для справки.
После отмены проверки проблема полностью обходит Gnome Ubuntu не загружается. Запуск Virtual Box 4.3.18 r96516 на 64-битном хосте Windows 7.
Этот метод более прост, чем редактирование метода startup.nsh , но он не будет автоматически обновляться, и вы не сможете использовать символическую ссылку, потому что это раздел FAT32.
Георгий Гзиришвили
1
Я мог бы решить эту проблему, изменив устройство cdrom в virtualbox с IDE на SATA. Я удалил стандартное сопоставление виртуального диска CDROM в конфигурации устройства.
Просто добавьте устройство cdrom в существующий контроллер SATA, который будет использоваться для вашего установочного носителя.
Я недавно столкнулся с этой проблемой. Пожалуйста, проверьте настройки вашей виртуальной ОС. Щелкните правой кнопкой мыши на виртуальной ОС-> Система-> Расширенные функции-> Включить EFI (снимите этот флажок).
Используя Ubuntu 16.04.4 с включенной EFI и при запуске виртуальной машины я обнаружил, что она не загружается и просто остается в интерактивной оболочке EFI.
Вот как я исправил загрузку:
Во-первых, я обнаружил, что grubx64.efi находится в BLK2, поэтому для однократной загрузки я просто набрал в интерактивной оболочке следующее:
BLK2:/EFI/ubuntu/grubx64.efi
И альт, Ubuntu работает и работает.
Я приказываю навсегда решить эту проблему, и как только система заработает, я отобразил следующую строку в /boot/efi/startup.nsh.
efibootmgr
или автоматически путем переустановки grub), чтобы он сразу же снова загрузил Ubuntu.efibootmgr
, теряются после завершения работы (хотя они остаются при перезагрузке).Ответы:
Я столкнулся с той же проблемой и обнаружил, что если я выполню следующую команду в интерактивной оболочке, виртуальная машина загрузится в Ubuntu:
(Используйте обратную косую черту, прямая косая черта не работает. Команды в интерактивной оболочке UEFI не чувствительны к регистру.)
Моя версия VirtualBox - 4.3.20 r96997, версия Ubuntu - 14.10 AMD64. Я не знаю, почему это происходит и как это решить. Просто нашел это не элегантно и все еще немного хлопотно.
Обновление 1:
Я прочитал это , отследил до сообщения об ошибке и нашел лучший обходной путь .
Обновление 2:
Обходной путь в обновлении 1 не удалось. Я выключил виртуальную машину, запустил ее. И он снова загрузился в интерактивную оболочку UEFI. Согласно этому , проблема, вероятно, была вызвана ошибкой VirtualBox. Я все еще ищу дальнейшее решение этого.
Обновление 3:
Наконец-то нашел решение. В соответствии с этим вам необходимо вручную создать скрипт startup.nsh. Кроме метода в упомянутом посте, вы также можете сделать это:
источник
\EFI\boot\bootx64.efi
звучит для меня как лучшее решение, чем тратит 5 soconds на запуск startup.nsh. , Примечание: Вы можете нажать F12 во время загрузки или войтиexit
в оболочку EFI, чтобы получить доступ к настройкам прошивки и изменить все виды вещей, включая разрешение терминала, но эти изменения не сохраняются постоянно.refind
исправление EFIedit startup.nsh
. +1 Он ищет\EFI\boot\bootx64.efi
пропустить 5сек.\EFI\ubuntu\shimx64.efi
в\EFI\boot\bootx64.efi
лучшее. кредитУ меня была та же самая проблема (с включенным EFI, потому что я не мог заставить его работать иначе). Странный; хотя установка Ubuntu 14.04.2 не вызвала ошибок, установка Kubuntu 15.04 не была завершена. Он застыл в самом конце, когда его попросили снять DVD. После сброса загрузился нормально, но после выключения поднял оболочку.
Итак, чтобы избежать типа оболочки:
и в открывшемся окне добавьте эти 2 строки:
нажмите Ctrl+ sи, Enterчтобы сохранить и Ctrl+, qчтобы выйти. Затем перезапустите ВМ.
Кроме того, вы всегда можете использовать эти 2 строки для выхода из оболочки и загрузки ОС. Но при втором перезапуске вы снова попадете в оболочку и не сможете ее редактировать
startup.nsh
.источник
ls
оболочку UEFI. Напримерls FS0:\EFI
,ls FS0:\EFI\redhat
чтобы узнать путьFS0:\EFI\redhat\grub.efi
к CentOS.FS0:\EFI\Slackware\elilo.efi
.Другой вариант - снять флажок «Расширенные функции» под названием «Включить EFI» в разделе «Материнская плата» для вашей виртуальной машины.
Если бы эта проблема возникла для установки Gnome Ubuntu 12.04.2 amd64bit.
Обнаружил это после того, как пришлось изменить настройки аппаратного ускорения. У меня остался VT-x / AMD-V с включенным Nested Paging. Моя виртуальная машина имеет 2 процессора, 8 ГБ ОЗУ для справки.
После отмены проверки проблема полностью обходит Gnome Ubuntu не загружается. Запуск Virtual Box 4.3.18 r96516 на 64-битном хосте Windows 7.
источник
Скопируйте
grubx64.efi
в/EFI/boot/bootx64.EFI
VirtualBox и используйте его
bootx64.efi
для загрузки.Ссылка: Archlinux Virtualbox вики
источник
Я мог бы решить эту проблему, изменив устройство cdrom в virtualbox с IDE на SATA. Я удалил стандартное сопоставление виртуального диска CDROM в конфигурации устройства.
Просто добавьте устройство cdrom в существующий контроллер SATA, который будет использоваться для вашего установочного носителя.
Et вуаля, больше никаких проблем с EFI.
источник
Я недавно столкнулся с этой проблемой. Пожалуйста, проверьте настройки вашей виртуальной ОС. Щелкните правой кнопкой мыши на виртуальной ОС-> Система-> Расширенные функции-> Включить EFI (снимите этот флажок).
источник
для этого вам нужно написать это следующим образом:
это то, как я заставил это работать, если ты пишешь это любым другим способом, это не будет работать.
источник
Еще одна работа вокруг:
В оболочке uefi временно загрузитесь в Ubuntu, используя:
Затем внутри ubuntu отредактируйте файл startup.nsh, как показано ниже:
Откройте терминал Ctrl+ Alt+ T.
Тип:
Введите свой пароль.
Теперь удалите все, что есть, с помощью клавиши Del или Backspace.
Затем введите это точно: (
FS0
- это цифра0
, а не алфавитO
)Теперь нажмите Ctrl+ O(это алфавит O).
Затем Alt+ D(чтобы изменить текст в формат msdos).
Затем нажмите
Enter
.Тогда Ctrl+ X.
Теперь перезагрузите компьютер.
Теперь все должно быть хорошо.
источник
Используя Ubuntu 16.04.4 с включенной EFI и при запуске виртуальной машины я обнаружил, что она не загружается и просто остается в интерактивной оболочке EFI.
Вот как я исправил загрузку:
Во-первых, я обнаружил, что grubx64.efi находится в BLK2, поэтому для однократной загрузки я просто набрал в интерактивной оболочке следующее:
И альт, Ubuntu работает и работает.
Я приказываю навсегда решить эту проблему, и как только система заработает, я отобразил следующую строку в /boot/efi/startup.nsh.
Вот и все, система загрузится правильно.
источник
После установки Kubuntu15.10 в VirtualBox5 с UEFI перезагрузка виртуальной машины завершается неудачно.
Добавление строки
в UEFI-Shell не помогает.И решение с созданием нового файла startup.nsh в Kubuntu15.10 в среде chroot с
не дает также никаких улучшений.Я нашел решение:
Проблема заключалась в том, что каталог / boot / efi / EFI / ubuntu с файлом grubx64.efi не существует.
После загрузки Live-CD и перехода в среду chroot я установил отсутствующие пакеты и создал необходимую запись NVRAM с помощью:
источник
Для определения или изменения загрузочного каталога EFI необходимо сначала запустить эту команду. Это решило мою проблему.
ПРИМЕЧАНИЕ:
/dev/sda
это системный жесткий диск.источник