web-dev-qa-db-ja.com

uefiブートがubuntuを表示しない/ GRUB

私はエイサー熱望e 14。

それは7つのパーティションを持つ単一のHDDを持っています:

  • / dev/sda1上のEFIシステム
  • / dev/sda2で「Microsoft Reserved」と記載されているもの
  • Windows 10 FS/dev/sda3上
  • Linux FS on/dev/sda5
  • / dev/sda6でスワップ
  • / dev/sda4上のMicrosoft Windowsリカバリマネージャ
  • / dev/sdaの空き容量

さて、Windows 10とlinux(lubuntu)の両方がUEFIモードでインストールされていることは確かですが、優先されるブートオプションとしてubuntuまたはgrubを選択するためのブート順のエントリはありません。

起動時に何もしなければ、何も尋ねずに自動的にWindows 10で起動します。

Ubuntuから起動したい場合は、次のトリックを実行する必要があります。

  1. 起動可能なUSBスティックを挿入する(GRUBを使用)
  2. コンピューターが起動したら、USBスティックのgrubを使用して、ライブバージョンのOSをUSBで試すか、インストールするかを選択できます。Escapeキーを押すだけです。
  3. これにより、「exit」と入力するだけのコンソールが表示されます。
  4. 次の画面はUEFIブートの選択のようで、USB、「不明なデバイス」、またはWindows 10ブートマネージャーのいずれからブートするかを選択できます。 USBを選択した場合は、手順2の画面に戻ります。最後を選択した場合は、Windows 10を起動し、「不明なデバイス」を選択した場合は、コンピューターにインストールされているgrubの画面が表示されます。 lubuntuまたはWindowsのどちらを起動するかを選択します。

この問題を解決する方法について私は本当にわからないので、どんな提案やアドバイスも大歓迎です。

(編集)私が試したものの中には次のものがあります:

  • "efibootmgr -v"は、同じファイル(\ EFI\ubuntu\shimx64.efi)の2つのエントリを表示します。1つはubuntu、もう1つは「不明なデバイス」で、最後の1つはRCで説明を終了します。私は--bootorderをWindowsブートマネージャーの前に両方に一致するように変更しようとしましたが、効果はありません。再起動すると、Windowsにブートします。Linuxに戻るときに、ブート順序が以前の順序と異なります。
  • SmallLoanOf1Mによって提案されたようにgrubをredbuildしてみましたが、同じ結果になりましたが、奇妙なことに、私のLinuxには/ boot/efiフォルダがあります。しかし、EFIシステム(/ dev/sda1)をマウントしてGRUBを再構築すると、「EFI」フォルダー(キャップ​​に注意)が存在することがわかりました。もしそうなら、何も台無しにせずにこれをどのように解決すべきですか?
4
Ignasi

「efibootmgr」を探しています。このプログラムは、EFIモードで起動したGNU/Linuxシステムで使用できます(そのためには、ライブディスクなどを使用してください)。

いくつかのスイッチがあり、一般的には非常に簡単です。 EFIブートエントリを作成し、既存のエントリを表示しようとしています。

「efibootmgr -v」で既存のブートエントリを表示できます。これは、EFIエントリの欠如、またはおそらく不正なEFIエントリのいずれかを明らかにします。

すでにエントリがある場合、または何もない場合は、GRUBshouldを再構築してefibootmgrを呼び出し、エントリを作成します。これが最も簡単なアクションコースです。これは、既にインストールされているシステムのchroot内で行う必要があります(ライブシステムを使用しているもう1つの理由です)。設定方法がわからない場合は、 chroot環境、このガイドを参照してください: https://help.ubuntu.com/community/BasicChroot

その後、GRUBパッケージを再インストールします。

Sudo apt-get install --reinstall grub-efi

それが完了したら、GRUBをもう一度ディスクに貼り付けます。

Sudo grub-install /dev/sda

GRUB configを再作成します(これによりefibootmgrも呼び出されるはずです):

Sudo update-grub

Linuxインストール用の/ boot/EFIにEFIブートイメージがあることを確認します。 WindowsとLinuxの両方のディレクトリを並べて、それぞれに.efiファイルを配置する必要があります。

最後に、efibootmgr -vを使用して、EFI NVRAMに適切なブートエントリがあることを確認します

それでもまだない場合は、/ boot/EFIにマウントされたFATファイルシステムに.efiファイルがあることを確認してから、自分で入力します。ここで私がここで説明するのは少し奇妙ですが、efibootmgrのmanページは非常に役立ちます: http://linux.die.net/man/8/efibootmgr

編集:EFIエントリを手動で作成する方法の詳細:

自動GRUBステップはあなたのケースでは役に立たなかったようですので、あなたのGRUBバイナリを指す完全に新しいEFIエントリを作成しましょう。これにはefibootmgrを使用します。

あなたが提供した情報のおかげで、私たちはコピー/ペースト機能であなたのために働くはずのコマンドを作ることができます。涼しい。これを始める前に、先に提案したように、EFIでブートされたライブシステムからネイティブシステムのchroot環境に移動します。また、EFIファイルシステムをchroot内の/ boot/efiにマウントします。

これは、1つのコマンド(状況に合わせて調整)で実行できます。

efibootmgr -c -l \\EFI\\ubuntu\\shimx64.efi -L UbuntuBoot

GRUBバイナリ(elilo.efiのデフォルトではなく)を指す)を指すセキュアブート(つまり、shimx64とは)EFIエントリには、 UbuntuBootの外観上の名前(他と区別するため)で、/ dev/sdaと/ dev/sda1をそれぞれディスクとパーティションの両方として使用します。これはefibootmgr -cのデフォルトなので、別の場所にEFIファイルシステムがある場合ディスクまたはパーティションでは、オプションを使用して明示的に指定する必要があります。円記号は、「リテラル」になるように円記号でエスケープする必要があります。

そのエントリを作成すると、efibootmgr -vを介して表示できるようになります。そこにある場合は、起動してみてください。起動できる場合は、おそらく古いものを削除する必要があります。

Windowsをインストールするときのこの種の問題は一般的ですが、ドライブの「リムーバブルディスクEFI領域」にEFIバイナリをインストールすることを選択した場合のみです。 1つのEFIエントリのみがそこに入る可能性があり、EFIブートを実行するためにWindowsが何を使用するかは、その領域です。通常、この領域は、他の方法で起動しないバギーEFIシステムでのみ使用されますが、何でも機能することが保証されています。

ただし、同じ領域に別のEFI対応OSをインストールすると、以前にインストールされたEFIバイナリが削除されます。ほとんどのLinuxディストリビューションをインストールするとき、通常、EFIの「リムーバブルメディアパス」にGRUBインストールを強制するかどうかを尋ねます。「いいえ」を選択すると、このシナリオは再び発生しません。ほぼすべての最新のEFIでリムーバブルメディアパスを使用する必要はありません。

4
Spooler

私も同じ問題を抱えていました。

BIOSでは、2つのWindowsブートマネージャーがリストされていました。後ろに数字のないものを優先的に移動して再起動すると、 GRUB=何らかの理由で)に入りました。BIOSに戻ったとき、最も優先度の高いWindowsブートマネージャーに名前がありませんでした。

これはすべて奇妙で、何が起こったのか理解できませんが、今はうまくいきます。投稿への返信は少し遅れますが、おそらく他の人の役に立ちます。

0
Emiel