实时 USB 创建方法

实时 USB 创建方法

我们的客户需要创建一个实时 USB Linux 系统(基于 Debian/Ubuntu),并将其分发到 USB 记忆棒上。

我在这里看到两种方法:

  1. 基于“工厂”的方法。使用 Debian/Ubuntu 工具(现场助手) 使用某些配置创建 USB 映像,然后将该映像刻录到多个 USB 上。
  2. 基于“原型”的方法。在 USB 上安装系统、更新、调整并进行克隆。

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

+它清楚地将您的更改/调整/自定义包/文件与基础系统区分开。您可以轻松概览对基础系统所做的更改。这应该可以简化将基础系统升级到较新版本的过程。

+由于目标系统无需从“内部”进行更新,因此目标分区布局的选择范围更广(例如,根文件系统可以打包为 squashfs 映像)(*)。此外,稍后可以通过更改配置轻松更改选择。

-它需要特定的主机 Linux 系统来创建映像。此外,主机系统的版本应该是固定的,因为工具在更高版本中可能会损坏/不兼容。虽然可以通过使用虚拟化来减轻这个缺点(例如,我们可以为该主机系统提供 VMWare 映像)。

-要做出改变,就需要了解这些工具是如何运作的。

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

++对实时系统进行更改更简单。您只需启动它并进行一些更改(安装软件包、更新配置文件等)。您不需要主机 Linux 系统来创建映像。您不需要了解这些映像创建工具是如何工作的。

-在某些时间点,将核心系统与所做的更改分开将会很困难。

-使系统可从“内部”更新会减少目标分区布局的选项 (*)。选择以后更难更改。


作为软件开发人员,我更喜欢第一种方法。尽管我认为另一种方法的优点也很重要。

您觉得如何?我还遗漏了其他优点/缺点吗?

(*) 这对于 USB/稳健性/安全性要求(制作 R/O 分区、将文件系统树的部分放置到 RAM 分区上等)非常重要。

答案1

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

答案2

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

然而,在项目开始时,您可能没有时间进行设置。

相关内容