目次
問題の状況
症状
- 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のデフォルト)重要なポイント
原因の分析
なぜブートメニューが表示されないのか
- Pop!_OSはsystemd-bootを使用
- 従来のGRUBとは異なる動作
- デフォルトではタイムアウト設定なし
- 複数SSDによる複数EFIパーティション問題
- SSD1のWindowsシステム:
/dev/nvme0n1p1(EFIパーティション) - SSD2のPop!_OSシステム:
/dev/nvme1n1p1(EFIパーティション) - 問題の核心: systemd-bootは同一EFIパーティション内のOSしか認識できない
- 物理的に異なるSSDにあるWindowsのEFIパーティションにはアクセス不可
- SSD1のWindowsシステム:
確認コマンド
パーティション構成の確認:
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ブートメニューを提供
インストール手順
- rEFIndのインストール
sudo apt install refind
- 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を導入しましょう。