
本人Steam Deck单盘双系统,放弃使用频繁导致掉更新且不方便维护的rEFInd脚本管理启动,一直使用Steamdeck自带的BIOS菜单启动项+scawp的自动启动到上次系统的脚本,使用方便稳定,自2022年11月份至2026年经历了多次OS稳定版本更新和Windows日常更新未影响系统使用。2026年6月18日更新完SteamOS 3.8,由于更新了固件,掉启动项,用SteamOS系统自带命令一键修复(SteamOS 3.7系列更新未出现掉启动)。
这种方案的好处:一是使用逻辑实用方便,对于Steamdeck双系统的使用场景而言,其实更多情况是使用OS或者Win中某一个系统更多一点,频繁切换其实并不多见,scawp脚本自动启动到上次的系统就很方便快速,即使切换频繁也就等同于BIOS菜单操作;二是对于系统的修改极简稳定性佳,双系统管理是基于Steamdeck自带的BIOS菜单管理,这是最原始最基本最安全的方法,scawp脚本只是辅助,其代码我研究过,不修改efibootmgr里面任何启动项,逻辑很简单只是读取上一次启动系统的FLAG启动至该系统,作为Daemon挂到OS下面这样即使更新系统也不会有什么大问题,即使掉了再运行一遍安装脚本即可;三是双系统可随时更新,OS和Win可以一直更新到最新的,不需要禁用Win更新或是手动更新直接Win自动更新就行,OS的话其实是不推荐走Beta或者Preview分支,在评估新版本利弊后保守的做稳定分支的更新就好,即使真的掉了可以参考后面的指南。
现将通用的Steamdeck双系统系统引导通用修复方法和步骤整理如下:
一、SteamOS启动项的修复
1.+号键和开机键开机(同时长按,之后松开开机键,见到画面松开+号键)
选自文件启动Boot from file
尝试定位\ESP\steamos\steamcl.efi(\ESP\efi\steamos\steamcl.efi)文件启动SteamOS
2.Konsole(桌面模式左下deck菜单-系统-命令控制台)运行下面的命令修复SteamOS启动项:
sudo /usr/bin/steamcl-install
然后关机。
-号键和开机键(同时长按,之后松开开机键,见到画面松开-号键)开机,BIOS启动菜单选择SteamOS
这条命令的作用是,把steamcl.efi拷贝到/esp/efi/steamos/steamcl.efi和/esp/efi/boot/bootx64.efi,新增SteamOS启动项,不会影响之前的Win或者其他启动项,不修改efi启动顺序,放心使用。这里其实只用到了新增启动项的功能。
手动修复命令:
sudo efibootmgr -c -L "SteamOS" -l "\ESP\steamos\steamcl.efi" -d /dev/nvme0n1p1
3.推荐个由scawp写的好用启动辅助,无需rEFInd,自动动启自上次的系统,有其他启动需要关机后用-加开机键选单即可。
项目页面:
https://github.com/scawp/Steam-Deck.Force-SteamOS-On-Boot
进入SteamOS,打开Konsole运行下面命令:
curl -sSL https://raw.githubusercontent.com/scawp/Steam-Deck.Force-SteamOS-On-Boot/main/curl_install.sh | bash
二、Windows启动项的修复
进入OS系统或使用并启动至OS启动U盘,打开Konsole(命令控制台)输入一下命令:
sudo efibootmgr -c -L "Win" -l "\ESP\Microsoft\Boot\win.efi" -d /dev/nvme0n1p1
Win启动项默认EFI入口:\ESP\Microsoft\Boot\bootmgfw.efi
如果遇到没有bootmgfw.efi的文件的情况,可以使用启动盘(如果能找到windows启动的efi文件也可以Boot From File启动)访问Windows分区C:\Windows\Boot\EFI这个文件夹,整个拷贝到\EFI\Microsoft\,再将\EFI\Microsoft\EFI文件夹重命名为\EFI\Microsoft\Boot,这样就恢复了默认路径的bootmgfw.efi。如果可以进入Win,那么拷贝和重命名的工作可以使用Windows下的DiskGenius操作(图吧工具箱中磁盘工具里有),该工具也可以直接修改efibootmgr的内容(不推荐)。OS下,也可以通过文件管理器或者命令行操作。
如果该步骤还是无法修复,那么可以通过Windows安装U盘重新安装一下。
三、清除SteamDeck_rEFInd
进入OS系统或使用并启动至OS启动U盘,打开Konsole(命令控制台)输入一下命令:
1.查看和关闭后台服务
sudo systemctl status bootnext-refind.service
sudo systemctl disable --now bootnext-refind.service
2.清除EFI入口
efibootmgr
记下 rEFInd 启动项的四位数字。 在以下命令中将 XXXX 替换为该数字,完全清除rEFInd启动项
sudo efibootmgr -b XXXX -B
3.删除EFI文件和GUI文件
sudo rm -rf /esp/efi/refind/
rm -rf ~/SteamDeck_rEFInd
rm -rf ~/.SteamDeck_rEFInd
rm -f ~/Desktop/refind_GUI.desktop
(注2:此修复步骤专门适用于SteamDeck_rEFInd脚本,如果是其他版本的rEFInd变种,可参考同样的逻辑和步骤)
其他Steamdeck双系统方案项目参考:
1.jlobue10 SteamDeck_rEFInd
https://github.com/jlobue10/SteamDeck_rEFInd
2.ryanrudolfoba SteamDeck-Clover-dualboot
https://github.com/ryanrudolfoba/SteamDeck-Clover-dualboot
3.B站:--River-- rEFInd
https://www.bilibili.com/read/cv19756668/?spm_id_from=333.999.0.0
双系统教程参考:
1.UP翻译和推荐的双系统安装流程
https://www.bilibili.com/video/BV16e4y1g7V6/
2.--River-- 双系统流程
https://www.bilibili.com/read/cv18881740/