MENU

[Linux] Pop!_OS + Windows デュアルブート時にブートメニューが表示されない問題の解決法

目次

問題の状況

症状

  • Pop!_OS 22.04をデュアルブートでインストール後、起動時にいきなりLinuxが立ち上がる
  • Windowsを起動するためには毎回BIOS画面に入ってF2連打が必要
  • ブートメニュー画面が表示されない

ハードウェア環境

  • SSD1(Samsung 512GB): Windows 10/11システム領域(/dev/nvme0n1)
  • SSD2(PNY 2TB): Pop!_OS 22.04システム領域 + Windowsデータ領域(/dev/nvme1n1)
  • 構成: 各OSのシステム(ブート)領域が別々のSSDに分かれている
  • ブートローダー: systemd-boot(Pop!_OSのデフォルト)重要なポイント

原因の分析

なぜブートメニューが表示されないのか

  1. Pop!_OSはsystemd-bootを使用
    • 従来のGRUBとは異なる動作
    • デフォルトではタイムアウト設定なし
  2. 複数SSDによる複数EFIパーティション問題
    • SSD1のWindowsシステム: /dev/nvme0n1p1 (EFIパーティション)
    • SSD2のPop!_OSシステム: /dev/nvme1n1p1 (EFIパーティション)
    • 問題の核心: systemd-bootは同一EFIパーティション内のOSしか認識できない
    • 物理的に異なるSSDにあるWindowsのEFIパーティションにはアクセス不可

確認コマンド

パーティション構成の確認:

sudo fdisk -l

ブートローダーの状態確認:

sudo bootctl status

試したが効果がなかった方法

❌ systemd-bootのタイムアウト設定

# これらは機能しなかった
sudo bootctl set-timeout 5 
sudo nano /boot/efi/loader/loader.conf  # 別EFIパーティションのWindowsは認識されず

❌ 手動でWindowsエントリ作成

# windows.confを作成しても別EFIパーティションは参照できない
sudo nano /boot/efi/loader/entries/windows.conf

✅ 解決方法:rEFIndの導入

rEFIndとは

  • 複数のEFIパーティションを横断してスキャンできるブートマネージャー
  • WindowsとLinuxの両方を自動検出
  • 美しいGUIブートメニューを提供

インストール手順

  1. rEFIndのインストール
sudo apt install refind

  1. rEFIndのセットアップ
sudo refind-install

実行結果

  • 起動時に自動的にrEFIndメニューが表示される
  • WindowsとPop!_OSの両方がアイコン付きで表示される
  • 矢印キーで選択、Enterで起動

なぜrEFIndで解決したのか

ブートローダー対応範囲複数EFI対応
systemd-boot単一EFIパーティション内のみ
rEFInd全EFIパーティションをスキャン

ポイント: 各OSのシステム領域が別々のSSDにある場合、各SSDが独自のEFIパーティションを持つため、systemd-bootでは物理的に他のSSDのOSを認識できない

補足情報

一時的な回避方法

  • 起動時にBIOSブートメニューを表示
  • 「Windows Boot Manager」を手動選択

注意点

  • rEFIndインストール後は、従来のsystemd-bootメニューは表示されなくなる
  • rEFIndが新しいメインブートローダーとなる

まとめ

2枚のSSDに各OSのシステム領域が分かれているデュアルブート環境では、rEFIndを使うのが最適解

  • 各SSDの独立したEFIパーティションを横断してスキャン
  • 設定ファイルの手動編集不要
  • 自動検出機能により確実に両方のOSを認識
  • インストールコマンド2つだけで完了

同一SSD内のパーティション分割デュアルブートとは異なる問題であることを理解して、次回同じ状況になったら迷わずrEFIndを導入しましょう。

目次