📖 本文由 Batocera 官方 Wiki 翻译整理,内容可能随版本更新而变化。
手动升级或降级系统指南
本教程适用于以下几种情况:
* 无法通过常规方式(即 主菜单(MAIN MENU) > 更新与下载(UPDATES & DOWNLOADS) > 更新类型(UPDATE TYPE) 中切换“稳定版(Stable)”或“测试版(Beta)”)完成升级或降级。
* 即使通过 SSH 远程连接(Secure Shell) 也无法顺利更新。
* 想要回退到某个更早的历史版本。
* 想要安装特定或自定义的 Batocera 修改版。
深入了解 Batocera 的磁盘布局
在动手之前,我们需要先搞清楚 Batocera 是如何“住”在你的驱动器里的。理解了结构,你就能明白稍后需要把文件准确地放进哪个文件夹。
生活化类比:这就像是一个精装修的公寓。整个驱动器被分成了两个“房间”:
1. 系统分区(Batocera Partition):这是“厨房和机房”,里面装满了运行系统所需的各种程序和工具,平时是锁起来的(只读状态)。
2. 共享分区(SHARE Partition):这是“客厅和储藏室”,专门用来存放你的游戏镜像(ROMs)、存档和个人设置等用户数据(Userdata)。
磁盘布局示意图
通常在你的 U 盘或存储卡上,布局如下:
* 第一分区:Batocera 分区(包含核心程序)
* 第二分区:SHARE 分区(包含所有用户数据)
深入解析:Batocera 的双分区设计
为了让升级和维护变得更简单,Batocera 巧妙地将系统分成了两个独立的部分:引导分区和数据分区。
-
引导分区(Boot Partition)
当你把 U 盘或 SD 卡插入另一台电脑时,看到的那个 FAT32 格式的分区就是它。它就像是系统的“发动机室”,包含了启动所需的所有核心文件。- 运行逻辑:系统启动时,它会被挂载到
/boot/路径下,并且处于只读模式(Read-only)。其中最核心的是一个名为 SquashFS 的压缩文件,它是 Batocera 的“系统镜像”,启动后会挂载到根目录/来运行整个系统。 - 关键配置:你在这里还能找到控制启动行为的
batocera-boot.conf配置文件。 - 空间分配:这个分区通常预留了 6GB 空间(旧版本为 4GB),其中系统文件大约占用 2GB。
- 更新机制:【提示】当你升级或降级 Batocera 时,系统只会重写这个分区里的文件。这种设计让版本更迭变得异常简单,就像给电脑换个“启动盘”,而不会影响你的个人资产。
- 运行逻辑:系统启动时,它会被挂载到
-
用户数据分区(Userdata/SHARE)
这里存放着除系统核心以外的“所有东西”。它就像是你的“私人仓库”,里面装满了 BIOS 固件、游戏镜像(ROMs)、游戏存档以及你的个性化设置(包括batocera.conf)。- 核心优势:在进行版本升级或降级操作时,这个分区完全不会被触碰。
- 强大的通用性:它是为了“跨平台移植”而设计的。这意味着你可以把这个分区的数据带到任何版本的 Batocera 上使用,甚至是在不同的硬件平台之间切换。
生活化类比:这就像是你把家里的“游戏光盘”和“游戏进度卡”装进了旅行包。无论你去朋友家是用性能超强的 PC 玩,还是用小巧的单板计算机(SBC)玩,你的存档都在。当然,如果那台机器性能太弱,它还是带不动那些大型游戏的。
如何手动升级或降级 Batocera 系统
如果你需要精确控制系统的版本,除了在图形界面操作,还可以使用命令行这个“手术刀”来精准处理。
通用方法:使用命令行升级
对于 Batocera 5.23 及更高版本,最稳妥的方法是使用 SSH 远程连接(Secure Shell) 下的系统升级指令。
-
第一步:确认你的硬件架构
不同的设备(如 PC、树莓派)需要不同的安装包。你可以输入以下命令来查看你的设备该选用哪个版本:
cat /boot/boot/Batocera.board
例如:在普通电脑上,它会显示x86_64。 -
第二步:获取镜像下载地址
从官方镜像站找到你想要的版本 URL。 -
第三步:执行升级指令
使用Batocera-upgrade [下载链接]进行操作。- 示例 1(升级到最新稳定版):
Batocera-upgrade https://mirrors.o2switch.fr/Batocera/x86_64/stable/last - 示例 2(降级到特定版本,如 v36):
Batocera-upgrade https://mirrors.o2switch.fr/Batocera/x86_64/stable/36/
- 示例 1(升级到最新稳定版):
【注意】请务必确保 URL 与你的硬件架构匹配。如果你在树莓派上照抄 PC 版(x86_64)的链接,系统将无法运行。
新版特权:本地手动升级
如果你使用的是 Batocera 39 或更高版本,操作会像“把大象装进冰箱”一样简单:
- 第一步:下载升级包
在电脑上下载好对应的boot.tar.xz文件。 - 第二步:放置文件
将该文件拷贝到系统的/userdata/system/upgrade文件夹内。 - 第三步:启动手动更新
在命令行输入并回车:
Batocera-upgrade manual
生活化类比:这就像是你不再依赖餐厅的配送(自动在线更新),而是自己去超市买好了菜(下载包)放进厨房,然后告诉厨师“开火做饭”即可。
运行状态提示
当你开始执行升级时,系统会显示类似下面的进度信息,告知你正在下载的大小:
Starting the upgrade...
url: https://mirrors.o2switch.fr/Batocera/x86_64/stable/last/boot.tar.xz
need to download 1876mb
如果你在屏幕上看到类似下面的进度条,说明系统正在努力搬运数据:
/userdata/system/upgrade/boot.tar.xz 0%[ ] 9.55M 1.82MB/s eta 19m 42s
针对“骨灰级”版本的特殊指令
如果你使用的是非常古老的版本(从 Batocera 5.7 到 5.22),那么升级命令会有所不同。以 PC 平台(x86_64)为例,你需要输入的指令是:
/recalbox/scripts/recalbox-upgrade.sh https://mirrors.o2switch.fr/Batocera/x86_64/stable/last
【注意】请务必根据你的实际硬件架构(如树莓派等)更换对应的链接地址。
安全性说明:你的数据会丢吗?
当你运行这些升级或降级指令时,系统会下载一个压缩包,并将其解压到引导分区(Boot Partition),从而覆盖旧的系统文件。
生活化类比:这就像是你给家里的电脑“重装系统”,但 Batocera 的设计非常聪明,它只动“C 盘”的系统文件,而你的“D 盘”(存放在共享分区里的游戏 ROMs、存档、元数据等数据)是绝对不会被触碰的。
总之,无论你怎么折腾版本,你的游戏和进度永远是安全的。
在下次重启 Batocera 时,系统就会自动运行你刚刚安装的新版本。如果上述自动升级工具不符合你的需求,你还可以尝试下面更硬核的“纯手动”升级法。
使用本地 boot.tar.xz 文件手动升级
【警告】在 Batocera v38 及更高版本中,执行以下手动流程前请务必确认:如果 Batocera-boot.config 配置文件中开启了 autoresize=true(即取消了该行前面的注释),手动操作可能会擦除你的所有用户数据!请三思而后行。
如果你已经下载好了 boot.tar.xz 升级包,想要手动完成升级或降级,请按照以下步骤操作:
-
第一步:获取升级包
前往官方镜像站(https://mirrors.o2switch.fr/Batocera/)下载你心仪版本的boot.tar.xz文件。
【提示】如果是寻找老版本,请先进入对应的硬件架构文件夹,然后前往/stable/last/archives/路径查找。你可以参考官方提供的架构清单与构建链接。 -
第二步:备份配置文件
从 Batocera 机器中将引导配置文件(Batocera-boot.conf和config.txt)备份到安全的地方。
> 生活化类比:这就像是给你的大门配新钥匙前,先把原来的锁匠笔记存好。如果你之前为了让系统正常启动而微调过这些配置,这一步就是你的“保命符”。 -
第三步:解压素材
使用解压软件(Windows 用户推荐使用 7-zip)将boot.tar.xz解压,你会得到一个boot.tar文件。 -
第四步:覆盖安装
将boot.tar文件中的内容直接解压到 Batocera 驱动器的引导分区(Boot Partition)根目录下。
【提示】引导分区就是你把 U 盘插到 Windows 电脑上默认能看到的那个分区。如果在文件资源管理器里找不到,你可能需要进入 Windows 的“磁盘管理(Disk Management)”手动给该分区分配一个盘符。 -
第五步:还原配置
在重新启动 Batocera 之前,务必将第二步备份的配置文件放回原处,以防止你的用户数据分区(Userdata Partition)被系统意外擦除。
技术揭秘:Batocera-upgrade 命令到底做了什么?
通常情况下,系统内置的升级工具会自动帮你完成以下全套流程:
当你按下升级按钮或运行升级命令时,系统后台其实像一个有条不紊的“搬运工”,自动完成了以下繁琐的步骤:
- 第一步:下载镜像
将启动镜像文件(boot.tar.xz)精准地搬运到用户数据分区的/userdata/system/upgrade/目录下。 - 第二步:健康检查
自动校验文件的 MD5 摘要(md5sum),确保下载的文件没有在传输过程中损坏。
> 生活化类比:这就像收快递时先看一眼包装封条是否完好。根据你的硬盘速度,这个过程可能需要几秒到一两分钟。 - 第三步:解锁权限
验证通过后,将原本“只读”的引导分区重新挂载为可读写模式(Rewritable mode),准备动工。 - 第四步:建立临时备份
为了保险,系统会将当前的配置文件做一份备份(例如把Batocera-boot.conf复制一份叫.upgrade的后缀名)。 - 第五步:覆盖安装
将下载好的boot.tar.xz内容解压并覆盖到/boot/目录中。 - 第六步:还原现场
将之前备份的配置文件重新恢复为正式文件名,并清理掉多余的临时文件。 - 第七步:清空缓存
删除掉已经使用完的boot.tar.xz安装包,腾出空间。
如果提示“空间不足”怎么办?
用户数据分区(Userdata partition)空间告急
如果在尝试下载升级文件时,系统弹窗提示你空间不足,通常是由以下原因导致的:
- 你的存储设备容量太小:如果你的 U 盘或 SD 卡总容量小于 8GB,虽然系统能勉强运行,但已经没有多余的空房留给“升级包”了,你将无法使用内置的自动更新功能。
- 剩余空间不足:系统在下载
boot.tar.xz文件时,用户数据分区至少需要拥有 2GB 以上的额外可用空间。
生活化类比:这就像你想在衣柜里塞进一套超大的全身铠甲(升级包),虽然衣柜(磁盘)还没彻底塞满,但剩下的缝隙已经挤不进这个大家伙了。
【提示】如果遇到这种情况,建议删除一些不常用的游戏镜像(ROMs)或清理一下存档,腾出至少 2GB 的空间后再重试。
解决“空间不足”的进阶方案
如果你的用户数据分区(Userdata Partition)空间告急,导致无法自动升级,可以尝试以下两种“曲线救国”的方法:
- 方案一:临时腾挪
暂时删除或移动一些体积较大的游戏镜像(ROMs)、固件文件(BIOS)或其他个人数据,直到腾出足够的空间来下载boot.tar.xz升级包。 - 方案二:外援协助
在另一台电脑上下载好目标版本的boot.tar.xz文件,然后将 Batocera 驱动器连接到该电脑上,手动将boot.tar里的内容直接解压到 Batocera 的引导分区(Boot Partition)。
引导分区(Boot Partition)空间告急
如果在升级过程中,系统提示引导分区(即系统核心所在的那个小分区)空间不足,通常是由于以下原因:
- 硬件限制:你的 U 盘或 SD 卡总容量小于 8GB。虽然系统能跑,但已经没有空间完成自动升级的解压任务了。
- 旧版本的“历史遗留问题”:在 Batocera v31 及更低版本中,你上传的开机视频(Splash Video)是会被存放在引导分区的。
> 生活化类比:这就像是你的“系统仓库”被几个巨大的装修材料(视频文件)挤满了,导致新的家具(系统升级包)搬不进来。- 解决方法:删除视频文件,重启系统,然后再尝试升级。
- 分区配额太小:你最初安装的是非常老版本的 Batocera。在那个年代,系统默认给引导分区分配的空间比现在的版本要小得多。
- 系统损坏:你的安装文件可能已经损坏,导致空间计算异常。
【提示】如果是由于分区配额太小导致的,通常需要参考前文提到的“手动覆盖”法,或者备份数据后重新刷写最新版的系统镜像。
当引导分区(Boot Partition)的空间彻底告急,导致无法自动升级时,你可以从以下方案中任选其一来解决:
方案一:使用备用硬盘(推荐,最安全)
如果你手头有一个多余的 U 盘或移动硬盘,可以用它作为“中转站”。
- 第一步:制作新系统
在备用驱动器上刷入一个全新版本的 Batocera 系统。 - 第二步:数据大搬迁
启动新系统,并将旧驱动器中 共享分区(Share) 下的所有用户数据(Userdata)全部拷贝到新驱动器的对应位置。 - 第三步:彻底翻新旧驱动器
数据迁移完成后,你可以直接使用这个新驱动器;或者把旧驱动器重新刷入新版系统,再把数据搬回去。
方案二:彻底重刷系统
如果你不想折腾两个硬盘,也可以直接在原盘上“推倒重来”。
- 第一步:数据备份
将你的用户数据(Userdata)备份到其他设备(如电脑或 NAS)。 - 第二步:重新刷机
对驱动器重新进行 系统刷写(Reflash),直接安装最新版。
【注意】通过这种方式备份数据,可能会丢失文件的权限属性(File attributes)。这可能会导致 WINE 环境(WINE) 或 Cemu 模拟器(Cemu) 在运行时出现兼容性问题。
方案三:手动扩展引导分区
生活化类比:这就好比你觉得家里的厨房(引导分区)太小放不下新冰箱,于是决定把隔壁卧室(用户数据分区)的墙往后挪一挪,强行给厨房扩容。
【提示】这是一个比较硬核的操作,需要通过专门的磁盘管理工具手动调整分区的大小,建议有一定技术基础的用户尝试。
如果你决定采取手动扩容这一硬核方案,请务必谨慎操作:
- 第一步:全面备份数据
在动工之前,请将所有的游戏镜像、存档以及配置文件备份到安全的地方。 - 第二步:使用专业工具扩容
使用 GParted 磁盘管理器(GParted) 或 GNOME 磁盘工具(GNOME Disks) 等高级工具来强行拉伸引导分区的空间。
【注意】这是一个“拆迁式”的调整。这种操作极大概率会摧毁你的用户数据分区(Userdata Partition),甚至可能破坏 主引导记录(MBR) 或 GUID 分区表(GPT),导致驱动器彻底无法启动。
生活化类比:这就像是在承重墙上动土。虽然理论上能把厨房(引导分区)扩大,但一不小心可能整栋楼(磁盘分区表)都会塌掉。
【提示】如果你使用的是 Batocera v30,引导分区至少需要分配 6GB 的总空间,且用户数据分区需保留 2GB 的剩余空间,才能正常使用系统内置的自动更新功能。如果风险太高,请考虑维持现状或选择其他方案。
方案四:借用另一台电脑手动更新
如果你不想冒着丢数据的风险去调整分区,也可以借用另一台电脑来充当“中转站”。
- 第一步:连接驱动器
将你的 Batocera 驱动器(U 盘或存储卡)插入另一台运行 Windows 或其他系统的电脑。 - 第二步:备份引导内容
在电脑中找到那个 FAT32 格式的引导分区(在 Windows 下默认只能看到这一个分区),将其中的所有内容拷贝并备份到电脑的本地文件夹中。
【注意】采用这种方法虽然安全,但这意味着以后每次系统更新时,你都需要重复这一套手动解压和覆盖的繁琐操作。
-
第三步:腾出系统空间
在你的 Batocera 驱动器中找到名为batocera的文件(这个文件没有扩展名,大小约为 2GB,旧版本可能稍小),并将其彻底删除。【注意】请务必确保是“永久删除”而非放入回收站。在大多数系统中,你可以先选中该文件,然后按下 [Shift] + [Delete] 键。删除后,请检查磁盘剩余空间是否显著增加。
生活化类比:这就像是你要换一套大沙发,必须先把旧沙发彻底扔出屋子,而不是把它塞进门口的垃圾箱,否则新沙发还是搬不进来。
-
第四步:解压新系统文件
将你之前准备好的boot.tar压缩包解压到该分区的根目录下。
【提示】解压时,请不要覆盖或包含batocera-boot.conf文件,以免丢失你的个性化设置。解压完成后,你应该能在引导文件夹中看到一个名为batocera.update的文件,这标志着传输已成功。 -
第五步:插回设备并启动
将驱动器从电脑上拔出,重新插回你的 Batocera 机器并开机。
【提示】如果系统无法正常启动,别担心,你可以将第二步中备份的引导分区旧文件还原回去。
进阶方案:先卸载旧版再升级
如果空间实在局促,你可以选择手动“除旧迎新”,即先删掉旧版本再进行更新。
【注意】一旦采用此方法,意味着以后每次系统更新时,你可能都需要手动执行这一流程。
-
第一步:获取系统读写权限
正常启动 Batocera,通过 SSH 远程连接(Secure Shell) 或进入桌面模式打开 终端模拟器(xterm),输入并运行以下命令:
mount -o remount,rw /boot
> 生活化类比:这就像是给一直锁着的“系统保险柜”换上了一把可以自由开启的钥匙,这样我们才能对里面的文件进行修改。 -
第二步:备份核心系统文件
为了安全起见,先给旧系统留个底。你可以运行以下命令:
cp /boot/boot/Batocera /userdata/system/Batocera-backup
(或者按下Alt+F4退出终端,直接在文件管理器里把/boot/boot/Batocera文件复制到/userdata/system/文件夹下。) -
第三步:删除并启动升级
运行以下组合命令,先删掉旧的系统包,随后立即触发升级程序:
rm -i /boot/boot/Batocera && Batocera-upgrade
运行后,系统会询问你是否确认删除,输入y确认即可。 -
第四步:等待并重启
此时你会看到类似下方的进度输出:
Starting the upgrade...
url: https://mirrors.o2switch.fr/Batocera/x86_64/beta/last/boot.tar.xz
need to download 1876mb
m/upgrade/boot.tar.xz 0%[ ] 9.55M 1.82MB/s eta 19m 42s
耐心等待升级彻底完成,随后重新启动设备即可应用新版本。
系统救砖:如何恢复备份
如果升级后发现 Batocera 无法正常启动,请不要慌张。由于我们在之前已经预留了“后悔药”,你可以通过以下步骤将系统还原到之前的状态:
- 操作步骤:一键还原系统
进入命令行环境,运行以下命令(如果你之前将备份存放在了其他位置,请相应修改命令中的第一个路径):
cp /userdata/system/Batocera-backup /boot/boot/Batocera && rm /userdata/system/Batocera-backup
生活化类比:这就像是你在装修新房失败后,把自己之前打包存放在仓库里的旧家具又搬回了原处。这条命令会把备份的旧系统文件“搬回”引导区,并顺手清理掉备份文件以节省空间。
原文: 手动升级/降级Batocera • 翻译: DIY8 Bot



暂无评论内容