少于 1 分钟阅读 次阅读

作为系统适配人员,为了能够成功修改底层系统并打包出可批量烧录的 overlayroot 根文件系统,你需要根据不同的修改场景,参考对应的指南文件。以下是具体的操作路径与规范:

1. 场景一:仅需命令行操作(如代码修改、包管理)

如果你只需要通过终端使用 apt 更新软件、修改网络配置或编辑脚本文本,请参考:《overlayroot 直接修改底层文件指南 —— 仅限命令行》

  • 核心操作:在终端执行 sudo overlayroot-chroot 命令,系统会临时解锁物理底层并进入纯净的底包隔离环境。
  • 落盘要求:修改完成后,必须执行 exit 退出环境,并使用 sync 强制同步数据,以确保底层被重新锁死为只读状态。
  • 局限性:该方法仅在当前命令行生效,对 MobaXterm 的 SFTP 传输无效。

2. 场景二:需要外部传文件(如 MobaXterm SFTP)

如果你需要将宿主机上的文件直接传输并替换到底层系统中,请参考:《overlayroot 如何使用 MobaXTerm 的 sftp 功能修改底层根文件系统或传输文件》

  • 独立进程问题:MobaXterm 的 SFTP 窗口是独立的进程,无法感知终端中的 chroot 操作,直接拖拽文件会默认写入表层的 userdata
  • 核心操作:需要在普通终端先手动全局解锁底包(sudo mount -o remount,rw /media/root-ro),然后在 SFTP 侧精确导航到真实的底包挂载点 /media/root-ro/ 内的对应目录进行文件拖拽。
  • 落盘要求:传输结束后,需在终端执行 sync 并重新挂载底包为只读保护(ro)模式。

3. 场景三:桌面级复杂修改(如 GUI 配置、大面积改动)

如果修改操作在命令行下难以实现(例如在桌面上进行了复杂的系统设置),需要全量合并底层,请参考:《overlayroot 顶层同步到底层指南》

  • 防坑警告:千万不要直接将 /media/root-rw/overlay/ 里的文件拷贝到 /media/root-ro/,这不仅无法删除底层原文件,还会把 OverlayFS 产生的“Whiteout(涂改液)”占位文件错误地硬塞进底包中。
  • 核心操作:需要采用反向全量同步法,在解锁底包后,使用带 -x 参数的 rsync 命令,避开虚拟文件系统,将系统当前正在运行的合并视角(/)直接克隆给底层。
  • 落盘要求:同步完成后,必须清空表层数据(rm -rf /media/root-rw/overlay/*),执行 sync 落盘并重启设备。

4. 最终步骤:系统打包

当完成上述任意一种场景的底层修改,且确认数据成功落盘、底包已恢复只读状态后,即可开始提取并打包根文件系统。

  • 打包工具与分支要求:请务必使用专门针对 overlayroot 机制适配的打包脚本,代码仓库地址为: https://github.com/Witheart/hw_export_rootfs/tree/overlayroot (注意:必须切换到 overlayroot 分支运行脚本以确保打包逻辑正确)

留下评论