- 项目地址:Github

简介
Penguins' Eggs 是一个基于命令行(CLI)的配置工具,由意大利开发者 Piero Proietti 开发。它使用 TypeScript 编写(基于 Node.js),其核心功能是:将你当前正在运行的 Linux 系统“重制”(Remaster)为一个可引导的 Live ISO 镜像。
简单来说,它可以把你当前系统里的所有软件、配置、甚至个人数据(可选)打包成一个安装盘,你可以用这个安装盘在其他机器上部署出一模一样的系统。它支持多种架构(x86_64, i386, arm64 等)以及主流的 Linux 发行版。
能做什么?
- 系统克隆 (System Cloning): 捕捉当前系统的快照,生成一个 ISO 镜像。这包括你安装的内核、驱动、桌面环境和应用程序。
- 制作定制化发行版: 开发者可以用它来制作基于 Debian/Ubuntu/Arch 的个性化衍生版。
- 安装器集成: 生成的 ISO 镜像可以使用 Calamares(现代化的图形安装器)或其内置的 krill(简易文本安装器)重新安装到硬盘。
- “衣橱”功能 (Wardrobe): 这是该项目的一大特色。它允许用户通过脚本和配置文件(称为 components 和 costumes)自动化地定制系统(如安装特定的办公套件、开发环境或主题)。
- 支持多种发行版: 极广的兼容性,包括 Debian, Devuan, Ubuntu, Arch Linux, Manjaro, Rocky Linux, AlmaLinux 等。
- 压缩选项: 支持多种压缩算法(xz, zstd, gzip),允许在镜像大小和生成速度之间取得平衡。
产品对比
Penguins' Eggs 的优势
- 跨发行版支持: 相比于很多只针对 Ubuntu 或只针对 Debian 的工具,penguins-eggs 几乎覆盖了主流的 Linux 家族,这在同类工具中非常罕见。
- 现代技术栈: 使用 TypeScript 和 Node.js 开发,代码结构清晰,通过
oclif框架构建命令行,交互体验比传统的 Shell 脚本工具更好。- 完善的安装器支持: 它不仅能生成 Live 镜像,还能完美对接 Calamares,使得生成的系统看起来像一个专业的商业发行版。
- 灵活的私密性控制: 默认情况下会排除用户私有数据(生成再分发版),但通过
--clone参数也可以包含用户数据(用于个人备份)。- 活跃的更新与文档: 项目维护频率高,文档详细(甚至有专门的在线手册),并提供预编译的 deb/rpm/pkg.tar.zst 包。
Penguins' Eggs 的劣势
- 命令行依赖: 对于习惯 GUI 操作的普通用户来说,penguins-eggs 需要在终端输入命令,不如 Cubic 或 MX Snapshot 那样点击即所得。
- 运行时开销: 它是基于 Node.js 的,这意味着在极其精简的嵌入式系统或超老旧设备上,为了运行这个工具本身就需要安装几十 MB 的 Node.js 运行环境。
- 学习曲线: “衣橱 (Wardrobe)”系统虽然强大,但配置文件(YAML)和脚本逻辑需要用户花时间去学习如何编写。
- 非绝对的“离线”修改: 相比 Cubic 可以直接打开一个 ISO 镜像进行静默修改,Eggs 更多地是鼓励你先配置好一个真实的运行环境再进行打包。如果你只想简单换个 ISO 里的图标而不安装它,Eggs 显得有些重。
为了直观展现劣势,将其与同类产品(如 Cubic, MX Snapshot, Clonezilla, Remastersys)进行对比:
| 特性 | Penguins' Eggs | Cubic | MX Snapshot | Clonezilla |
|---|---|---|---|---|
| 主要方式 | 运行中系统直接打包 | 离线 chroot 环境修改 ISO | 运行中系统打包 | 磁盘位对位镜像 |
| 易用性 | 命令行操作,有一定门槛 | 图形界面,非常直观 | 图形界面,极易用 | 菜单驱动,较底层 |
| 通用性 | 极高 (多发行版) | 仅限 Ubuntu/Debian | 仅限 MX/antiX | 极高 (独立于OS) |
总结建议:如果你是一名系统管理员、发行版定制者或高级玩家,想要实现“一处配置,到处部署”,或者想为公司定制一套预装好环境的 Linux 系统,Penguins' Eggs 是目前开源社区中最强大、兼容性最好的选择之一。
但如果你只是想给>但如果你只是想给 Ubuntu ISO 镜像换个壁纸,Cubic可能会更简单直观。
1 基础命令及参数
1.1 基础自检与配置
eggs status:- 查看当前系统环境、版本以及
eggs是否已经准备就绪。
- 查看当前系统环境、版本以及
eggs help或eggs [子命令] --help- 查看所有命令列表,或查看某个特定命令的详细参数。
sudo eggs dad -d- Dad (爸爸) 脚本是配置助手。
-d参数表示“使用默认设置”。 - 原理:它会自动安装一些必要的补丁和工具(如 Calamares 安装器),为打包做准备。
- Dad (爸爸) 脚本是配置助手。
eggs mom- Mom (妈妈) 是一个交互式的 TUI(文本界面)帮助手册,你可以通过方向键选择查看各个功能的解释。
1.2 系统清理(维护类)
在打包前执行,可以减小生成的 ISO 体积。
sudo eggs cleanup- 作用:清理系统缓存(如 apt 缓存)、日志文件和临时文件。
- 提示:这只是普通的系统垃圾清理,不会删掉你的个人文档。
1.3 核心打包命令
基本语法: sudo eggs produce [参数]
逻辑是:读取当前系统 -> 压缩 -> 生成 ISO。
常用参数说明:
-
模式选择(决定打包哪些):
--clone:完整克隆。包含你所有的/home文件夹、账号、密码和个人文件。- (默认,不带参数):发行版模式。会剔除你的个人隐私数据,只保留系统环境和安装的软件,生成一个“干净”的系统镜像。
--cryptedclone:加密克隆。个人数据会被 LUKS 加密打包,安全性更高。
-
压缩等级(决定快慢和体积):
--fast:打包速度最快,但 ISO 文件最大(适合测试用)。--standard:默认选项,速度和体积的平衡。--max:打包最慢(吃 CPU),但 ISO 体积最小。
-
命名与路径:
--basename [名字]:给你的 ISO 起个名字,比如--basename my-ubuntu-v1。--prefix [前缀]:在文件名前加个前缀。
-
其他有用选项:
--nointeractive:静默模式,打包过程中不弹窗问你问题。
4. 打包后的处理(管理类)
sudo eggs kill- 作用:删除之前生成的 ISO 镜像和临时工作目录。
- 场景:当你打包失败了,或者想腾出磁盘空间时使用。
- 生成的
ISO默认路径永远在:/home/eggs/
安全提示:
1.produce命令运行期间会占用大量的 CPU 和内存,建议关闭不必要的程序。
2.确保你的磁盘空间充足(至少是你当前系统已用空间的 1.5 倍以上)。