【教程】在Steam Deck上安装系统引导软件rEFInd

Acknowledgement: 本文为链接里的教程的简明中文版本,last accessed 2023年2月3日。
Disclaimer:本文主要为翻译,在个别地方添加了原文没有细讲的操作细节,在个别地方添加了译者的操作心得。在安装完rEFInd后想要重新安装Windows系统小节前译者都通过操作验证了正确性。读者因为操作对于自己SteamDeck的损坏与译者无关。

前言

折腾steam deck双系统折腾得痛苦不堪,陆续经历了bios打不开steamOS卡在加载画面(一个圈一个弧),长按电源+音量(+/-)连bios都打不开直接进windows两个阶段,就在准备写安装盘重装的时候,这个东西救了我狗命!!!

安装流程

(选)更新BIOS

SteamOS

  1. 进入SteamOS桌面模式
  2. 打开Konsole
  3. 按顺序输入指令
    git clone https://github.com/jlobue10/SteamDeck_rEFInd/
    cd SteamDeck_rEFInd
    chmod +x bios_update_SteamOS_prep.sh
    ./bios_update_SteamOS_prep.sh
    

Windows

  1. 如果已经按照添加一个Windows任务,始终将rEFInd作为最高引导优先级添加了任务,则首先禁用这个任务:右键任务选择禁用。
  2. 删除启动程序设置:以管理员身份打开Powershell,运行bios_install_prep.ps1脚本。
  3. 下载DeckFlash_Win.7z,下载最新的Steam Deck BIOS。将.fd BIOS文件放在与解压缩的InsydeH2O文件夹相同的目录中,并确保它是其中唯一的BIOS更新文件。
  4. 运行H2OFFT-Wx64.exe,点击确定安装.fd文件。
  5. 重启电脑,进入Windows,重启第一步中禁用的任务并手动重新运行该任务一次。

该方法也可以用于降级BIOS。

安装rEFInd

正文开始

  1. 首先,确保按照进不去SteamOS中的步骤1-4走可以看到你的SteamOS和Win的启动文件分别位于:/esp/efi/steamos/steamcl.efi/esp/efi/Microsoft/Boot/bootmgfw.efi位置。
  2. 进入SteamOS桌面模式(启动SteamOS,按STEAM键->电源->桌面模式)
  3. 打开Konsole
  4. 按顺序输入指令:(如果上文克隆过仓库就不用克隆了)
    git clone https://github.com/jlobue10/SteamDeck_rEFInd/
    cd SteamDeck_rEFInd
    chmod +x SteamDeck_rEFInd_install.sh
    ./SteamDeck_rEFInd_install.sh
    
    或者,基于pacman的安装遇到问题,可以采用无pacman安装方法。
    chmod +x refind_install_no_pacman.sh
    ./refind_install_no_pacman.sh
    
  5. (选)启动,rEFInd界面启动后后5秒钟自动进入默认系统(SteamOS)。修改refind.conf文件可以调整等待时间。如果值为-1则自动启动默认系统,除非在预启动阶段按下了任意按键或者触摸了触摸板。
  6. 选择操作系统:使用右边的触控板和R2按钮,或者十字键和A按钮。

理论上这样就可以了,但是仍然会出现开机时直接进入Windows系统的问题。因此增加下面一节,如果进入了Windows系统则唤起rEFInd。

添加一个Windows任务,始终将rEFInd作为最高引导优先级

  1. 进入Windows系统
  2. github_repo/Windows/bootsequence-rEFInd-first.ps1保存到本地
  3. 打开任务调度器(Win+R运行taskschd.msc)
  4. 右键单击任务计划程序库,新建文件夹。
  5. 然后选择该文件夹。点击“创建基本任务”,起名,点击下一步。
  6. 触发器:选择“当前用户登录时”,点击下一步。
  7. 操作:选择“启动程序”选中并单击“,点击下一步”。
  8. 启动程序:在“程序或脚本”文本框中输入或浏览选择位置:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe。在“添加参数(可选)”文本框中输入:-executionpolicy bypass -file C:\你在第二步保存文件的位置\bootsequence-rEFInd-first.ps1。点击下一步。
  9. 勾选“当单击“完成”时,打开此任务属性的对话框”,点击完成。
  10. 属性对话框:常规页面:选择“不管用户是否登录都要运行”,勾选“不储存密码”,勾选“使用最高权限运行”,勾选“隐藏”,将配置选择为“Windows 10”。
  11. 属性对话框:条件页面:取消勾选“只有在计算机使用交流电源时才启动此任务”。点击确定关闭窗口。

其它步骤

进不去SteamOS

Acknowledgement: 方法来自链接,last accessed 2023年2月1日。

请尝试以下操作,其它的阴间小众情况笔者暂时没有遇到

  1. Steam Deck处于关机状态
  2. 同时按住【电源键】和【音量+】
  3. 选择“Boot from file”按钮
  4. 逐层选择菜单:esp/efi/steamos/steamcl.efi(备注:第一层菜单可能非常长,看开头是esp即可,在笔者这里是第一个)
  5. 等待SteamOS启动

其它阴间小众情况

  • 按上述步骤操作反而进了windows

安装完rEFInd后想要重新安装Windows系统

  1. 进入SteamOS桌面模式
  2. 打开Konsole
  3. 禁用rEFInd的EFI引导项
    efibootmgr
    
    记录rEFInd的引导项,用其替换下面的XXXX。
    sudo efibootmgr -b XXXX -A
    
  4. 重新启用Windows EFI引导项。将以下命令中的YYYY替换为Windows EFI引导项
    sudo efibootmgr -b YYYY -a
    
  5. 重装Windows

如果成功安装后重新运行该脚本,该脚本稍后将再次禁用Windows EFI引导项。

注:从SteamOS 3.4更新开始,这些命令可能需要从SteamOS恢复镜像启动(才能成功)。

禁用Windows EFI条目

  • 使用Windows中的easyufi
  • 使用SteamOS恢复映像中的命令行:运行efibootmgr并记录Windows EFI条目的引导编号,并用该编号替换下面命令中的XXXX:sudo efibootmgr -b XXXX -A

恢复丢失的EFI项

在SteamOS运行脚本。该脚本检测是否缺少任何一个EFI条目,并且只重新添加缺少的条目(不创建副本)。

引导到Windows时显示损坏

以管理员身份,在cmd运行bcdedit.exe -set {globalsettings} highestmode on

以管理员身份,在Powershell运行bcdedit /set "{globalsettings}" highestmode on

SD卡Windows说明

这一段译者没有运行,仅进行翻译作为参考。

更新后的refind.conf文件现在有一个手动节(stanza)用于Micro SD卡Windows启动选项。通过在“Windows”节(stanza)中添加禁用行,确保禁用了其他“Windows”启动选项。我们需要对Windows SD进行2次编辑

需要对“Windows SD卡”节(stanza)进行2次编辑,以使Micro SD卡Windows从rEFInd正确启动。

  1. 使用KDE分区管理器来找出Micro - SD卡的EFI系统分区UUID:
    image belong to the author of the link in acknowledgement
  2. 用您的UUID替换refind.conf文件中volume REPLACE_THIS_WITH_SD_CARD_EFI_PARTITION_UUID这一行中全大写的字符串(即保留volume)。
  3. 删除节(stanza)末的禁用行。

启动时有必要按下一个键以避免引导时检查磁盘。如果没有按这个中断键,屏幕可能看起来已经损坏,直到磁盘检查完成,Windows继续启动。

禁用和/或卸载rEFInd

将XXXX换成rEFInd EFI条目

  • 禁用rEFInd EFI条目:sudo efibootmgr -b XXXX -A
  • 删除rEFInd EFI条目:sudo efibootmgr -b XXXX -B
  • 卸载pacman安装的rEFInd包携带的包和文件:
    sudo steamos-readonly disable
    # 接下来的两个命令可能没有必要,但它们也不会造成任何伤害
    sudo pacman-key --init
    sudo pacman-key --populate archlinux
    # 下面的命令删除pacman refind包
    yes | sudo pacman -R refind
    sudo steamos-readonly enable
    

由于非pacman安装的脚本文件只占用5GB根分区上非常小的空间(不占用/home分区上的任何游戏空间),所以原文没有做详细介绍。

  • 从/esp分区中删除rEFInd目录(要预先警告,如果在这里犯错误,删除/esp分区上的错误文件或文件夹可能会使你的Steam Deck无法启动,需要恢复映像。这是一个公平的警告,我不承担任何用户错误的责任。)运行指令:sudo rm -rf /esp/efi/refind/
### 如何在 Steam Deck 上设置双系统 #### 选择合适的工具 对于希望在 Steam Deck 上实现双系统的用户来说,有多个选项可供选择。其中一种推荐的方法是通过 `SteamDeck_rEFInd` 来管理不同操作系统的启动过程[^2]。 #### 准备工作 为了顺利安装第二个操作系统,在开始之前需准备一张至少8GB容量以上的microSD卡作为额外存储空间用于安装新的系统镜像文件。同时建议备份重要数据以防意外丢失。 #### 安装 rEFInd 启动管理器 1. 下载适用于ARM架构的rEFInd ISO映像并将其写入到U盘中; 2. 将制作好的引导盘连接至Steam Deck设备并通过BIOS/UEFI界面选择从外部介质启动; 3. 按照屏幕提示完成rEFInd本身的部署流程; #### 添加其他操作系统支持 以Windows为例说明具体步骤: - 利用官方提供的Media Creation Tool创建可启动USB驱动器; - 插入已准备好含有WinPE环境的闪存棒重启机器进入刚才安装完毕后的rEFInd菜单; - 执行常规的新建分区表以及格式化C:卷操作之后继续正常安装直至结束; #### Clover 脚本辅助方案 另一种方式则是借助名为Clover 的开源项目来简化整个过程。该项目提供了一套完整的自动化脚本来帮助用户快速搭建起基于EFI模式下的多bootloader共存场景[^3]。 ```bash git clone https://github.com/cloverefi/CloverBoot.git cd CloverBoot/ chmod +x install.sh sudo ./install.sh ``` 以上命令会自动拉取必要的依赖项并将所需组件放置于正确位置从而使得后续的选择变得简单明了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值