解决现场USB创build问题

我们的客户需要创build一个实时的USB Linux系统(基于Debian / Ubuntu),这个系统将被分配到U盘上。

我在这里看到两种方法:

  1. “工厂”为基础的方法。 使用从某些configuration创buildUSB映像的Debian / Ubuntu工具( live-helper ),然后将映像刻录到多个USB上。
  2. “原型”为基础的方法。 在USB上安装系统,进行更新,调整并制作克隆。

第一种方法有以下优缺点:

+它清楚地分离你的改变/调整/自定义软件包/文件从基础系统。 您可以轻松地概览对基本系统进行了哪些更改。 这应该简化升级基础系统到最近。

+由于目标系统不需要从“内部”进行更新,所以目标分区布局的select更为广泛(例如,根文件系统可以打包为squashfs图像)(*)。 而且,通过更改configuration,以后可以轻松更改select。

它需要特定的主机Linux系统来创build图像。 而且,主机系统的版本应该是固定的,因为这些工具可能在以后的版本中被破坏/不兼容。 虽然这个减号可以通过使用虚拟化来缓解(例如,我们可以提供VMWare映像到这个主机系统)。

要进行更改,需要了解这些工具的工作方式。

第二种方法,“原型”基于以下属性:

++更改现场系统更简单。 你只需要启动它并做一些改变(安装软件包,更新configuration文件等)。 您不需要主机Linux系统来创build映像。 您不需要了解这些图像创build工具的工作方式。

在某些时候,核心系统和所做的改变是很难分开的。

从“内部”使系统更新可以减less目标分区布局(*)的选项。 之后的select很难改变。


作为软件开发人员,我更喜欢第一种方法。 虽然我认为其他方法的好处是相当重要的。

你怎么看? 还有其他的优点和缺点吗?

(*)由于USB /健壮性/安全性要求(使得R / O分区,将文件系统树的部分放置在RAM分区等上),这是重要的。

用于实时USB启动的实时debian发行版实际上是可以更新的。 你可以安装新的软件包和更新的东西。 然后,您将需要运行一个脚本来获取新变化的“快照”。 这个快照可以保存到同一个USB驱动器中。 在下一次启动时,快照可以通过指定内核启动参数或在用户空间IIRC中完成。 你需要查看debian-live了解更多信息。

还有第三个答案,那就是使用像Linux From Scratch(LFS)这样的工具集来制作你自己的“发行版”。 这使您可以制作自己的发行版,您可以轻松维护,进行个别更改并滚动更新。

然而,在项目开始之前,您可能还需要一些时间来设置。