1、背景
项目需要对客户现网离线服务器进行环境搭建和部署。传统做法会将所需要安装的依赖库或软件通过U盘拷贝到目标服务器上安装。但是这样面临几个问题:
- 如果多台服务器,那么需要大量的重复性工作
- 需要解决依赖库间接依赖关系,以及安装前后顺序,版本冲突等问题
今天介绍使用Cubic对原始ISO进行自定义,预先安装好我们的基础环境,再进行下发。
2、什么是Cubic?
**Cubic(Custom Ubuntu ISO Creator)**是 Ubuntu 官方 PPA 维护的图形化 Live ISO 定制工具。它把传统的"手动解压 → chroot → 重打包" 浓缩成向导式点击,支持:
- 预装/删除软件包
- 修改 systemd 服务、网络、防火墙默认配置
- 替换壁纸、主题、内核
- 自动清理无用包,压缩体积最大 50%
Cubic Github地址:github.com/PJ-Singh-00...
3、环境
Ubuntu 24 LTS桌面系统,Cubic 2024.02.86。原始Ubuntu镜像:ubuntu-22.04.5-live-server-amd64.iso
。
首选cubic,其他工具如
live build
,ubuntu-builder-defaults
等,都是命令行操作,成本相对较高。cubic支持图形化操作,就是要注意版本问题。这里使用的是cubic 2024版本和ubuntu 22 LTS版本。
4、开始制作
4.1、安装ubuntu-desktop
需要提前安装好ubuntu带桌面操作系统。
4.2、安装cubic
网络上很多教程,包括官网提供的安装步骤是:
shell
sudo apt-add-repository universe
sudo apt-add-repository ppa:cubic-wizard/release
sudo apt update
sudo apt install --no-install-recommends cubic
但是这里不建议直接安装,默认会安装最新版本2025.06.93。目前这个版本制作ISO live server版本会有问题。
这里使用下载离线安装包安装,cubic_2024.02-86-release~202402210132~ubuntu23.10.1_all.deb
。将安装包上传到服务端,执行命令安装:
shell
sudo dpkg -i *.deb
安装成功后,可以查看版本cubic --version
。
桌面上搜索就有cubic相关执行程序,打开它:

4.3、选择输出目录
选择输出目录。可以自定义,用于导出自定义ISO目录。
4.4、选择原始镜像
这里的Original Disk为源镜像,就是需要被定义的ISO镜像目录。Custom Disk为自定义后输出的目录。

4.5、进入chroot模式
该界面就是cubic提供的可自定义原始ISO的内容。比如可以在里面安装JDK、PostgreSQL。

4.5.1、测试安装JDK21
shell
add-apt-repository ppa:openjdk-r/ppa -y
apt update
apt install -y openjdk-21-jdk
安装成功,查看JDK版本。

4.6、导出ISO
关键的chroot执行完后,就可以直接一直下一步导出了。

接下来就可以使用自定义的ISO进行安装了。
5、一些常见问题汇总
自定义镜像一直卡在acquiring and extracting image from cp:///tmp/tmpvoshqegb/mount -

这是由于我使用了Cubic 2025.06.93版本制作Ubuntu24.04LTS。最后降级版本Cubic2024和Ubunntu22LTS解决。