Linux系统实现OTA功能第一步---导出当前运行系统的镜像(debian文件系统)

Linux系统实现OTA功能第一步---导出当前运行系统的镜像(debian文件系统)
直接对运行中的根分区使用 dd 命令是不推荐的因为系统在不断写入这样得到的镜像文件系统可能是不一致的导致无法启动。更稳妥的方法是采用 “文件级同步 镜像打包” 的策略。具体步骤如下准备一个“干净”的镜像文件dd 直接复制整个分区会包含大量空闲空间导致镜像臃肿。我们可以创建一个大小适中的空文件作为镜像载体。创建一个10GB的空文件作为镜像大小根据你的实际使用量调整truncate -s 10G my_rootfs.img将其格式化为ext4文件系统mkfs.ext4 my_rootfs.img这一步执行后my_rootfs.img 就是一个可以被挂载的“虚拟磁盘”了。挂载镜像文件并同步系统文件将镜像文件挂载到临时目录然后使用 rsync 将当前系统文件同步进去。创建挂载点mkdir /mnt/my_rootfs挂载镜像文件mount -o loop my_rootfs.img /mnt/my_rootfs使用rsync同步根文件系统排除不需要的虚拟和临时目录rsync -aAXv /* /mnt/my_rootfs/ --exclude{/proc/,/sys/,/dev/,/run/,/mnt/,/media/,/lostfound,/tmp/*}-a归档模式保留权限、时间戳等。-A保留ACL信息。-X保留扩展属性。排除的目录是系统运行时动态生成的不需要包含在镜像中。卸载并收尾同步完成后卸载镜像。umount /mnt/my_rootfs此时my_rootfs.img 就是你当前系统的完整镜像文件了。可以将它拷贝到安全的地方保存。

最新新闻

日新闻

周新闻

月新闻