web-dev-qa-db-ja.com

VirtualBoxはUEFI Interactiveシェルでのみ起動します

UEFIでVirtualBoxにUbuntu 14.10をインストールしました。しかし、このOSを再起動し、UEFI Interactive Shell v2.0で起動します。 Grubを通常どおり再起動するにはどうすればよいですか?

49
Benjamin Stütz

同じ問題が発生し、インタラクティブシェルで次のコマンドを発行すると、仮想マシンがUbuntuで起動することがわかりました。

fs0:\efi\ubuntu\grubx64.efi

(バックスラッシュを使用すると、スラッシュは機能しません。UEFIインタラクティブシェルのコマンドは大文字と小文字を区別しません。)

私のVirtualBoxバージョンは4.3.20 r96997、Ubuntuバージョンは14.10 AMD64です。これがなぜ起こるのか、どうやって解決するのかはわかりません。これはエレガントではなく、まだ少し面倒な回避策であることがわかりました。

更新1:

this を読み、 バグレポート まで追跡し、 より良い回避策 を見つけました。

アップデート2:

Update 1の回避策は失敗しました。仮想マシンをオフにして起動しました。そして、再びUEFI Interactive Shellを起動しました。 this によると、問題はおそらくVirtualBoxのバグが原因でした。私はまだこれに対するさらなる解決策を探しています。

アップデート3:

最終的に解決策を見つけました。 this によると、startup.nshスクリプトを手動で作成する必要があります。上記の投稿のメソッドを除いて、これを行うこともできます:

$ Sudo mount /dev/sda1 /mnt
$ cd /mnt
$ Sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
52
Nairen Zheng

私は同じ問題を抱えていました(そうでなければEFIが有効になっているで実行できなかったため)。奇妙な; Ubuntu 14.04.2のインストールはエラーになりませんでしたが、Kubuntu 15.04のインストールは完了しませんでした。 DVDを削除するように求められたときに、最後にフリーズしました。リセット後は正常に起動しましたが、電源を切るとシェルが起動しました。

したがって、シェルタイプを回避するには:

fs0:
startup.nshを編集します

そして、開いたウィンドウに次の2行を追加します。

FS0:
\EFI\ubuntu\grubx64.efi

押す Ctrl + s そして Enter 保存して Ctrl + q やめるために。次に、VMを再起動します。

または、これらの2行を使用してシェルを終了し、OSを起動することもできます。ただし、2回目に再起動すると、シェルに戻り、回避するためにstartup.nshを編集します。

32
VRR

別のオプションは、VMの「マザーボード」の下にある「EFIを有効にする」という拡張機能オプションのチェックを外すことです。

この問題がGnome Ubuntu 12.04.2 AMD64bitインストールで発生した場合。

これは、ハードウェアアクセラレーションの設定を変更する必要がある後に発見されました。 VT-x/AMD-V、ネストされたページングを有効にしておくことにしました。 VMには2つのCPUがあり、参照用に8GB RAMがあります。

チェックを外すと、問題は完全に回避され、Gnome Ubuntuは問題なく起動します。 Windows 7 64ビットホストでVirtual Box 4.3.18 r96516を実行します。

11
robocop

grubx64.efi/EFI/boot/bootx64.EFIにコピーします
VirtualBoxはそのbootx64.efiを使用して起動します。
Ref .: Archlinux Virtualbox wiki

4
cylgalad

EFIを有効にしてUbuntu 16.04.4を使用すると、仮想マシンの起動中に起動せず、EFIインタラクティブシェルに留まることがわかりました。

これは私がブートを修正した方法です:

最初に、grubx64.efiがBLK2にあることがわかったので、1回限りの起動のために、対話型シェルで次のように入力しました。

BLK2:/EFI/ubuntu/grubx64.efi

そして、ヴィオラ、Ubuntuが稼働しています。

この問題を恒久的に修正するために、システムが起動したら、次の行を/boot/efi/startup.nshにエコーしました。

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

それだけです、システムは正しく起動します。

1
Yaron Morad

そのためには、次のように記述する必要があります。

fs0:
cd EFI
cd ubuntu
grubx64

これは、それが機能しない他の方法で書いた場合に機能する方法です。

1
Dan Duncker

別の回避策:

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

これですべてが正常になります。

1
Ddm

Virtualbox内のcdromデバイスをIDEからSATAに変更することで、この問題を解決できました。デバイス構成内の仮想CD-ROMドライブの標準マッピングを削除しました。

インストールメディアに使用する既存のSATAコントローラーにcdromデバイスを追加するだけです。

出来上がり、EFIにこれ以上の問題はありません。

1
Laurent

この問題に最近遭遇しました。仮想OSの設定を確認してください。仮想OS->システム->拡張機能-> EFIを有効化(これをチェック解除)を右クリックします。 enter image description here

1
Sudip7

UEFIを使用してVirtualBox5にKubuntu15.10をインストールすると、VMの再起動に失敗します。

行を追加する

FS0:\ EFI\ubuntu\grubx64.efi

そして、chroot環境でKubuntu15.10に新しいstartup.nshファイルを作成するソリューション

Sudo echo '\ EFI\ubuntu\grubx64.efi'> startup.nsh 

私は解決策を見つけました:

問題は、ファイルgrubx64.efiのあるディレクトリ/ boot/efi/EFI/ubuntuが存在しないことでした。

Live-CDを起動してchroot環境に変更した後、不足しているパケットをインストールし、次のように必要なNVRAMエントリを作成しました。

Sudo apt-get install grub-efi-AMD64-signed shim-signed 
 Sudo update-grub
0
sun312

Efiブートディレクトリを定義または変更するには、最初にこのコマンドを実行する必要があります。これで私の問題は解決しました。

Sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/

注:/dev/sdaはシステムのハードディスクです。

0
user945376