rEFIndでデュアルブート構築(Windows+Linux)する
概要と経緯
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はオフにしてください。
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を上書きします。
インストーラを説明通り進め、パーティション操作画面で
- 元あったLinuxのパーティションを置換
-
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