systemd-bootを使用したトリプルブート:WindowsブートマネージャなしでWindows 10と11を直接ブートする方法は?

systemd-bootを使用したトリプルブート:WindowsブートマネージャなしでWindows 10と11を直接ブートする方法は?

最近、Arch Linuxに加えて、自宅のPCにWindows 11をインストールしましたが、妻がテストが終了するまで切り替える準備ができていないため、一度Windows 10をそのままにしてブート状況が非常に複雑になりました。

  1. 起動時に手動で選択されたエントリがない場合、systemd Boot Managerは3秒間待ちます(Windows 10の場合はデフォルト)。 Arch Linuxを選択するとすべてが正常で起動しますが、Windowsを選択すると次のようになります。
  2. Windows 11を起動してからWindows 10と11を表示しますが、Arch Linux(それ以外の場合はデフォルトで機能します)を表示するWindowsブートマネージャを表示し、30秒待ってから最後に起動したエントリを起動します。 Windows 11を選択するとWindows 11が起動しますが、Windows 10を選択すると次のようになります。
  3. 再起動し、システム起動マネージャが再表示されます。これでWindows 10を選択すると、ようやく起動します。

私の目標は、システム起動メニューに次の3つの項目のみを含めることです。どうすればこれを達成できますか?

  1. アーキテクチャLinux
  2. Windows 10(デフォルト)
  3. Windows 11

Windowsオプションを選択するとすぐに実行されます。/boot/efi/Microsoft/Bootフォルダを見回したが、.efiファイルbootmgfw.efibootmgr.efi

$bootctl リスト

Boot Loader Entries:
        title: Arch Linux
           id: arch.conf
       source: /boot/loader/entries/arch.conf
        linux: /vmlinuz-linux-ck-skylake
       initrd: /intel-ucode.img
               /initramfs-linux-ck-skylake.img
      options: root=/dev/nvme0n1p5 rw nvidia-drm.modeset=1 systemd.unified_cgroup_hierarchy=false

        title: MemTest86
           id: memtest86-efi.conf
       source: /boot/loader/entries/memtest86-efi.conf

        title: Windows 10 (default)
           id: windows.conf
       source: /boot/loader/entries/windows.conf

        title: Windows Boot Manager
           id: auto-windows
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

        title: Reboot Into Firmware Interface
           id: auto-reboot-to-firmware-setup
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

/boot/loader/loader.conf

timeout 3
console-mode max
default windows.conf

/boot/loader/entries/windows.conf

title   Windows 10
efi /EFI/Microsoft/Boot/bootmgfw.efi 

答え1

編集する:アイデア - グラップを非表示にして特定のキーを押すとアクティブになります

より多くのオプションを提供するwhichのgrub2代わりにwhichを使用することをお勧めします。この回避策は、長押しするまで「linux」ブートマネージャ()systemd-bootを表示しません(どちらかを適切に試す必要があります)。grub2ESCF4SHIFT

以下で、以下を構成します/etc/default/grub

GRUB_TIMEOUT=3(デフォルトオプションが選択されるまでの時間(秒))

GRUB_TIMEOUT_STYLE=hidden

「GRUB_TIMEOUT_STYLE」

このオプションが設定されていない場合、または「menu」に設定されている場合、GRUBはメニューを表示してから、基本項目を開始する前に「GRUB_TIMEOUT」に設定されたタイムアウトが期限切れになるまで待ちます。キーを押すとタイムアウトが中断されます。

このオプションがCountdownまたはHiddenに設定されている場合、GRUBはメニューを表示する前にGRUB_TIMEOUTに設定されたタイムアウトが期限切れになるのを待ちます。このときESCまたはF4を押すかSHIFTを押すとメニューが表示され、入力を待ちます。メニュー項目に関連するショートカットキーを押すと、関連するメニュー項目がすぐに実行されます。これらの条件のいずれかが発生する前にタイムアウトが期限切れになると、デフォルト項目が開始されます。 「カウントダウン」の場合、残り時間を示す線が表示されます。

時には、オプションが正しく機能するためには、/etc/grub.d/30_os_proberオプションを編集して変更する必要があることがわかりました。quick_boot="1"quick_boot="0"

update-grub最後に設定を更新するには実行する必要があります。

関連情報