UEFIでVirtualBoxにUbuntu 14.10をインストールしました。しかし、このOSを再起動し、UEFI Interactive Shell v2.0で起動します。 Grubを通常どおり再起動するにはどうすればよいですか?
同じ問題が発生し、インタラクティブシェルで次のコマンドを発行すると、仮想マシンが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"
私は同じ問題を抱えていました(そうでなければ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
を編集します。
別のオプションは、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を実行します。
grubx64.efi
を/EFI/boot/bootx64.EFI
にコピーします
VirtualBoxはそのbootx64.efi
を使用して起動します。
Ref .: Archlinux Virtualbox wiki
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
それだけです、システムは正しく起動します。
そのためには、次のように記述する必要があります。
fs0:
cd EFI
cd ubuntu
grubx64
これは、それが機能しない他の方法で書いた場合に機能する方法です。
別の回避策:
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
これですべてが正常になります。
Virtualbox内のcdromデバイスをIDEからSATAに変更することで、この問題を解決できました。デバイス構成内の仮想CD-ROMドライブの標準マッピングを削除しました。
インストールメディアに使用する既存のSATAコントローラーにcdromデバイスを追加するだけです。
出来上がり、EFIにこれ以上の問題はありません。
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
Efiブートディレクトリを定義または変更するには、最初にこのコマンドを実行する必要があります。これで私の問題は解決しました。
Sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/
注:/dev/sda
はシステムのハードディスクです。