0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

起動直後のUEFIを介さない起動ディスク制御

0
Posted at

起動中OSにて次に起動するディスク(OS)を選択したい

所持する自作PCに、Windows11ディスクとUbuntuディスクとが存在している。電源起動直後のUEFIにて起動ディスクOS)を選択せず、起動中OSにて、次に起動するディスクを選択する方法を記載。ChatGPTに問い合わせた結果をまとめたのみ。

背景

対象となる自作PCにはリモートアクセスすることが多く、状況により、Windows11かUbuntuかを使い分けたいことがある。電源起動直後のUEFIメニューにはリモートではアクセスできないため、本方法が有効となる。

準備(というか不具合解消)

Windowsの管理者コマンドプロンプトにて、”bcdedit /enum firmware”を実行すると、起動ディスクの状況が見えるとのこと。

>bcdedit /enum firmware
ブート構成のデータ ストアを開けませんでした。 指定されたファイルが見つかりません。
>bcdedit
ブート構成のデータ ストアを開けませんでした。 指定されたファイルが見つかりません。

現在のEFIパーティション上にBCDが存在していないらしい。修復を行う。まず、EFIを”S:”にマウント。

>mountvol S: /S

次に、Windowsのブートファイルを再生成する。

>bcdboot C:\Windows /s S: /f UEFI
ブート ファイルは正常に作成されました。

本番

Windowsにて

”bcdedit /enum firmware”を実行。

>bcdedit /enum firmware

ファームウェアのブート マネージャー
--------------------------------
identifier              {fwbootmgr}
displayorder            {9398da72-0e69-11f1-8075-806e6f6e6963}
                        {bootmgr}
                        {95c2ca56-0eb3-11f1-8074-701ab8e5e416}
                        {95c2ca59-0eb3-11f1-8074-701ab8e5e416}
                        {95c2ca58-0eb3-11f1-8074-701ab8e5e416}
                        {95c2ca57-0eb3-11f1-8074-701ab8e5e416}
timeout                 1

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume3
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-us
inherit                 {globalsettings}
default                 {default}
resumeobject            {95c2ca54-0eb3-11f1-8074-701ab8e5e416}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

ファームウェア アプリケーション (101fffff
--------------------------------
identifier              {9398da72-0e69-11f1-8075-806e6f6e6963}
device                  partition=D:
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager

ファームウェア アプリケーション (101fffff
--------------------------------
identifier              {95c2ca56-0eb3-11f1-8074-701ab8e5e416}
device                  partition=\Device\HarddiskVolume3
path                    \EFI\ubuntu\shimx64.efi
description             ubuntu

...

”identifier”がポイント。

次にUbuntuで起動するには

Ubuntuのidentifierを用いて、下記を実行。

>bcdedit /set {fwbootmgr} bootsequence {95c2ca56-0eb3-11f1-8074-701ab8e5e416}

上記コマンドは、BootNext(bootsequence)という恒久的な設定ではないらしい。次の起動はUbuntuであるが、その次の移動はWindowsとなる。

ショートカットがベターと言われたので、作成する。

cmd /c bcdedit /set {fwbootmgr} bootsequence {95c2ca56-0eb3-11f1-8074-701ab8e5e416} && shutdown /r /t 0

恒久的(永続的)な設定

displayorder+addfirstにidentiferを指定することにより実施。

>bcdedit /set {fwbootmgr} displayorder {95c2ca56-0eb3-11f1-8074-701ab8e5e416} /addfirst
この操作を正しく終了しました。

Ubuntuにて

コマンド”efibootmgr”を使う。

次にWindowsで起動するには

$ sudo efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0005,0004,0002,0001,0000,0003
Boot0000* ipfire
Boot0001* Fedora
Boot0002* ubuntu
Boot0003  FreeBSD
Boot0004* Windows Boot Manager
Boot0005* Windows Boot Manager

現在は”0002”(ubuntu)で起動している。BootOrderの順番で起動する。この状態であれば、次は”0005”(Windows)から起動。

本題とは関係ないが、”-B”オプションにより、0000、0001、0003を削除(過去の別ディスクへのインストールの残骸)。

$ sudo efibootmgr -b 0000 -B
...

$ sudo efibootmgr -b 0001 -B
...

$ sudo efibootmgr -b 0003 -B
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0005,0004,0002
Boot0002* ubuntu
Boot0004* Windows Boot Manager
Boot0005* Windows Boot Manager

このままだと、次はWindowsで起動してしまうため、”-n”オプションにより、次の起動(BootNext)をubuntuに変更。

$ sudo efibootmgr -n 0002
BootNext: 0002
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0005,0004,0002
Boot0002* ubuntu
Boot0004* Windows Boot Manager
Boot0005* Windows Boot Manager

”BootNext”に見えるように、次もubuntu(0002)で起動する。ただし、BootOrderが変更されていないので、その次の次はWindowsで起動する。

恒久的(永続的)な設定

現在の状況。

$ sudo efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0005,0004,0002
Boot0002* ubuntu
Boot0004* Windows Boot Manager
Boot0005* Windows Boot Manager

”-o”オプションにより、BootOrderの変更。

$ sudo efibootmgr -o 0002,0005,0004
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0005,0004
Boot0002* ubuntu
Boot0004* Windows Boot Manager
Boot0005* Windows Boot Manager

これにより、ubuntu(0002)からの起動が恒久化される。

EOF

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?