web-dev-qa-db-ja.com

UEFIでgrubが読み込まれないのはなぜですか?

LinuxをPCで起動しようとして立ち往生しています。私はさまざまなラップトップでOpenSUSEとUbuntuを何度も試してきましたが、どれも機能しません。 _update-grub_を何回実行しても、実行されることはありません。

両方とも MS署名済みshims であるため、UEFIはそれらを適切にロードする必要がありますが、実際には_update-grub_または_grub2-install_の出力は、常にgrubが正常にインストールされたことを示します。

セキュアブートをオフにしてgrubを再度インストールしようとしましたが、まだ機能しません。私もオフにしました fastboot、fast startup、Intel SRT しかし、それも役に立ちません。

_boot-repair_を試しましたが、エラーが表示されることは一度もありません。出力ログには次のように記載されています。

コンピュータがWindowsで直接再起動する場合は、BIOSで起動順序を変更してみてください。

BIOSで起動順序の変更が許可されていない場合は、Windowsブートローダーのデフォルトの起動エントリを変更してください。

たとえば、Windowsを起動してから、管理コマンドプロンプトに次のコマンドを入力できます。

_bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
_

したがって、UEFI設定で起動順序を変更するオプションはありません。BIOSのようにデバイスの起動順序のみを変更し、最後のコマンドを実行する必要があります。

今は動作しますが、そのようなWindowsブートローダーからgrubをチェーンロードしたくありません。新しいPCでLinuxだけを実行し、仮想マシンでのみWindowsを実行したいので、grubを直接ロードしたい。これに対する解決策はありますか?

3
phuclv

Uefiシステムを使用している場合、技術的にはgrubはまったく必要ありません。

しかし、質問に答えるために、ファームウェアの起動時オプションから起動ターゲットを変更することさえできない場合、UEFIの実装は非常に制限されているように思われます。

efibootmgrを使用して、Linuxからこれらのオプションを編集できます。 grub efiを最初のターゲットとして設定するだけで、grubを適切に構成すれば、そこからすべてを処理できるはずです。

1
jiggunjer

不格好なAcerのUEFIで再び問題が発生しました。どういうわけか、efibootmgrを実行してブートアイテムを編集すると、変更を保存できません。再起動後、すべてがリセットされたため、Linuxを起動できません。私は見つけました この実用的な答え これはMicrosoftフォルダの名前を変更し、別のエントリを追加します

su -c 'cd /boot/efi/EFI && gzip /boot/efi/EFI/Microsoft'
su -c 'mkdir /boot/efi/EFI/1Microsoft && mkdir /boot/efi/EFI/1Microsoft/Boot && mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/1Microsoft/Boot/bootmgfw.efi'
su -c 'efibootmgr -c -w -L Win7 -d /dev/sda -p 1 -l '\EFI\1Microsoft\Boot\bootmgfw.efi' -b 6'

それは役に立ちます...私がWindowsを更新するまで。だから私は掘り下げて別の方法を見つけました。

スタートアッププレス中 F2 UEFIセットアップに入り、[セキュリティ]タブに切り替えます。そこに "実行するために信頼できるものとしてUEFIファイルを選択する"オプションが表示されます。押す enter その上で、使用するブートローダーのefiファイルを選択します。希望の名前を入力し、はいを押して確認すると、そのファイルがブートメニューに追加されます。これで、必要に応じて[ブート]タブに切り替えて順序を変更できます。または単に押す F12 起動時にそのメニューを起動する

Security tab

0
phuclv