1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BIOS をアップデートしたら boot order が壊れた

Posted at

パソコンを買った当初にも同じ設定をしたはずなのに、やり方を忘れてしまったのでメモ。

この記事はただのメモです。参考にする方は、自己責任でお願いします。

環境

  • laptop: OMEN by HP 15-ax200/intel core i7
  • OS: Windows 10(SSD) + Arch Linux(HDD)

何が起こったか

BIOS のアップデートを行なった後にマシンを再起動したら、Arch Linux ではなく Windows が立ち上がった。

解決方法

  1. Windows の UEFI の設定から boot option を開く
  2. Arch Linux を起動して、efibootmgr から、Arch Linux 用の新しい boot entry を作成
  3. 再起動して、BIOS の起動設定から boot order を変更

efibootmgr の使い方

efibootmgr を用いて boot order を設定します。以下 sudo は省略しているので、要求されたら適宜足してください。

ここでは私の環境で打ったコマンド(以下)を例に、efibootmgr のオプションを説明します。

$ efibootmgr -c -d /dev/sda -p 1 -L "Arch Linux" -l "\EFI\boot\bootx64.efi"

詳細は Gentoo wiki を参照。

-c: boot entry の作成

新たに boot entry を作成します。

-d: ディスク

Linux がインストールされているディスクの名前を入力します。lsblk 等で確認できると思います。
私の環境だと Windows が /dev/nvme0n1、Arch Linux が /dev/sda にインストールされているので、-d /dev/sda としました。

-p: EFI システムパーティション(ESP)の番号

fdisk -l, parted -l 等で確認できます。
私の環境だと 1 だったため、-p 1 としました。

-L: boot entry の名前

いい感じに名前をつけましょう。

-l: efi ファイルのパス

grub 等のブートローダの設定ファイルを作るときに指定した、efi ファイルのパスを入れます。
ただし、パスは/ではなく\を用いること。

私の環境だと efi ファイルが /boot/EFI/boot/bootx64.efi にあったので、 /boot 以下のパスの/\に変更して -l "\EFI\boot\bootx64.efi" としました。

BIOS の起動設定から順序を変更

私の環境では、パソコンを再起動すると efibootmgr で設定した boot order がリセットされてしまいました。しかし boot entry 自体は正しく作成されていたため、BIOS の設定から起動順序を変更することができました。

boot entry 自体が見つからない場合は、前述の -l の値の設定等が間違っている可能性があります。efibootmgr -v で boot entry が正しく作成できたか確認してみてください。

最後に

間違っている箇所があったら、コメント等でお知らせください。ではでは。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?