VirtualBox uruchamia się tylko w powłoce interaktywnej UEFI
49
Zainstalowałem Ubuntu 14.10 w VirtualBox z UEFI. Ale teraz zrestartowałem ten system operacyjny i teraz uruchamia się w UEFI Interactive Shell v2.0. Jak mogę normalnie uruchomić ponownie Gruba?
Dobra wiadomość dla wszystkich, dzięki VirtualBox 5.1 obejścia nie są już potrzebne. Konieczne może być dodanie nowego wpisu EFI (ręcznie efibootmgrlub automatycznie przez ponowną instalację gruba), aby od razu uruchomił Ubuntu.
phk
2
Nawet w wersji 5.1 zmiany zmiennych efi, takie jak wymagane ustawienie rozruchu za pomocą, efibootmgrsą tracone po wyłączeniu (jednak pozostają one w trakcie ponownego uruchamiania).
chappjc
1
5.1.30 nadal istnieje. Chociaż poprawka jest łatwa, ale muszę ją naprawić za każdym razem po instalacji debian & ubuntu.
CallMeLaNN
Odpowiedzi:
52
Napotkałem ten sam problem i stwierdziłem, że jeśli wydam następujące polecenie w interaktywnej powłoce, maszyna wirtualna uruchomi się w Ubuntu:
fs0:\efi\ubuntu\grubx64.efi
(Użyj ukośnika odwrotnego, ukośnik nie działa. Polecenia w interaktywnej powłoce UEFI nie uwzględniają wielkości liter.)
Moja wersja VirtualBox to 4.3.20 r96997, wersja Ubuntu to 14.10 AMD64. Nie wiem, dlaczego tak się dzieje i jak to rozwiązać. Właśnie znalazłem to nie eleganckie i nadal trochę kłopotliwe obejście.
Obejście w aktualizacji 1 nie powiodło się. Wyłączyłem maszynę wirtualną, uruchomiłem ją. I ponownie uruchomił się w powłoce interaktywnej UEFI. Zgodnie z tym przyczyną problemu był prawdopodobnie błąd VirtualBox. Wciąż szukam dalszego rozwiązania tego problemu.
Aktualizacja 3:
W końcu znalazłem rozwiązanie. Zgodnie z tym musisz ręcznie utworzyć skrypt startup.nsh. Z wyjątkiem metody wymienionej we wpisie, możesz również to zrobić:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
„Obecnie nie jest możliwe manipulowanie zmiennymi EFI z poziomu działającego gościa” Rozwiązanie w drugiej aktualizacji\EFI\boot\bootx64.efipolegającena przeniesieniu dowolnego programu ładującego, którego chcesz użyć na ESP,brzmi dla mnie jak lepsze rozwiązanie niż marnowanie 5 soconds na start.nsh . Uwaga: Możesz nacisnąć klawisz F12 podczas rozruchu lub wejśćexitw powłokę EFI, aby uzyskać dostęp do ustawień oprogramowania układowego i modyfikować różne rzeczy, w tym rozdzielczość terminala, ale modyfikacje te nie są przechowywane na stałe.
LiveWireBT,
Po wydaniu polecenia w interaktywnej powłoce można zainstalować, refindaby naprawić EFI
Eduardo
1
Dobrze wiedzieć, że to błąd. Po prostu edit startup.nsh. +1 Szuka \EFI\boot\bootx64.efipominięcia 5 sekund.
CallMeLaNN
1
Kopiowanie i zmiana nazwy \EFI\ubuntu\shimx64.efina \EFI\boot\bootx64.efito najlepszy. kredyt
CallMeLaNN
Aktualizacja 3 zrobiła to dla mnie ....
cljk
32
Miałem ten sam problem (z włączonym EFI, ponieważ nie mogłem go uruchomić inaczej). Dziwne; mimo że instalacja Ubuntu 14.04.2 nie spowodowała błędu, instalacja Kubuntu 15.04 nie zakończyła się. Zatrzymał się na samym końcu, gdy został poproszony o usunięcie DVD. Po zresetowaniu uruchomił się dobrze, ale po wyłączeniu zasilania przywołał powłokę.
Aby uniknąć typu powłoki:
fs0:
edytuj startup.nsh
i w otwartym oknie dodaj te 2 linie:
FS0:
\ EFI \ ubuntu \ grubx64.efi
naciśnij Ctrl+ si, Enteraby zapisać i Ctrl+, qaby wyjść. Następnie uruchom ponownie maszynę wirtualną.
Alternatywnie, zawsze możesz użyć tych 2 linii, aby wyjść z powłoki i uruchomić system operacyjny. Ale po drugim uruchomieniu ponownie będziesz w powłoce i unikniesz jej edycji startup.nsh.
Wpisanie polecenia działa, ale problem polega na tym, że przy następnym uruchomieniu ponownie przechodzi do powłoki i pliku startup.nsh nie wydaje się zapisany.
Igor Čordaš
Aby zapisać plik startup.nsh, musisz użyć Ctrl + S, aby zapisać i nacisnąć Enter, aby zapisać do pliku.
Willoczy
2
Jeśli nie korzystasz z Ubuntu, możesz znaleźć właściwą ścieżkę dla swojego komputera, używając lspowłoki UEFI. Na przykład ls FS0:\EFI, a następnie ls FS0:\EFI\redhat, aby dowiedzieć się ścieżka jest FS0:\EFI\redhat\grub.efina CentOS.
ntc2
1
@ ntc2 Dzięki, właśnie tego szukałem! Tak było w przypadku mojej instalacji Slackware FS0:\EFI\Slackware\elilo.efi.
fabiomaia
11
Inną opcją jest odznaczenie opcji Rozszerzone funkcje o nazwie „Włącz EFI” w sekcji „Płyta główna” dla maszyny wirtualnej.
Czy ten problem pojawił się w przypadku instalacji Gnome Ubuntu 12.04.2 amd64bit.
Odkrył to po zmianie ustawień przyspieszenia sprzętowego. Pozostało mi włączenie VT-x / AMD-V z włączonym zagnieżdżaniem. Moja maszyna wirtualna ma 2 procesory, 8 GB pamięci RAM w celach informacyjnych.
Po usunięciu zaznaczenia problem został całkowicie pominięty. Gnome Ubuntu nie uruchamia się. Uruchamianie Virtual Box 4.3.18 r96516 na 64-bitowym hoście Windows 7.
Ten jest bardziej płynny niż edytowanie metody startup.nsh , ale w rzeczywistości nie zostanie automatycznie zaktualizowany i nie można również użyć dowiązania symbolicznego, ponieważ jest to partycja FAT32.
Giorgi Gzirishvili
1
Mógłbym rozwiązać ten problem, zmieniając urządzenie cdrom w virtualbox z IDE na SATA. Usunąłem standardowe mapowanie wirtualnego napędu cdrom w konfiguracji urządzenia.
Po prostu dodaj urządzenie cdrom do istniejącego kontrolera SATA, który będzie używany jako nośnik instalacyjny.
Ostatnio napotkałem ten problem. Sprawdź ustawienia swojego wirtualnego systemu operacyjnego. Kliknij prawym przyciskiem myszy wirtualny os-> system-> Funkcje rozszerzone-> Włącz EFI (odznacz to).
Używając Ubuntu 16.04.4 z włączonym EFI i podczas uruchamiania maszyny wirtualnej stwierdziłem, że nie uruchomi się ona i pozostanie w interaktywnej powłoce EFI.
Oto jak naprawiłem boot:
Najpierw odkryłem, że grubx64.efi znajduje się w BLK2, więc dla jednorazowego rozruchu po prostu wpisałem następujące w interaktywnej powłoce:
BLK2:/EFI/ubuntu/grubx64.efi
I viola, Ubuntu jest gotowe do pracy.
Rozkazuję na stałe naprawić ten problem. Po uruchomieniu systemu powtórzyłem następujący wiersz w pliku /boot/efi/startup.nsh.
efibootmgr
lub automatycznie przez ponowną instalację gruba), aby od razu uruchomił Ubuntu.efibootmgr
są tracone po wyłączeniu (jednak pozostają one w trakcie ponownego uruchamiania).Odpowiedzi:
Napotkałem ten sam problem i stwierdziłem, że jeśli wydam następujące polecenie w interaktywnej powłoce, maszyna wirtualna uruchomi się w Ubuntu:
(Użyj ukośnika odwrotnego, ukośnik nie działa. Polecenia w interaktywnej powłoce UEFI nie uwzględniają wielkości liter.)
Moja wersja VirtualBox to 4.3.20 r96997, wersja Ubuntu to 14.10 AMD64. Nie wiem, dlaczego tak się dzieje i jak to rozwiązać. Właśnie znalazłem to nie eleganckie i nadal trochę kłopotliwe obejście.
Aktualizacja 1:
Przeczytałem to , wyśledziłem raport o błędzie i znalazłem lepsze obejście .
Aktualizacja 2:
Obejście w aktualizacji 1 nie powiodło się. Wyłączyłem maszynę wirtualną, uruchomiłem ją. I ponownie uruchomił się w powłoce interaktywnej UEFI. Zgodnie z tym przyczyną problemu był prawdopodobnie błąd VirtualBox. Wciąż szukam dalszego rozwiązania tego problemu.
Aktualizacja 3:
W końcu znalazłem rozwiązanie. Zgodnie z tym musisz ręcznie utworzyć skrypt startup.nsh. Z wyjątkiem metody wymienionej we wpisie, możesz również to zrobić:
źródło
\EFI\boot\bootx64.efi
polegającena przeniesieniu dowolnego programu ładującego, którego chcesz użyć na ESP,brzmi dla mnie jak lepsze rozwiązanie niż marnowanie 5 soconds na start.nsh . Uwaga: Możesz nacisnąć klawisz F12 podczas rozruchu lub wejśćexit
w powłokę EFI, aby uzyskać dostęp do ustawień oprogramowania układowego i modyfikować różne rzeczy, w tym rozdzielczość terminala, ale modyfikacje te nie są przechowywane na stałe.refind
aby naprawić EFIedit startup.nsh
. +1 Szuka\EFI\boot\bootx64.efi
pominięcia 5 sekund.\EFI\ubuntu\shimx64.efi
na\EFI\boot\bootx64.efi
to najlepszy. kredytMiałem ten sam problem (z włączonym EFI, ponieważ nie mogłem go uruchomić inaczej). Dziwne; mimo że instalacja Ubuntu 14.04.2 nie spowodowała błędu, instalacja Kubuntu 15.04 nie zakończyła się. Zatrzymał się na samym końcu, gdy został poproszony o usunięcie DVD. Po zresetowaniu uruchomił się dobrze, ale po wyłączeniu zasilania przywołał powłokę.
Aby uniknąć typu powłoki:
i w otwartym oknie dodaj te 2 linie:
naciśnij Ctrl+ si, Enteraby zapisać i Ctrl+, qaby wyjść. Następnie uruchom ponownie maszynę wirtualną.
Alternatywnie, zawsze możesz użyć tych 2 linii, aby wyjść z powłoki i uruchomić system operacyjny. Ale po drugim uruchomieniu ponownie będziesz w powłoce i unikniesz jej edycji
startup.nsh
.źródło
ls
powłoki UEFI. Na przykładls FS0:\EFI
, a następniels FS0:\EFI\redhat
, aby dowiedzieć się ścieżka jestFS0:\EFI\redhat\grub.efi
na CentOS.FS0:\EFI\Slackware\elilo.efi
.Inną opcją jest odznaczenie opcji Rozszerzone funkcje o nazwie „Włącz EFI” w sekcji „Płyta główna” dla maszyny wirtualnej.
Czy ten problem pojawił się w przypadku instalacji Gnome Ubuntu 12.04.2 amd64bit.
Odkrył to po zmianie ustawień przyspieszenia sprzętowego. Pozostało mi włączenie VT-x / AMD-V z włączonym zagnieżdżaniem. Moja maszyna wirtualna ma 2 procesory, 8 GB pamięci RAM w celach informacyjnych.
Po usunięciu zaznaczenia problem został całkowicie pominięty. Gnome Ubuntu nie uruchamia się. Uruchamianie Virtual Box 4.3.18 r96516 na 64-bitowym hoście Windows 7.
źródło
Skopiuj
grubx64.efi
do/EFI/boot/bootx64.EFI
VirtualBox, użyj go
bootx64.efi
do uruchomienia.Ref .: Archlinux Virtualbox wiki
źródło
Mógłbym rozwiązać ten problem, zmieniając urządzenie cdrom w virtualbox z IDE na SATA. Usunąłem standardowe mapowanie wirtualnego napędu cdrom w konfiguracji urządzenia.
Po prostu dodaj urządzenie cdrom do istniejącego kontrolera SATA, który będzie używany jako nośnik instalacyjny.
Et voila, żadnych dalszych problemów z EFI.
źródło
Ostatnio napotkałem ten problem. Sprawdź ustawienia swojego wirtualnego systemu operacyjnego. Kliknij prawym przyciskiem myszy wirtualny os-> system-> Funkcje rozszerzone-> Włącz EFI (odznacz to).
źródło
w tym celu należy napisać w następujący sposób:
tak mam to do pracy, jeśli napiszesz to w inny sposób, to nie zadziała.
źródło
Kolejne obejście:
W powłoce uefi uruchom tymczasowo system Ubuntu, używając:
Następnie w Ubuntu edytuj plik startup.nsh jak poniżej:
Otwórz terminal Ctrl+ Alt+ T.
Rodzaj:
Wprowadź hasło.
Teraz usuń wszystko, co tam jest, używając klawisza Del lub Backspace.
Następnie wpisz dokładnie: (
FS0
- to cyfra0
, a nie alfabetO
)Teraz naciśnij Ctrl+ O(To jest alfabet O).
Następnie Alt+ D(aby zmienić tekst na format msdos).
Następnie naciśnij
Enter
.Następnie Ctrl+ X.
Teraz uruchom ponownie.
Teraz wszystko powinno być w porządku.
źródło
Używając Ubuntu 16.04.4 z włączonym EFI i podczas uruchamiania maszyny wirtualnej stwierdziłem, że nie uruchomi się ona i pozostanie w interaktywnej powłoce EFI.
Oto jak naprawiłem boot:
Najpierw odkryłem, że grubx64.efi znajduje się w BLK2, więc dla jednorazowego rozruchu po prostu wpisałem następujące w interaktywnej powłoce:
I viola, Ubuntu jest gotowe do pracy.
Rozkazuję na stałe naprawić ten problem. Po uruchomieniu systemu powtórzyłem następujący wiersz w pliku /boot/efi/startup.nsh.
To wszystko, system uruchomi się poprawnie.
źródło
Po zainstalowaniu Kubuntu15.10 w VirtualBox5 z UEFI ponowne uruchomienie maszyny wirtualnej kończy się niepowodzeniem.
Dodanie linii
w UEFI-Shell nie pomaga.I rozwiązanie z utworzeniem nowego pliku startup.nsh w Kubuntu15.10 w środowisku chroot z
nie daje też żadnej poprawy.Znalazłem rozwiązanie:
Problem polegał na tym, że katalog / boot / efi / EFI / ubuntu z plikiem grubx64.efi nie istnieje.
Po uruchomieniu Live-CD i przejściu do środowiska chroot zainstalowałem brakujące pakiety i utworzyłem potrzebny wpis NVRAM za pomocą:
źródło
W celu zdefiniowania lub zmiany katalogu rozruchowego efi należy najpierw uruchomić tę komendę. To rozwiązało mój problem.
UWAGA:
/dev/sda
systemowy dysk twardy.źródło