Ubuntu 全自动采集batocera文件权限生成脚本

Ubuntu 全自动采集batocera文件权限生成脚本

全套 3 个成品文件,直接复制即用,不用改任何东西

第一个:Ubuntu 全自动采集生成脚本

作用:自动扫描 Batocera 整个盘,不硬编目录、不固定 755/777,原汁原味记录所有文件权限、归属、Btrfs 属性,自动生成修复脚本。新建文件命名:gen_bato_fix.sh,粘贴下面全部:
bash
运行
#!/bin/bash # 配置项:只改这里挂载路径即可 MNT_BATO="/mnt/batocera/userdata" OUT_SCRIPT="/home/ubunto/batocera_auto_full_fix.sh" # 初始化修复脚本 echo '#!/bin/bash' > "$OUT_SCRIPT" echo 'set +e' >> "$OUT_SCRIPT" echo 'exec >/dev/null 2>&1' >> "$OUT_SCRIPT" echo "" >> "$OUT_SCRIPT" # 遍历所有文件目录,复刻原始归属+原始权限 find "$MNT_BATO" -print0 | while IFS= read -r -d '' file do bato_path="${file#/mnt/batocera}" owner_group=$(stat -c "%U:%G" "$file") mode=$(stat -c "%a" "$file") echo "chown -R $owner_group $bato_path" >> "$OUT_SCRIPT" echo "chmod -R $mode $bato_path" >> "$OUT_SCRIPT" done # 自动只给Btrfs目录修复属性,Ext4自动跳过 echo "" >> "$OUT_SCRIPT" echo "# 自动修复Btrfs压缩与ACL" >> "$OUT_SCRIPT" find "$MNT_BATO" -type d -fstype btrfs -print0 | while IFS= read -r -d '' dir do bato_dir="${dir#/mnt/batocera}" echo "btrfs property set $bato_dir compression lzo 2>/dev/null" >> "$OUT_SCRIPT" echo "btrfs property set $bato_dir acltype off 2>/dev/null" >> "$OUT_SCRIPT" done # 保存Batocera配置 echo "" >> "$OUT_SCRIPT" echo "batocera-save-overlay 2>/dev/null" >> "$OUT_SCRIPT" echo "exit 0" >> "$OUT_SCRIPT" # 加执行权限 chmod +x "$OUT_SCRIPT" echo "✅ 采集完成!修复脚本已生成:$OUT_SCRIPT" 
赋予运行权限(Ubuntu 终端):
bash
运行
chmod +x gen_bato_fix.sh
使用命令:
bash
运行
./gen_bato_fix.sh

第二个:Batocera 开机自启配置 custom.sh

作用:检测脚本是否存在、有无执行权限,找不到直接跳过,绝不卡开机。路径:/userdata/system/custom.sh直接粘贴全文:
bash
运行
#!/bin/bash # Batocera开机容错自动权限修复 FIX_SCRIPT="/userdata/system/batocera_auto_full_fix.sh" # 只有文件存在+有执行权限才运行,否则直接跳过 if [ -f "$FIX_SCRIPT" ] && [ -x "$FIX_SCRIPT" ]; then bash "$FIX_SCRIPT" fi 
保存后加权限:
bash
运行
chmod +x /userdata/system/custom.sh

完整操作流程(照着做一次永久完工)

  1. Batocera 硬盘插 Ubuntu,执行挂载:
bash
运行
sudo mkdir -p /mnt/batocera sudo mount -t btrfs /dev/sdXX /mnt/batocera
  1. 确保当前 Batocera 游戏能正常打开、权限完好
  2. 运行采集脚本:./gen_bato_fix.sh;
  3. 把生成好的batocera_auto_full_fix.sh传到 Batocera:
    放到路径/userdata/system/
  4. 在 Batocera 给脚本加权限:
bash
运行
chmod +x /userdata/system/batocera_auto_full_fix.sh
  1. 以后随便在 Ubuntu 全速拷游戏、改文件夹名、新增模拟器,只要权限正常时重新跑一遍采集脚本即可,不用改任何代码。

核心优势

  • 不固定 yuzu/ryujinx 路径,随便改名都能识别;
  • 不凭经验写 755/777,原权限原样复刻
  • Batocera 开机容错,丢了脚本也不卡机;
  • 可在 Ubuntu / Parrot Solaris / Batocera 任意 Linux 手动运行,双重兜底。










刀神道一奶-商品自动发货系统

联系我们 订单查询