21 7月 2024

デュアルブート環境でのBIOSアップデート他

デュアルブート環境でのBIOSアップデート

ASUSのマザボ(X670EのProArt)にてLinux/Windowsのデュアルブート環境を作っている。 この状態でBIOSのアップデートを行った場合の影響と復旧方法。

アップデートによる影響はUEFIのブートのエントリーがリセットされるので Linuxのブートローダーが読み込めなくなる。Windowsも本来消されるはずだがおそらくこっちは 自動で探して読み込むようになってるのではないかと思う。

したがってアップデート後にUSBディスク等から起動してefibootmgrでエントリーを追加する必要がある。

$ efibootmgr --create --disk /dev/sdX --part 1 --label 'Linux' --loader '\EFI\Boot\BOOTX64.EFI' --unicode

例えばこのような感じで追加できるはず。sdXはESPを指定する。

https://wiki.archlinux.jp/index.php/Unified_Extensible_Firmware_Interface#efibootmgr

ちなみに、BIOSアップデートすると当然BIOS設定は全部初期化されてしまうので、再設定が必要。 近年のマザボでデュアルブートをする場合はFastBootだけOFFにすればそれ以外は基本デフォルト設定で問題ないと思う。 FastBootももしかしたらONでもいけるかもしれないが、不要なトラブルを避けるためにマザボ側でOFFとしている。 (あとは個人的にマザボのWi-Fi機能は使わないのでBIOSレベルでOFFにしている)

ESPのお引越し

今回BIOSアップデートにあわせてLinux環境を別の新しいSSDに移した。その際ESPも新しいディスクに移したかったので そのような作業を行った。

結論から言えば、ESPを移動させたい場合は新しいディスクにESPのパーティション(FAT32, EFI System)を作成し、 そこに旧ESPのファイルをそのままコピーする。その後、efibootmgrで一旦すべてのエントリーを削除した後、 上のBIOSアップデート手順に記載したようなcreateオプションをつけて必要なエントリを再追加すれば良い。 その後、念の為バックアップを取った後に古いESPを削除する。

WindowsやLinuxのブートローダーのバイナリファイルはそのまま別ESPをコピーしても動く。 Windowsの場合は特に何もしなくてよかったがLinuxのブートローダーではrootのディスク指定などが必要だと思うので そういう場所だけ必要に応じて変更する。

Tags: Blog 備忘録 Linux