1.背景介绍:
1.1 现实痛点
在日常运维和开发工作中,我们经常需要再多台服务器上部署相同的环境,传统做法通常包括:
- 手动安装操作系统
- 逐个安装所需软件和依赖库
- 配置系统参数和服务
- 处理复杂的依赖关系和版本冲突
这种方式面临几个突出问题:
| 问题类型 | 具体表现 |
|---|---|
| 重复性工作 | 每台服务器都需要重复相同的安装配置流程 |
| 依赖管理 | 需要手动解决软件包的间接依赖关系和版本冲突 |
| 环境不一致 | 手动操作容易出错,导致各服务器环境差异 |
| 离线部署困难 | 在无网络环境中,依赖包下载和安装变得异常复杂 |
1.2 解决方案:定制ISO
通过定制化ISO镜像,我们可以预先在镜像中安装好所有基础软件和环境配置,然后使用这个定制镜像批量部署服务器。这样:
- 一次配置,多次使用:只需定制一次 ISO,即可在多台服务器上重复使用
- 环境一致性:所有使用同一镜像安装的系统环境完全相同
- 离线友好:无需网络即可完成完整环境部署
1.3 为什么选择Cubic
在Ubuntu ISO定制领域,存在多种工具可供选择:
| 工具 | 特点 | 使用人群 |
|---|---|---|
| Cubic | 图形化界面,向导式操作 | 新手和中级用户 |
| debootstrap + chroot | 命令行操作,灵活性高 | 高级用户 |
| Systemback | Live 系统制作 | 需要复制现有系统 |
Cubic(Custom Ubuntu ISO Creator) 是目前最受欢迎的 Ubuntu ISO 定制工具,它将复杂的"手动解压 → chroot → 重打包"流程简化为直观的图形化向导。
1.4 版本兼容性说明
⚠️ **重要提示:**Cubic 最新版本(2025.06.93)与 Ubuntu 22.04 存在兼容性问题,会导致 ISO 生成卡住。因此,本教程使用 Cubic 2024.02.86 版本 + Ubuntu 22.04 LTS 的组合,经验证稳定可靠。
2.什么是Cubic:
2.1 定义
Cubic(Custom Ubuntu ISO Creator)是 Ubuntu 官方 PPA 维护的图形化 Live ISO 定制工具,专为 Ubuntu 和 Debian 系发行版设计。
2.2 核心功能
Cubic支持以下定制功能:
| 功能类别 | 具体能力 |
|---|---|
| 软件管理 | 预装/删除软件包、添加自定义软件源 |
| **系统配置 | **修改 systemd 服务、网络设置、防火墙规则 |
| 界面定制 | 替换壁纸、主题、桌面环境配置 |
| 内核管理 | 更换或升级 Linux 内核 |
| 体积优化 | 自动清理无用包,压缩体积最大可减少 50% |
2.3 工作原理
Cubic的核心原理是:
- 解压: 将原始 ISO 文件解压到工作目录
- 挂载: 使用 chroot 技术进入解压后的系统环境
- 定制: 在 chroot 环境中进行任意修改(安装软件、修改配置等)
- 打包: 将修改后的系统重新打包为 squashfs 文件系统
- 生成: 生成包含新引导记录的可启动 ISO 文件
2.4 与传统方式的对比
| 对比项 | 传统手动方式 | Cubic方式 |
|---|---|---|
| 操作复杂度 | 需要记忆大量命令 | 图形化向导,简单直观 |
| 技术门槛 | 需要深入了解 ISO 结构和 chroot | 基本 Linux 知识即可 |
| 出错概率 | 高(容易遗漏步骤) | 低(自动化处理) |
| 可重复性 | 差 | 好(项目文件可保存) |
3.环境准备:
3.1 系统要求
| 项目 | 推荐配置 |
|---|---|
| 操作系统 | Ubuntu 22.04 LTS 桌面版 |
| **内存 | **8 GB 或以上 |
| 磁盘空间 | 30 GB 或以上 |
| 网络 | 稳定的网络连接 |
3.2 软件要求
- Ubuntu 22.04 LTS 桌面版已安装并正常运行
- 拥有 sudo 权限的用户账户
- 原始 Ubuntu ISO 文件(本教程以 Ubuntu 20.04 为例)
3. 3原始ISO准备
从 Ubuntu 官网下载所需版本的 ISO 镜像:
- 服务器版:ubuntu-20.04.3-live-server-amd64.iso
- 桌面版:ubuntu-22.04.5-desktop-amd64.iso
将 ISO 文件保存到便于访问的位置(如 ~/Downloads/)。
4.Cubic2024版本安装
4.1 离线包安装
步骤 1:下载 Cubic 2024 离线包
下载文件:cubic_2024.02-86-release202402210132ubuntu23.10.1_all.deb
下载渠道:
- 第三方镜像站: Launchpad PPA 页面
步骤 2:安装离线包
bash
# 进入下载目录
cd ~/Downloads
# 安装 Cubic
sudo dpkg -i cubic_2024.02-86-release~202402210132~ubuntu23.10.1_all.deb
# 修复可能存在的依赖问题
sudo apt --fix-broken install -y
步骤 3:验证安装
bash
# 查看版本(注意:不要使用 sudo)
cubic --version
Cubic version... 2024.02.86
Copyright....... © 2015, 2020 PJ Singh
Website......... https://github.com/PJ-Singh-001/Cubic
4.2 启动Cubic
bash
# 直接运行(不要使用 sudo)
cubic
或者在应用程序菜单中搜索 "Cubic" 并点击图标启动。
注意: Cubic 是一个图形界面应用程序,不能使用 sudo 直接运行,否则会报错。Cubic 会在需要时自动请求管理员权限
5.使用Cubic定制ISO
5.1 整体流程概览
否
是
启动 Cubic
选择项目目录
选择原始 ISO 文件
等待 ISO 解压
进入 chroot 环境
进行定制操作
定制完成?
退出 chroot
选择压缩算法
生成新 ISO
测试验证
5.2 创建新项目
启动 Cubic 后,首先需要创建或选择一个项目目录:
- 点击文件夹图标浏览选择目录
- 创建一个新目录,例如 /home/用户名/cubic-project/
- 点击 Next 进入下一步
💡 项目目录将存放解压的 ISO 内容和最终生成的定制 ISO,建议至少有 15GB 可用空间。
5.3 选择原始ISO文件
- 点击 Select 按钮
- 浏览并选择之前准备好的 Ubuntu 20.04 ISO 文件
- Cubic 会自动识别系统版本和架构信息
- 可选:修改 Volume ID、Name、Version 等元信息
- 点击 Next 开始解压
解压过程大约需要 2-5 分钟,请耐心等待。
5.4 进入chroot环境
ISO 解压完成后,Cubic 会自动进入 chroot 虚拟环境------一个以 root 权限运行的终端窗口。这是定制的核心阶段,所有系统修改都在这里完成
6.chroot环境定制详解
6.1 环境准备与网络配置
进入 chroot 终端后,首先进行基础环境配置。
测试网络连接
bash
# 测试网络
ping baidu.com
修复 DNS 解析(如需要)
如果 ping 失败或后续 apt update 报 DNS 错误:
bash
# 修复 DNS 解析
ln -sr /run/systemd/resolve/resolv.conf /run/systemd/resolve/stub-resolv.conf
# 再次测试
ping baidu.com
6.2 核心操作:将文件放入ISO
**目标:**将 软件包.tar.gz 集成到 ISO 中,安装系统后文件自动存在于 /opt 目录。
直接复制到 squashfs-root
如果知道 chroot 对应的主机路径,可以直接在主机上操作:
bash
# 在主机上执行
sudo cp /path/to/aiumsInstall-mysql-v2.13.1_SP03-amd64.tar.gz ~/cubic-project/squashfs-root/opt/
6.3 安装其他软件(可选)
在 chroot 环境中可以安装任何需要的软件
bash
# 更新软件包列表
apt update
# 安装 SSH 服务(如需远程访问)
apt install -y openssh-server
# 安装常用开发工具
apt install -y vim curl wget git htop
# 安装完成后清理缓存(重要:减小 ISO 体积)
apt clean
rm -rf /var/lib/apt/lists/*
rm -rf /tmp/*
6.4 定制注意事项
| 操作 | 说明 |
|---|---|
| 清理缓存 | 务必执行 apt clean,否则 ISO 体积会显著增大 |
| 避免交互 | 使用 -y 参数自动确认软件包安装 |
| 网络配置 | 如需代理,提前设置 http_proxy 环境变量 |
| 版本兼容 | 确保安装的软件包与 Ubuntu 22.04 兼容 |
6.5退出chroot环境
完成所有定制后:
bash
# 在 chroot 终端中输入 exit
exit
退出后,不要多次输入 exit,直接点击 Cubic 窗口的 Next 按钮继续。
7.生成ISO镜像
7.1 包选择界面
退出 chroot 后,Cubic 显示包列表界面:
- 可以勾选/取消需要在 Live ISO 中包含的包
- 可以选择标准或最小化安装模式
- 点击 Next
7.2 内核选择
选择用于启动 Live ISO 的内核,默认选择最新内核即可,点击 Next。
7.3 Preseed 配置(可选)
如需实现自动化安装,可在 Preseed 标签页配置自动应答文件
bash
# 示例:自动安装配置片段
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password ubuntu123
d-i passwd/user-password-again password ubuntu123
d-i time/zone string Asia/Shanghai
7.4 压缩算法选择
| 算法 | ISO大小 | 打包时间 | 解压时间 | 推荐场景 |
|---|---|---|---|---|
| XZ | 最小 | 最长 | 中等 | 网络分发(节省带宽) |
| GZIP | 中等 | 中等 | 中等 | 通用场景 |
| LZ4 | 最大 | 最短 | 最短 | 快速测试迭代 |
💡 建议:首次定制建议选择 GZIP,兼容性最好。如对体积有要求,可选用 XZ。
7.5 开始生成
- 点击 Generate 按钮
- 等待打包完成(耗时 10-30 分钟,取决于硬件配置和定制内容)
- 生成完成后,ISO 路径显示在窗口中(通常为 ~/cubic-project/custom-ubuntu.iso)
8.测试与验证
使用U盘进行刻录后,在服务器进行安装测试。
参考资料:
Ubuntu 官方文档:https://help.ubuntu.com/community/LiveCDCustomization
Preseed 参考:https://help.ubuntu.com/lts/installation-guide/amd64/apbs04.html