(1)Windows上のコマンドプロンプト(管理者状態)で以下コマンドを入力実行する。
bcdedit /set “{globalsettings}” highestmode on
(2)Windowsをシャットダウン
(3)SteamDeckのリカバリイメージのUSBで起動。
いつもの電源+音量(-)で起動しリカバリイメージのUSBを選択。
注意:デスクトップモードではなく必ずリカバリイメージのUSBメモリで起動する事。
(4)リカバリイメージから起動したのち一番右のアイコン
Terminal with repair tools(リカバリーツール)を選択。
(5)Terminalより以下コマンドを実行
efibootmgr
でeif一覧を参照しWindows Boot Managerの番号を確認
sudo efibootmgr -b xxxx -A
でWindows Boot Managerno「*」が消える。
(6)リカバリイメージから起動したSteamOSをシャットダウンする。
これでWindowsを起動してもSteamOSを起動しても毎回Boot選択ができるようになります。
尚、SteamDeckで起動した後、Windowsを起動すると必ず9時間ずれるので
Windowsのコマンドプロンプト(管理者権限)から以下のコマンドを実行する。
reg add “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation” /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
(WindowsでUTCが有効になり、9時間ずれがなくなる。)
元に戻したければ以下を入力。
reg delete HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /f
追記します。WindowsもSteamOSのエントリーも、アクティブ状態が変更できなくなり
しばらくにっちもさっちもいかなかったのですが、
どちらが原因かはわかりませんが、下記を行った所状態変更ができるようになりました。
efibootmgrを実行するOSは、関係ないかもしれません。
注意:SteamOSのブートエントリーも一旦消えるようです
Arch Linuxのインストールイメージを起動し、ブートローダーの起動順序の設定を削除
sudo efibootmgr -O
Steam DeckのリカバリーイメージUSBから起動し、Konsoleを起動、Windows Boot Managerのエントリーを無効化
※この時点で状態変更ができるようになった
sudo efibootmgr -b xxxx -A
Windows Boot Managerのエントリーが複数勝手に作成されている場合は、重複分を削除
sudo efibootmgr -b xxxx -B
SteamOSのエントリーを作り直す
*64GBモデルの場合、NVMeでなくeMMCなので/dev/nvme0n1の部分が違うかもしれません
sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -l '\EFI\steamos\steamcl.efi' -L 'SteamOS'
稀に、efibootmgrコマンドでエントリーの状態が変更できなくなることがあるようですね。
私もその症状が出ました。
代替の方法として、EFI Shellを使う方法があります。
Arch Linuxのインストールイメージから起動できます。
ただこの方法だと、エントリーをinactiveにする方法がなさそうです。参考までにエントリーを確認、削除する方法を記載しておきます。
bcfg boot dumpbcfg boot rm xxthis is how a real server feels like 🙂
https://twitter.com/ClaudelGFX/status/1104185629091528704
prolly both have the same size