我有一个自定义的Linux文件系统,在根文件系统中有一些二进制文件和新文件夹。这个Linux文件系统是为小型计算机创建的。
目前,我将自定义文件系统的根文件夹压缩为tar.gz文件。有了这个tar.gz文件,我可以分享给我的朋友。然后必须将此文件解压缩到SD卡。使用此方法,他们还可以更新库或二进制文件以进行测试。 但是,这种机制(创建和部署)需要花费很多时间。
我的问题是: 1.如何改进创建和部署自定义linux映像? 2.如果我看到linux发行版,它们使用.iso或.img格式。使用.iso或.img而不是tar.gz或zip文件的原因是什么?
感谢。
答案 0 :(得分:1)
尽可能自动化。你甚至可以设置一个Jenkins server,它应该能够自动化任何看起来像重复性工作的东西。 (编辑,压缩,上传或将图像发送给朋友)
使用所有核心压缩图像。 AFAIK gzip
仅使用一个核心。 pigz
应该更快地压缩/解压缩
这是实时节省的,因为您不再需要将rootfs复制到SD卡了:
如果您的引导加载程序支持它,请使用nfs / tftp boot。然后,您的主板直接从网络安装而不是SD卡启动。我不知道你使用哪个引导加载程序,但u-boot支持它,其他人可能也支持它。
答案 1 :(得分:0)
这取决于究竟需要更新的内容。如果这是整个文件系统总是在变化 - 那么只需分发压缩的img(例如xz)。如果这是系统的一小部分 - 只需使用包管理器,即将该部分提取到包中,接下来使用标准发行版工具创建这个新包并仅分发它。
因此,如果您的SD卡图像具有固定大小 - 您可以使用rsync / xdelta仅分发更改,但它们的效率取决于确切的更改百分比。