Ubuntu 迁移 Batocera SHARE 完整极简教程(保留原有 ROMS、新增 saves 目录、可直接套用模板)
前提说明
- 旧盘:正常能用 NTFS 盘 记作SHARE_OLD
- 新盘:Btrfs 盘,已手动清空所有文件夹 只保留 roms
- 两块硬盘都插在 Ubuntu 电脑上
第一步:查看自己的硬盘盘符
打开 Ubuntu 终端,输入:
===【ls /media/$USER/ 】=============
ls /media/$USER/
执行后会列出所有挂载硬盘名称,例如:
- 旧 NTFS 盘盘符:SHARE2(对应模板SHARE_OLD)
- 新 Btrfs 盘盘符:SHARE1(对应模板SHARE_NEW)
记住你自己这两个盘符,后面只需要替换这两个名字就行。
第二步:通用模板公式(固定不变,以后永久套用)
1. 同步核心目录命令(含新增 saves 游戏存档目录)
====【sudo rsync -aAXvh --delete /media/$USER/SHARE_OLD/{system,bios,emulators,configs,saves} /media/$USER/SHARE_NEW/ 】====================
sudo rsync -aAXvh --delete /media/$USER/SHARE_OLD/{system,bios,emulators,configs,saves} /media/$USER/SHARE_NEW/
2. 权限修复固定命令
====【sudo chown -R 1000:1000 /media/$USER/SHARE_NEW/ 】====================
sudo chown -R 1000:1000 /media/$USER/SHARE_NEW/
第三步:你的实际实例(已按你盘符写好,直接复制就能用)
你的实际盘符:
- SHARE_OLD =SHARE2(旧 NTFS 盘)
- SHARE_NEW =SHARE1(新 Btrfs 盘)
实例第一条:同步系统 + BIOS + 模拟器 + 配置 + 游戏存档
直接整行复制粘贴运行:
====【sudo rsync -aAXvh --delete /media/$USER/SHARE2/{system,bios,emulators,configs,saves} /media/$USER/SHARE1/ 】====================
sudo rsync -aAXvh --delete /media/$USER/SHARE2/{system,bios,emulators,configs,saves} /media/$USER/SHARE1/
实例第二条:修复权限(必须运行)
直接整行复制粘贴运行:
====【sudo chown -R 1000:1000 /media/$USER/SHARE1/ 】====================
sudo chown -R 1000:1000 /media/$USER/SHARE1/
替换使用规则(以后换硬盘自己改就行)
-
只改两个地方:
- 把SHARE_OLD换成 你自己旧 NTFS 的盘符
- 把SHARE_NEW换成 你自己新 Btrfs 的盘符
- 大括号里:system,bios,emulators,configs,saves不用改、别动
- 整条命令除了两个盘符名字,其他一个字符都不要改
第四步:操作收尾
- 等两条命令全部跑完,终端无报错
- Ubuntu 里右键两个硬盘 → 安全移除
- 把 SHARE1(Btrfs 盘) 插回 Batocera 主机
- 开机直接进系统,模拟器、Switch、游戏存档全部正常,原有 roms 完全保留没被覆盖。
===============分割线:下面的可以直接忽略不看================================================
超详细一步一步操作流程(Ubuntu 下直接照做,不用格式化、保留原有 roms)
前提
- 两个硬盘都插 Ubuntu:
- 旧盘:正常能用的 NTFS SHARE 盘
- 新盘:Btrfs 盘,已经只保留 roms 文件夹,其他全部删干净了
- 现在什么都别点,直接打开 Ubuntu 终端
第一步:查看两个盘的挂载名称
=====【ls /media/$USER/】=============================================
=====【ls /media/$USER/】===========
回车你会看到两个盘名字,举例比如:
- NTFS 旧盘名字:SHARE_NTFS
- Btrfs 新盘名字:SHARE_BTRFS
记好这两个名字,后面要用到。
---------------------------------------------------
ubunto@ubunto-desktop:~$ ls /media/$USER/
BATOCERA BATOCERA1 LEROMS1 SHARE SHARE1 SHARE11 SHARE2 SHARESS
新盘-Btrfs: '/media/ubunto/SHARE1/'
旧盘-NTFS:’/media/ubunto/SHARE2/‘
========================================
第二步:只同步必须的核心目录(不碰你已有的 roms)
原理:只拷贝 =【system bios emulators saves】 配置,完全不覆盖你现存的 roms
通用模板命令(你只需要把后面两个盘名换成你自己的):
=====【sudo rsync -aAXvh --delete /media/ubunto/SHARE2/{system,bios,emulators,configs} /media/ubunto/SHARE1/ 】=============================================
==【sudo rsync -aAXvh --delete \ /media/$USER/这里填你的NTFS盘名/{system,bios,emulators,configs} \ /media/$USER/这里填你的Btrfs盘名/】===================================
举个现成例子(你照着改名字就行)
比如你 NTFS 盘叫ShareOld,Btrfs 盘叫ShareNew那命令就是:
=====【sudo chown -R 1000:1000 /media/ubunto/SHARE1/ 】=============================================
=====【sudo chown -R 1000:1000 /media/ubunto/SHARE1/ 】=============================================
====【sudo rsync -aAXvh --delete \ /media/$USER/ShareOld/{system,bios,emulators,configs,saves} \ /media/$USER/ShareNew/】====
直接复制改下两个盘名,粘贴到终端回车,输入你的 Ubuntu 密码,开始跑拷贝。
第三步:拷贝完 必须修一次权限(关键)
依旧替换成你自己的 Btrfs 盘名,执行:
===【sudo chown -R 1000:1000 /media/ubunto/SHARE1/ 】=====================
=======公式===【sudo chown -R 1000:1000 /media/$USER/ShareNew/】================== =====【】=============================================
把ShareNew换成你自己 Btrfs 的名字。
第四步:结束操作
- 终端没报错、拷贝跑完
- Ubuntu 里右键两个硬盘 → 安全移除
- 把这块 Btrfs 盘 插回 Batocera 机器
- 直接开机,所有模拟器、Switch 直接正常用,原有 roms 一个都没动
重点给你强调一遍
- 这个操作只拷系统关键文件,绝不碰你留好的 roms
- 不用格式化、不用全盘重拷、不用 tar 备份
- rsync 参数自带保留:权限、真实软链接、元数据,迁到 Btrfs 不会坏
- 最后那条 chown 权限命令必须跑,不然模拟器有权限问题
你把第一步ls /media/$USER/
==================================================================
====
修正、检查、给你最终正确、能直接复制粘贴运行的命令!你原来的命令路径写错了,多了一层/media/$USER,所以会报错、跑不起来。
最终正确命令(你直接复制用,一字不改)
1. 同步核心系统文件(不碰你的 roms)
=====【sudo rsync -aAXvh --delete /media/ubunto/SHARE2/{system,bios,emulators
,configs,saves} /media/ubunto/SHARE1/ 】=============================================
=====【sudo rsync -aAXvh --delete /media/ubunto/SHARE2/{system,bios,emulators,saves,configs} /media/ubunto/SHARE1/】=============
2. 修复权限(必运行)
=====【sudo chown -R 1000:1000 /media/ubunto/SHARE1/ 】=============================================
==【】======================== ====【sudo chown -R 1000:1000 /media/ubunto/SHARE1/】==========
我帮你对比你原来错在哪
你原来写的:
plaintext
sudo rsync -aAXvh --delete \ /media/$USER/media/ubunto/SHARE2/...
错误:
- *多了斜杠 * → 会炸
- 路径重复了:/media/$USER/media/ubunto/是错的
- 正确路径只有一层:/media/ubunto/你的盘
最终确认
你的盘:
- 旧 NTFS(正常能用):/media/ubunto/SHARE2/
- 新 Btrfs(只留 roms):/media/ubunto/SHARE1/
最终正确两条命令(直接复制运行)
第一条:
=====【sudo rsync -aAXvh --delete /media/ubunto/SHARE2/{system,bios,emulators,configs} /media/ubunto/SHARE1/ 】=============================================
==【sudo rsync -aAXvh --delete /media/ubunto/SHARE2/{system,bios,emulators,configs} /media/ubunto/SHARE1/】==============
==========================================================
第二条:
==========================================================================
第二条:
=====【sudo chown -R 1000:1000 /media/ubunto/SHARE1/ 】=============================================
==========================================================================
====【sudo chown -R 1000:1000 /media/ubunto/SHARE1/】==============
====================================================================
====================================================================
运行完 → 安全弹出 → 插回 Batocera → Switch 直接能玩,Btrfs 完美正常
=====================