Cubic 5分钟定制专属Ubuntu

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 buildubuntu-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解决。

相关推荐
orion571 天前
Missing Semester Class1:course overview and introduction of shell
linux
用户120487221612 天前
Linux驱动编译与加载
linux·嵌入式
用户805533698032 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698032 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia3 天前
linux curl命令详解_curl详解
linux
扛枪的书生4 天前
Linux 网络管理器用法速查
linux
顺风尿一寸4 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode4 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫4 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux