2026/1/26 12:07:21
网站建设
项目流程
中国建设报社门户网站,国家企业信用信息公示系统广东,购物网站建设思路,国家最新房地产政策RK3588的镜像提取备份#xff08;根文件系统#xff09;
#xff08;1#xff09;缘起
鉴于同一 SDK 构建下的 Buildroot 和 Debian 系统共享相同的底层引导#xff08;U-Boot#xff09;与内核镜像#xff0c;两者的核心差异仅在于根文件系统#xff08;Rootfs…RK3588的镜像提取备份根文件系统1缘起鉴于同一 SDK 构建下的 Buildroot 和 Debian 系统共享相同的底层引导U-Boot与内核镜像两者的核心差异仅在于根文件系统Rootfs。由于我的 Debian 系统中已经部署了复杂的开发环境并安装了很多应用为了避免后续刷机时重复配置的繁琐工作我决定对当前的根文件系统进行完整备份。2RKDevTool导出镜像失败瑞芯微的烧录工具有个导出镜像的功能需要输入起始扇区和扇区数这个信息可以parameter.txt文件里查看他预留了14GB给rootfs输入rootfs的起始扇区和扇区数并导出镜像显示导出失败怀疑时这个软件的问题换了个最新版的软件镜像导出来了但是明显不对很多重复数据一压缩直接变成14MB显然不对3基于网络的文件备份①开发板和虚拟机都需要配置好SSH,并且安装好rsync后面的操作都是再虚拟机上操作的②新建一个同步文件夹mkdirrootfs_copy③创建~/.ssh/config 文件vim~/.ssh/config在文件中输入UserKnownHostsFile ~/.ssh/known_hosts④将当前开发板上的文件系统同步到虚拟机rootfs_copy文件夹sudorsync-avxroot开发板ip:/ rootfs_copy⑤生成一个镜像文件在这之前需要知道这个rootfs大约多大和开发板的UUID保证备份的系统一模一样在开发板中断输入以下指令查看df-hblkid需要创建一个比7.4G 大的文件,就给 10GB 吧稳妥一点在虚拟机输入以下指令ddif/dev/zeroofrootfs.imgbs1Mcount10240⑥格式化并写入 UUID使用 mkfs.ext4工具将 rootfs.img文件格式化为 ext4文件系统并且设置卷标为 linuxrootsudomkfs.ext4-F-Llinuxroot-UUUIDrootfs.img⑦挂载并复制文件# 创建挂载点mkdirrootfs-mount# 挂载刚才做好的空镜像sudomountrootfs.img rootfs-mount#rootfs_copy 是用 rsync 拉下来的那个文件夹路径sudocp-rfprootfs_copy/* rootfs-mount/# 卸载镜像sudoumountrootfs-mount⑧体检一下sudoe2fsck-p-frootfs.img经过这一套成功把根文件系统镜像给备份烧入这个备份的根文件系统系统正常运行与原系统相同非常感谢这个教程【立创·泰山派RK3566开发板】板载系统镜像提取 | 立创开发板技术文档中心4思考起初我有一个误区认为 /dev 里的设备文件和普通文件一样需要完整拷贝但我有想到这个不应该是从boot文件的设备树里面来的吗又认为它是内核生成的所以根本不需要备份。实际上通过使用 rsync -avx利用 -x参数不跨越分区的特性成功过滤掉了 /dev 中动态生成的虚拟文件只保留了文件夹本身。这个空的 /dev 目录至关重要如果没有它内核启动时就找不到地方放硬件设备挂载 devtmpfs从而导致 Kernel Panic。