VirtualBox mem-boot hanya dalam UEFI Interactive shell
49
Saya menginstal Ubuntu 14.10 di VirtualBox dengan UEFI. Tapi sekarang saya telah reboot OS ini dan sekarang boot ke UEFI Interactive Shell v2.0. Bagaimana saya bisa boot secara normal ke Grub lagi?
Berita baik semua orang, dengan VirtualBox 5.1 solusi tidak diperlukan lagi. Anda mungkin harus menambahkan entri EFI baru (menggunakan manual efibootmgratau secara otomatis dengan menginstal ulang grub) sehingga boot Ubuntu segera.
phk
2
Bahkan dengan 5.1, perubahan pada variabel efi, seperti pengaturan boot yang diperlukan efibootmgrhilang setelah shutdown (mereka tetap di reboot).
chappjc
1
5.1.30 itu masih ada. Meskipun perbaikannya mudah, tetapi saya harus memperbaiki setiap kali setelah menginstal debian & ubuntu.
CallMeLaNN
Jawaban:
52
Saya mengalami masalah yang sama dan menemukan bahwa jika saya mengeluarkan perintah berikut dalam shell interaktif, mesin virtual akan boot ke Ubuntu:
fs0:\efi\ubuntu\grubx64.efi
(Gunakan backslash, forward slash tidak berfungsi. Perintah di shell interaktif UEFI tidak sensitif huruf.)
Versi VirtualBox saya adalah 4.3.20 r96997, versi Ubuntu adalah 14.10 AMD64. Saya tidak tahu mengapa ini terjadi dan bagaimana menyelesaikannya. Hanya menemukan ini tidak elegan dan masih sedikit merepotkan.
Penyelesaian dalam Pembaruan 1 gagal. Saya mematikan mesin virtual, meluncurkannya. Dan itu boot ke shell UEFI Interactive lagi. Menurut ini , masalah itu mungkin disebabkan oleh bug VirtualBox. Saya masih mencari solusi lebih lanjut untuk ini.
Pembaruan 3:
Akhirnya ditemukan solusinya. Menurut ini , Anda perlu membuat skrip startup.nsh secara manual. Kecuali untuk metode dalam posting yang disebutkan, Anda juga dapat melakukan ini:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
"Saat ini tidak mungkin untuk memanipulasi variabel EFI dari dalam tamu yang sedang berjalan" Solusi dalam pembaruan kedua Anda untuk memindahkan bootloader apa pun yang ingin Anda gunakan pada ESP agar\EFI\boot\bootx64.efiterdengar seperti solusi yang lebih baik bagi saya daripada membuang 5 socond yang digunakan untuk startup.nsh . Catatan: Anda dapat menekan F12 saat boot atau masukexitke shell EFI untuk mengakses pengaturan firmware dan memodifikasi semua hal, termasuk resolusi terminal, tetapi modifikasi ini tidak disimpan secara permanen.
LiveWireBT
Setelah mengeluarkan perintah dalam shell interaktif, Anda dapat menginstal refinduntuk memperbaiki EFI
Eduardo
1
Senang mengetahui bahwa itu adalah bug. Cukup edit startup.nsh. +1 \EFI\boot\bootx64.efiSedang mencari untuk melewati 5sec.
CallMeLaNN
1
Salin dan ganti nama \EFI\ubuntu\shimx64.efimenjadi \EFI\boot\bootx64.efiyang terbaik. kredit
CallMeLaNN
Pembaruan 3 melakukannya untuk saya ....
cljk
32
Saya memiliki masalah yang sama (dengan EFI diaktifkan karena saya tidak bisa menjalankannya sebaliknya). Aneh; Meskipun instalasi Ubuntu 14.04.2 tidak mendapatkan kesalahan, menginstal Kubuntu 15.04 gagal diselesaikan. Itu membeku di bagian paling akhir ketika diminta untuk menghapus DVD. Setelah reset, itu boot baik-baik saja tetapi setelah dimatikan itu membawa shell.
Jadi, untuk menghindari jenis shell:
fs0:
edit startup.nsh
dan pada jendela yang terbuka tambahkan 2 baris ini:
FS0:
\ EFI \ ubuntu \ grubx64.efi
tekan Ctrl+ sdan Enteruntuk menyimpan dan Ctrl+ quntuk keluar. Kemudian restart VM.
Atau, Anda selalu dapat menggunakan 2 baris ini untuk keluar dari shell dan boot OS. Tetapi kedua kali Anda me-restart Anda akan di shell lagi dan untuk menghindari mengedit startup.nsh.
Mengetik perintah tidak bekerja tetapi masalahnya adalah bahwa pada restart berikutnya lagi pergi ke shell itu dan file startup.nsh tampaknya tidak disimpan.
Igor Čordaš
Untuk menyimpan file startup.nsh Anda perlu menggunakan Ctrl + S untuk menyimpan dan tekan Enter untuk menulis ke file.
Willoczy
2
Jika Anda tidak menggunakan Ubuntu, Anda bisa mengetahui jalur yang benar untuk mesin Anda gunakan lsdi shell UEFI. Misalnya ls FS0:\EFI, ls FS0:\EFI\redhatuntuk mengetahui path ada FS0:\EFI\redhat\grub.efidi CentOS.
ntc2
1
@ ntc2 Terima kasih, itulah yang saya cari! Untuk instalasi Slackware saya FS0:\EFI\Slackware\elilo.efi.
fabiomaia
11
Opsi lain adalah untuk tidak mencentang opsi Fitur yang diperluas yang disebut 'Aktifkan EFI' di bawah 'Motherboard' untuk VM Anda.
Apakah masalah ini muncul untuk instalasi Gnome Ubuntu 12.04.2 amd64bit.
Menemukan ini setelah harus mengubah pengaturan untuk akselerasi perangkat keras. Saya memiliki VT-x / AMD-V, Nested Paging diaktifkan. VM saya memiliki 2 CPU, 8GB RAM untuk referensi.
Setelah tidak memeriksa masalah, Gnome Ubuntu benar-benar lolos tanpa ada masalah. Menjalankan Virtual Box 4.3.18 r96516 pada Windows 7 64-bit Host.
Yang ini lebih mulus daripada mengedit metode startup.nsh , tetapi memang itu tidak akan diperbarui secara otomatis dan Anda tidak dapat menggunakan symlink karena itu adalah partisi FAT32.
Giorgi Gzirishvili
1
Saya bisa mengatasi masalah ini dengan mengubah perangkat cdrom dalam virtualbox dari IDE ke SATA. Saya menghapus pemetaan standar drive cdrom virtual dalam konfigurasi perangkat.
Cukup tambahkan perangkat cdrom ke SATA Controller yang ada yang akan digunakan untuk media instalasi Anda.
Et voila, tidak ada masalah lebih lanjut dengan EFI.
Saya baru-baru ini mengalami masalah ini. Silakan periksa pengaturan OS virtual Anda. Klik kanan pada virtual os-> system-> Extended features-> Enable EFI (hapus centang ini).
Menggunakan Ubuntu 16.04.4 dengan EFI diaktifkan dan ketika memulai mesin virtual saya menemukan bahwa itu tidak akan boot dan hanya tinggal di shell interaktif EFI.
Inilah cara saya memperbaiki boot:
Pertama, saya menemukan bahwa grubx64.efi terletak di BLK2, jadi untuk satu kali boot saya baru saja mengetik yang berikut di shell interaktif:
BLK2:/EFI/ubuntu/grubx64.efi
Dan viola, Ubuntu sudah aktif.
Saya memesan untuk memperbaiki masalah ini secara permanen, setelah sistem dinyalakan, saya menggemakan baris berikut ke /boot/efi/startup.nsh.
efibootmgr
atau secara otomatis dengan menginstal ulang grub) sehingga boot Ubuntu segera.efibootmgr
hilang setelah shutdown (mereka tetap di reboot).Jawaban:
Saya mengalami masalah yang sama dan menemukan bahwa jika saya mengeluarkan perintah berikut dalam shell interaktif, mesin virtual akan boot ke Ubuntu:
(Gunakan backslash, forward slash tidak berfungsi. Perintah di shell interaktif UEFI tidak sensitif huruf.)
Versi VirtualBox saya adalah 4.3.20 r96997, versi Ubuntu adalah 14.10 AMD64. Saya tidak tahu mengapa ini terjadi dan bagaimana menyelesaikannya. Hanya menemukan ini tidak elegan dan masih sedikit merepotkan.
Pembaruan 1:
Saya membaca ini , melacak laporan bug dan menemukan solusi yang lebih baik .
Pembaruan 2:
Penyelesaian dalam Pembaruan 1 gagal. Saya mematikan mesin virtual, meluncurkannya. Dan itu boot ke shell UEFI Interactive lagi. Menurut ini , masalah itu mungkin disebabkan oleh bug VirtualBox. Saya masih mencari solusi lebih lanjut untuk ini.
Pembaruan 3:
Akhirnya ditemukan solusinya. Menurut ini , Anda perlu membuat skrip startup.nsh secara manual. Kecuali untuk metode dalam posting yang disebutkan, Anda juga dapat melakukan ini:
sumber
\EFI\boot\bootx64.efi
terdengar seperti solusi yang lebih baik bagi saya daripada membuang 5 socond yang digunakan untuk startup.nsh . Catatan: Anda dapat menekan F12 saat boot atau masukexit
ke shell EFI untuk mengakses pengaturan firmware dan memodifikasi semua hal, termasuk resolusi terminal, tetapi modifikasi ini tidak disimpan secara permanen.refind
untuk memperbaiki EFIedit startup.nsh
. +1\EFI\boot\bootx64.efi
Sedang mencari untuk melewati 5sec.\EFI\ubuntu\shimx64.efi
menjadi\EFI\boot\bootx64.efi
yang terbaik. kreditSaya memiliki masalah yang sama (dengan EFI diaktifkan karena saya tidak bisa menjalankannya sebaliknya). Aneh; Meskipun instalasi Ubuntu 14.04.2 tidak mendapatkan kesalahan, menginstal Kubuntu 15.04 gagal diselesaikan. Itu membeku di bagian paling akhir ketika diminta untuk menghapus DVD. Setelah reset, itu boot baik-baik saja tetapi setelah dimatikan itu membawa shell.
Jadi, untuk menghindari jenis shell:
dan pada jendela yang terbuka tambahkan 2 baris ini:
tekan Ctrl+ sdan Enteruntuk menyimpan dan Ctrl+ quntuk keluar. Kemudian restart VM.
Atau, Anda selalu dapat menggunakan 2 baris ini untuk keluar dari shell dan boot OS. Tetapi kedua kali Anda me-restart Anda akan di shell lagi dan untuk menghindari mengedit
startup.nsh
.sumber
ls
di shell UEFI. Misalnyals FS0:\EFI
,ls FS0:\EFI\redhat
untuk mengetahui path adaFS0:\EFI\redhat\grub.efi
di CentOS.FS0:\EFI\Slackware\elilo.efi
.Opsi lain adalah untuk tidak mencentang opsi Fitur yang diperluas yang disebut 'Aktifkan EFI' di bawah 'Motherboard' untuk VM Anda.
Apakah masalah ini muncul untuk instalasi Gnome Ubuntu 12.04.2 amd64bit.
Menemukan ini setelah harus mengubah pengaturan untuk akselerasi perangkat keras. Saya memiliki VT-x / AMD-V, Nested Paging diaktifkan. VM saya memiliki 2 CPU, 8GB RAM untuk referensi.
Setelah tidak memeriksa masalah, Gnome Ubuntu benar-benar lolos tanpa ada masalah. Menjalankan Virtual Box 4.3.18 r96516 pada Windows 7 64-bit Host.
sumber
Salin
grubx64.efi
ke/EFI/boot/bootx64.EFI
VirtualBox gunakan itu
bootx64.efi
untuk boot.Ref .: Archlinux Virtualbox wiki
sumber
Saya bisa mengatasi masalah ini dengan mengubah perangkat cdrom dalam virtualbox dari IDE ke SATA. Saya menghapus pemetaan standar drive cdrom virtual dalam konfigurasi perangkat.
Cukup tambahkan perangkat cdrom ke SATA Controller yang ada yang akan digunakan untuk media instalasi Anda.
Et voila, tidak ada masalah lebih lanjut dengan EFI.
sumber
Saya baru-baru ini mengalami masalah ini. Silakan periksa pengaturan OS virtual Anda. Klik kanan pada virtual os-> system-> Extended features-> Enable EFI (hapus centang ini).
sumber
untuk ini, Anda perlu menulis seperti berikut:
ini adalah bagaimana saya membuatnya bekerja jika Anda menulisnya dengan cara lain itu tidak akan berhasil.
sumber
Pekerjaan lain di sekitar:
Di shell uefi, boot sementara ke ubuntu menggunakan:
Kemudian, di dalam ubuntu, edit file startup.nsh seperti di bawah ini:
Buka terminal Ctrl+ Alt+ T.
Tipe:
Masukkan kata sandi Anda.
Sekarang hapus semua yang ada di sana menggunakan tombol del atau backspace.
Kemudian ketikkan ini persis: (
FS0
- yaitu angka0
, bukan alfabetO
)Sekarang tekan Ctrl+ O(Itu alfabet O).
Kemudian, Alt+ D(Untuk mengubah teks ke format msdos).
Lalu tekan
Enter
.Kemudian Ctrl+ X.
Sekarang reboot.
Semuanya harus baik-baik saja sekarang.
sumber
Menggunakan Ubuntu 16.04.4 dengan EFI diaktifkan dan ketika memulai mesin virtual saya menemukan bahwa itu tidak akan boot dan hanya tinggal di shell interaktif EFI.
Inilah cara saya memperbaiki boot:
Pertama, saya menemukan bahwa grubx64.efi terletak di BLK2, jadi untuk satu kali boot saya baru saja mengetik yang berikut di shell interaktif:
Dan viola, Ubuntu sudah aktif.
Saya memesan untuk memperbaiki masalah ini secara permanen, setelah sistem dinyalakan, saya menggemakan baris berikut ke /boot/efi/startup.nsh.
Itu saja, sistem akan boot dengan benar.
sumber
Setelah menginstal Kubuntu15.10 di VirtualBox5 dengan UEFI, reboot VM gagal.
Menambahkan garis
di UEFI-Shell tidak membantu.Dan solusinya dengan membuat file startup.nsh baru di Kubuntu15.10 di lingkungan chroot bersama
memberi juga tidak ada perbaikan.Saya menemukan solusinya:
Masalahnya adalah, bahwa direktori / boot / efi / EFI / ubuntu dengan file grubx64.efi tidak ada.
Setelah mem-boot Live-CD dan mengubah ke lingkungan chroot, saya menginstal paket yang hilang dan membuat entri NVRAM yang diperlukan dengan:
sumber
Untuk mendefinisikan atau mengubah direktori boot efi perlu terlebih dahulu menjalankan perintah ini. Ini menyelesaikan masalah saya.
CATATAN:
/dev/sda
adalah hard disk sistem.sumber