batocera吧 关注:18,832贴子:38,755
  • 8回复贴,共1

三分区的实现原理(技术贴)

只看楼主收藏回复

相关的官网文档为
File Management-> Using External Storage with Batocera ->Manual configuration with batocera-boot.conf (advanced)

File Management->Use a NAS->Syntax

在官网文档中指出了Share分区的目录挂载除了NAS的网络挂载形式,还有一种本地化的挂载。挂载的目录不限于roms,也列出了其他目录,考虑挂载的分区的兼容性,推荐使用exFAT格式作为第三分区,同时支持Windows和Batocera下的编辑。NTFS格式挂在后Batocera里不可编辑,EXT4格式在windows下不编辑。
核心要素为修改BATOCERA分区的batocera-boot.conf文件
如果要挂载roms目录出去只需只需把原本的
sharedevice=INTERNAL
修改为
sharedevice=DEVICES
sharedevice_part1=ROMS@UUID:/roms
其中的UUID为分区的UUID,然后重启即可
要实现最终的这一步有两个前置条件
可以通过命令行工具来完成

1.在Batocera系统启动后batocera-boot,conf是只读可以通过命令行 “mount -o remount,rw /boot” 实现可读写
2.UUID的获取,可以通过命令行“ echo |blkid|grep 分区名 > /userdata/UUID.txt " 把对应的分区信息输出到Share盘的根目录的UUID.txt文件里。
由于是靠分区名获取,所以分区名不能重复。但分区里可以同时挂载多个目录。比如 \roms,\saves,\bios。你可以把这些目录当作文件中转站来使用,比如把EXT4分区里的文件复制到exFat的关联目录里,windows下就可以通过该目录拿到文件,反过来同理。
至此所有实现要素都已齐全,可还是不够简便,每次都要通过命令行输出太麻烦。于是我建立了两个双击可执行的脚本文件来替代输入命令行的操作。文件建立后还需要通过命令行赋予文件可以执行的权限。
chmod +x RW-BOOT.sh
chmod +x EXTROMS-UUID.sh

RW-BOOT.sh

EXTROMS-UUID.sh 此处的分区名指定为 EXTROMS

EXTROMS-UUID.sh执行后生成的UUID.txt文件

只需要复制生成的UUID.txt文件里UUID 替换 batocera-boot.conf 配置的对应位置里即可。


IP属地:广东1楼2024-03-22 11:44回复
    支持


    IP属地:山东来自Android客户端2楼2024-03-22 13:51
    回复
      新手刚入坑,学习学习。


      IP属地:湖北来自Android客户端3楼2024-03-22 14:00
      回复
        方便


        IP属地:河北来自Android客户端4楼2024-03-22 15:01
        回复
          感谢大佬分享。有时间试试去!


          IP属地:北京来自Android客户端6楼2024-04-16 07:43
          回复
            请问我用这个方法做好卡后,然后做IMG给朋友,他然后恢复到自己的TF卡上,也是可以用的吗?


            IP属地:上海7楼2024-04-30 13:53
            收起回复
              直接NTFS作为游戏盘啊,windows下就能直接使用了啊,没懂为啥这么麻烦。把安装包解压,2部分,把其中rom的部分放到NTFS分区下,设置一下UUID就好了。emuelec也是这么玩的


              IP属地:江西8楼2024-05-05 18:17
              收起回复