✌️

rEFIndでデュアルブート構築(Windows+Linux)する

2024/07/26に公開

概要と経緯

ThinkPad X395にWindows11を残したままZorinOS 17をインストールしたのですが、複数台のノートPCにZorinを入れていたので他のディストリ入れるか~と思い、後からManjaro Linuxを上書きインストールにした時のメモです。

対象になる人

  • 1枚のディスクの上にデュアルブート環境を作りたい方・作った方
  • デュアルブート環境でブートマネージャーをGRUBから換えたい方
  • デュアルブート環境でWindowsの起動時間を少しでも早くしたい方

対象にならない人

  • 環境構築対象のPCを仕事で使う方(特にノートPCを社外使用する方etc...)
    セキュリティ面で非常に危険です。対応策はありますが万全ではないので割愛します。

完成形はこんな感じ

起動順序

UEFIPOST → WindowsBootManager → rEFIndBootManager → 任意のOS

お約束

操作を間違えるとOSがブートできなくなって最悪データ損失するので大事なデータはバックアップしてから行いましょう(ここまでテンプレ)

機材・OS

PC

Lenovo ThinkPad X395
CPU:Ryzen5 PRO 3500U
RAM:8GB(うち1GBはGPU専有)
SSD:TOSHIBA 256GB
メモリは少しでも多く使えるようUMA Frame Buffer Sizeを1Gにしてあります。
あとSecureBootとBitLockerはオフにしてください。
https://wiki.archlinux.jp/index.php/Windows_とのデュアルブート#UEFI_.E3.82.BB.E3.82.AD.E3.83.A5.E3.82.A2.E3.83.96.E3.83.BC.E3.83.88

Windows で Bitlocker を使用していて、起動時に自動的にロックを解除するために TPM 内にキーを保存している場合、セキュアブートを無効化すると起動に失敗して Bitlocker の回復画面が表示されます。しかし、これは恒久的なものではなく、単にセキュアブートを有効化すれば Windows を簡単に再び起動できるようになります。
Windows 11 では、TPM が正常に動作している限り、インストール後にセキュアブートを無効化しても問題は発生しません。

OS

Windows11 23h2 + Zorin OS 17 Core

Windows11 23h2 + ManjaroLinux(KDE Edition)23.1.3-minimal

Linuxの上書きインストール

Manjaro LinuxのISOを焼いたUSBを刺してZorinを上書きします。
インストーラを説明通り進め、パーティション操作画面で

  1. 元あったLinuxのパーティションを置換
  2. GRUBをEFIパーティションにインストール(EFIパーティションに/bootをマウント)
    上記の用に操作し、インストールを進めます。
    インストールが完了したら、再起動してLinuxを起動します。

rEFInd Boot Managerのインストール(上書き)

元々ブートマネージャーにrEFIndを使用していたのでManjaroでも編集できるようにします。

$ sudo pacman -Sy && sudo pacman -S refind && sudo refind-install

rEFIndとGrubのカスタマイズ

rEFInd

rEFIndのデフォルトテーマが気に入らない!って方はテーマを変えてみましょう。
今回はrEFInd-minimal-darkを使用します。

テーマの配置

$ sudo su -
# cd /boot/efi/EFI/refind/
# mkdir ./themes
# cd ./themes
# git clone https://github.com/Kissycat/rEFInd-minimal-dark.git

テーマの適用

まずはコンフィグファイルのバックアップを取ります。

# cp -p /boot/efi/EFI/refind/refind.conf /boot/efi/EFI/refind/refind.conf.backup

その後 /boot/efi/EFI/refind/refind.conf の最終行に

# Enable custom theme
include themes/rEFInd-minimal-dark/theme.conf

と追記します。

テーマによってはrefind.confを上書きするものもあるので自分で選んだテーマをインストールするときはちゃんとReadmeを読みましょう。

OS選択後に出てくるrEFIndのコンソールを非表示にする

/boot/efi/EFI/refind/refind.conf に

# Enable graphics mode
use_graphics_for grub,linux,windows

と追記します。

GRUB

OS選択画面を非表示にする

/etc/default/grub の

GRUB_TIMEOUT=10

の10(秒)を0に、

#GRUB_DISABLE_OS_PROBIDER=TRUE

のコメントアウト(#)を消します。

上記が終わったら

$ sudo update-grub && sudo refind-install

を実行します。

WindowsBootManagerからrEFIndを読み込む

これを行うことによってWindowsの高速スタートアップを有効にしたままデュアルブートが可能です。
Windowsの起動時間を短くしたい方におすすめです。

EFI System Partitionをマウントする

コマンドプロンプト(管理者権限)を使用してESPをマウントし弄れるようにします。
ドライブレターは現在も今後も他用途で使用しないものをお勧めします。

> mountvol Q: /S

ブートマネージャーをrEFIndに変更

現在の設定を確認します。

>bcdedit /enum

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=Q:
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

EFIファイルにrEFIndを指定し概要も書き換えます。

> bcdedit /set {bootmgr} path \EFI\refind\refind_x64.efi
> bcdedit /set {bootmgr} description "rEFInd over WBM"

もう一度確認すると以下のようになっているはずです。

>bcdedit /enum

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=Q:
path                    \EFI\refind\refind_x64.efi
description             rEFInd over WBM
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

この後にまたLinuxを再インストールしたりrEFIndを更新するとdevice欄がESPボリュームのパスになったりしますが問題はありません。
ThinkPadのUEFIを確認すると起動順序が以下の様になると思います。

これで以上です。良きDualbootライフを!

Discussion