【爱折腾】SteamDeck完全折腾指南-D0-安装双系统
=飘落的枫叶=
2023年01月04日 01:19
收录于文集
共16篇

D0-安装双系统

本教程入口专栏:

网页链接​

本教程对应视频链接:

网页链接​


来到了本教程中最困难的部分,当然其实很多东西在UP主历史的视频中都讲过,如果那些你已经学会了,其实本章节就也不难了。大体的顺序是这样的:

  • 安装SteamOS(大家拿到手的SteamDeck就已经完成了)

  • 进行磁盘分区

  • 安装Windows

  • 安装Windows下的驱动

  • 设置双系统时间同步

  • 安装rEFInd引导

SteamDeck的系统分区

我们在开始之前先看一下SteamDeck的系统分区长啥样,然后说一下咱们双系统要做成啥样,让大家有个概念,这样会更容易理解后续的操作步骤

简单说一下我的理解,欢迎大佬们补充

ESP引导分区:EFI引导项所在位置,负责引导系统

SteamDeck有A/B系统,不太清楚是做备份还原还是啥用,总之由于这个设计,每个分区都有两份:

EFI启动分区:系统的启动文件所在分区,boot分区

系统分区:SteamOS的系统文件所在分区,内核等

保留分区:不太清楚做啥的

home分区:用户数据所在位置,home挂载点

然后咱们要做的双系统最后是这个样子

由于我换了1T的硬盘,所以我讲home分区改为了100G大小,之后的部分留给了Windows、共用的游戏库、EmuDeck模拟器

SteamOS系统部分在双系统方案中不需要修改,其他的:

ESP引导分区:增加了rEFInd引导,负责引导双系统

Windows系统分区:也就是Windows的C盘,安装Windows系统

双系统共用分区:双系统均挂载此分区作为共享数据区,用来作为游戏库,这样游戏只需要安一份,两边都能玩

EmuDeck分区:如果你安装EmuDeck,并且想放在同一块硬盘上,那么可以像我一样单独留一块分区,好管理

安装SteamOS

这里大家拿到手的SteamDeck就完成了,当然,如果你需要更换硬盘→拷贝系统,或者重装系统等,请查看C1-拷贝系统和C2-系统修复部分。在安装Windows双系统的时候确保先安装完SteamOS,这样操作相对简单

进行磁盘分区

这里我们需要使用SteamOS恢复U盘,这是为了使用其中的KDE磁盘工具进行分区。因为我们不能在挂载使用分区的情况下调整分区。我也尝试过使用Windows PE系统,理论上应该都可以。但是这样调整后的分区我发现会导致SteamOS无法启动,不太清楚原因,我使用的是U启通PE。所以UP建议大家使用SteamOS恢复镜像来进行分区。

我们进入启动菜单,进入SteamOS恢复U盘

选择KDE磁盘工具

对SteamOS下的分区进行resize调整,注意,建议只调整/home分区,不要动系统分区,我这里调整到100G

然后在空余出来的部分创建800G的NTFS分区,用于Windows和共享分区。我这里之所以要先创建出来,是因为后面还有40G的EmuDeck分区,如果你不需要这部分,那么这里只创建用于Windows系统分区的部分即可,剩余的可以留着以后再分配

Windows分区和共享分区注意格式是NTFS(如果共享分区你想用别的格式随你,如果是不懂的,我建议使用NTFS),EmuDeck用的分区我使用的是ext4

安装Windows

安装Windows就比较简单了,我以前也出过非常详细的Windows安装和系统修复视频:

https://www.bilibili.com/video/BV1Kx411k7aZ​

这里我们需要使用Windows安装U盘,从启动菜单进入Windows安装U盘

选择没有产品密钥

UP主安装的专业版,按自己需要来

到分区界面,这里我们之前留了800G,我们将这个分区删除,注意不要删错了

然后重新创建用来安装Windows的分区,这是因为我想将剩余的部分保留未分配,而为了在尾部留出40G空间,我需要先创建800G的分区(其实也可以手动算扇区起始位置,但是麻烦),如果你没有EmuDeck,并且按照我上面说的,只建了Windows的系统分区,那么直接选择即可

之后我们选择用来安装系统的分区,下一步

之后就是大家熟悉的安装界面,等待安装完成即可

安装完成后就会到Windows的例行念诗环节,之后会进入OOBE(Out-of-box experience)初始化页面

如果是安装的Windows11系统,这里我建议大家使用键盘输入Shift+F10,进入命令行,然后输入

来跳过网络设置,否则的话必需联网登录微软帐号,比较流氓

等待自动重启后,一直下一步,到网络连接界面就会出现”我没有Internet连接”的选项了

都设置完成后,就进入到Windows里面了,相信大家都比较熟悉了

安装Windows下的驱动

官方的SteamDeck Windows Drivers

https://store.steampowered.com/news/app/1675200/view/3131696199122435099

下载好后我们一个个安装即可,官方已经给出了每一个驱动如何安装

都装完后,可以在显示设置中将屏幕旋转90度,保护颈椎,人人有责(笑

设置双系统时间同步

这时候如果你切换系统,比如通过启动菜单进入Windows再进入SteamOS,可能会注意到两边系统的时间相差8小时,即使在一边设置了,进入到另一边又会差8小时。

这是因为linux使用UTC时间,而windows不是,所以每次都会差出时区的时间,中国是UTC+8,所以差8小时。要解决问题只需要在Windows上启用UTC时间或者在SteamOS上禁用UTC时间即可。个人更推荐在Windows上处理,大家更熟悉一点

Windows上打开命令提示符,右键以管理员身份运行,输入

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

重启后,两边系统的时间就一致了

安装rEFInd引导

至此,我们在Windows系统上要做的就差不多了,接下来就是去SteamOS中安装rEFInd引导双系统

我们通过启动菜单,选择SteamOS选项进入,如果不通过启动菜单,安装完Windows后第一顺位引导项就会是Windows Boot Manager了

进入到SteamOS后,我们切换到桌面模式来操作

先来介绍一下rEFInd这个引导工具,引用wiki:rEFInd 是一个 UEFI 能够启动 EFISTUB 内核的启动管理器。它是 rEFIt (不再维护)的一个分支并且针对非 Mac 硬件修复了若干问题。它被设计为平台无关,可启动多个操作系统。

其实我曾尝试过使用Grub2引导,但是Grub2还是没有rEFInd更加独立(与平台无关),安装起来更加方便。并且rEFInd也能够完美支持SteamDeck的按键,很方便。据说rEFInd的效率较差,不过个人使用没太大感觉。

rEFInd的安装也很简单,可以理解就是个便携软件,我们只需要下载、解压、放到对应位置、修改下配置文件就可以了

下载

官网下载地址,直接下载预编译好的zip文件即可

https://www.rodsbooks.com/refind/getting.html

安装

安装就是解压,然后运行就行了

我们将下载好的文件,使用tar命令解压,之后使用

命令,将SteamOS的系统只读属性禁用掉(注意需要管理员权限)

然后切换到对应的refind目录中,运行refind-install

rEFInd会自动安装到我们的/boot目录下

移动

但是在开头我们就说了,我们真正的引导分区,并不在/boot下面,而是在ESP分区,也就是/esp,这也是SteamDeck和普通Linux系统的一个区别,我们需要将rEFInd软件移动过去

移动也很简单,使用mv命令将/boot目录下的rEFInd整个移走就行了

配置

配置文件就在refind目录下的refind.conf中,默认的配置文件大家可以打开自己看一下,基本上生效的就是

我们直接在文件尾部进行添加,这里我将开头的timeout 20进行了注释(在前面加#)

然后我会一项一项给大家解释这些是啥意思,便于大家理解,后续出了问题也知道如何去修改

showtools 取消下方菜单显示

resolution 3 不再是竖屏而是横屏,选择某一个分辨率设置,我记得好像3是800*1280

scanfor manual,external 只展示手动设置的和外置存储的启动项,会让你的界面更干净,不会显示自动扫描出来的各种引导项

enable touch 允许触屏

enable mouse 允许鼠标

hideui singleuser,hints,arrows,label,badges 隐藏部分UI,具体参数可以看下方我附的官方文档

hideui singleuser,arrows 隐藏部分UI,UP主推荐新手使用

banner themes/background.png 设置引导页面的背景图片

timeout 3 超时时间,单位秒

default_selection 1 默认进入哪一个引导项,第一个就是SteamOS了

后续的两项,也就是我们手动设置的两个引导项了,其中icon代表图标位置,loader代表引导的efi文件,graphics on代表使用图形界面。其目录都是以/esp为根目录的,如果你去对应的位置去看,也就是咱们刚才移动rEFInd的目标位置,旁边/esp/EFI/Microsoft/Boot/bootmgfw.efi就是Windows的引导文件了。

menuentry "SteamOS&#​34; {

icon /EFI/refind/icons/os_steam.png 

loader /EFI/steamos/steamcl.efi 

graphics on 

}

menuentry "Windows&#​34; { 

icon /EFI/refind/icons/os_win11.png 

loader /EFI/Microsoft/Boot/bootmgfw.efi 

graphics on 

}

如果你想要订制的话,就可以在/esp/EFI/refind目录下的icons和themes去放置图片,我演示效果中的背景壁纸来自于对千夜大佬画的重新裁剪,因为SteamDeck的屏幕是1280*800,默认refind不会对壁纸进行缩放,如果想要缩放可以设置banner_scale选项,值有noscale和fillscreen。所以我这里重新裁剪了一下,并且保留了作者的签名。

原图P站地址:https://www.pixiv.net/artworks/96776418

千夜B站空间:https://space.bilibili.com/813818​

icon的话借用了一个开源脚本中的图标

https://github.com/jlobue10/SteamDeck_rEFInd

最终效果如下:

hideui singleuser,hints,arrows,label,badges 隐藏大部分UI,注意连倒计时都不会显示的

hideui singleuser,arrows 隐藏部分UI,UP主推荐新手使用,能看到按键操作和倒计时等

官方文档

rEFInd配置文件官方说明:

https://www.rodsbooks.com/refind/configfile.html

ArchLinux的中文wiki

https://wiki.archlinuxcn.org/wiki/REFInd?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DREFInd_(%25E7%25AE%2580%25E4%25BD%2593%25E4%25B8%25AD%25E6%2596%2587)%26redirect%3Dno

修改启动项

都安装完毕后,我们只需要修改下启动项,禁用Windows的,添加rEFInd,并且让rEFInd处于首位

使用efibootmgr -v命令可以列出所有的启动项,然后其中的后四位数字就是标识,比如Boot0000的0000和Boot2001的2001

之后我们找到Windows启动项,如下图,是0003,使用-b指定标识,然后使用-A选项禁用掉

然后再找到之前的rEFInd启动项,-B删除,因为这是之前我们移动之前的位置,现在已经不在那里了

然后我们需要创建新的引导项,使用efibootmgr -c创建,-L代表label名字,-d代表磁盘,-p代表分区,-l代表启动文件

我们可以使用之前讲过的df -h命令查看挂载位置,esp分区不出意外是我们磁盘的第一个分区(如果你没乱动的话),那么这里我的就在nvme0n1磁盘,p1分区,所以我的命令是

创建完成后可以再使用efibootmgr -v命令确认,没有问题的话我们直接关机,重新启动,进入启动菜单,正确的话应该如下,windows的已经不见了,rEFInd的默认在第一位。如果不进入启动菜单,直接按开机按钮,也应该进入rEFInd引导项

我们选择rEFInd,能够看到刚才我们配置的

至此,双系统引导就大功告成了,大家可以再去个性化订制。并且,我墙裂建议大家继续按照后续教程配置挂载同一分区,因为这对于双系统的使用会更加便捷。不过如果你就想两个系统互不干扰,各自存储数据,也是没有任何问题的

确定都没问题后,别忘记将SteamOS的只读属性恢复

steamos-readonly enable