如何使用Cubic创建自定义的Ubuntu Live CD镜像?

如何安装Cubic并使用它创建一个定制的Ubuntu Live CD *.iso文件,可以刻录到CD/DVD或复制到可启动的USB设备?
3个回答

Cubic(自定义Ubuntu ISO创建器)是一个图形化向导,用于创建定制的Ubuntu Live ISO映像。
Cubic允许轻松地浏览ISO定制步骤,并提供集成的虚拟命令行环境来定制Linux文件系统。您可以创建新的定制项目或修改现有项目。重要参数会根据智能默认值动态填充,以简化定制过程。

安装Cubic

要安装Cubic,请添加PPA并使用apt进行安装。

sudo apt-add-repository ppa:cubic-wizard/release
sudo apt install cubic

使用立方
从dock或应用程序菜单中启动立方。
开始页面
在开始页面上,选择一个新的空目录来存放所有项目文件。您可以有多个自定义项目,但每个项目必须选择不同的目录。

The Cubic Start Page

项目页面 在项目页面上,选择要自定义的原始ISO映像。项目页面上的信息将自动填写给您。您可以接受推荐的默认值。如果您选择更改某些值,则相关参数将随着您的输入而自动更新。

The Cubic Project Page

提取页面
下一页将显示原始ISO进行分析、重要文件被复制以及压缩的Linux文件系统被提取的进度。

The Cubic Extract Page

终端页面

一旦Linux文件系统被提取,终端页面会自动出现。这是一个容器环境,您可以使用命令行进行自定义设置。由于您已经以root用户登录,所以在输入命令时不需要使用sudo。(您可以安全地忽略"无法连接到zsys"的错误消息,或者如果您不需要zsys,可以执行apt remove zsys来消除这些消息)。

使用命令行工具进行Ubuntu的自定义设置。

The Cubic Terminal Page

注意,在一些基于Ubuntu的发行版上,DNS查找可能无法工作,您可能无法使用apt命令,因为会出现“Name or service not known”错误。这是因为链接/etc/resolv.conf指向/run/systemd/resolve/stub-resolv.conf,但stub-resolv.conf文件不存在。
要解决此问题,请在Cubic终端中执行以下命令...
ln -sr /run/systemd/resolve/resolv.conf /run/systemd/resolve/stub-resolv.conf

或者尝试这个方法,由Ark74提出。

mkdir /run/systemd/resolve/
echo "nameserver 127.0.1.1
search network" | tee /run/systemd/resolve/resolv.conf
ln -sr /run/systemd/resolve/resolv.conf /run/systemd/resolve/stub-resolv.conf

要验证DNS解析是否正常工作,请执行以下操作...
cat /etc/resolv.conf
ping google.com

以下是使用命令行自定义Ubuntu的几个示例...
您可以使用nano文本编辑器来编辑文件。例如,要编辑源存储库列表,请键入
nano /etc/apt/sources.list

要退出nano,请键入Ctrl-X,然后会提示您保存文件。如果不想保存文件,请键入N。要保存文件,请键入Y,并按Enter接受默认文件名。

The Cubic Terminal Page with Nano

编辑源列表后,请记得使用以下命令更新可用软件包列表:

apt update

你可以使用apt来更新源并安装应用程序。例如,你可以安装其他的Linux内核。
apt install linux-headers-5.8.0-44-generic linux-image-5.8.0-44-generic

您可以点击返回按钮,更改在项目页面上输入的一些项目参数。如果您退出应用程序,您始终可以打开您的项目,并在终端页面上继续进行定制,从您离开的地方开始。

The Cubic Terminal Page with Example Commands

复制文件页面

您可以通过将文件或目录拖放到终端窗口中,使用标题栏中的复制按钮,或使用右键菜单将它们复制到当前目录。

右键菜单还允许您在终端中复制和粘贴文本,或者您可以使用Ctrl-Shift-CCtrl-Shift-V快捷键。

以下是一个示例,将额外的壁纸复制到您的自定义环境中。

cd /usr/share/backgrounds

然后只需将新的壁纸拖到Cubic窗口上,然后点击出现的复制页面上的复制按钮。
请注意,Cubic GUI目前不支持通过网络复制文件,但您可以在终端环境中使用rcp或scp命令。

The Cubic Terminal Copy Files Page

提示:请确保将新的壁纸列在一个XML文件中,路径为/usr/share/gnome-background-properties,这样当用户在桌面上右键单击时,它们将在“更改背景”对话框中列出。

The Cubic Terminal Listing Copied files

当您完成更改后,请点击“下一步”按钮。请记住,您可以随时返回终端环境进行此项目的其他自定义。
准备页面
在准备页面上,Cubic将自动识别可用于启动自定义ISO的内核,并根据已安装的软件包创建清单文件。您无需在此页面上做任何操作。

The Cubic Prepare Page

软件包页面 软件包页面会自动显示您定制的Linux系统中安装的所有软件包列表。带有勾选标记的软件包将被“Ubiquity Live CD安装程序”自动移除。如果您不希望Ubiquity在安装定制的Linux系统后移除某个软件包,只需取消勾选该软件包即可。
如果您的安装程序同时支持“典型”和“最小化”安装,您将看到两列复选框。当您选择将某个软件包移除以进行“典型”安装时,该软件包也将自动被移除以进行“最小化”安装。
如果您的安装程序不支持“最小化”安装,您将只看到一个列带有复选框的“典型”安装页面。
在选择要删除的软件包时要小心,因为可能还会删除其他依赖的软件包,而这些软件包在列表中不会被标示出来。以下是一个例子,其中选择了不删除(即未选中)gparted。然而,gparted-common 仍然被标记为要删除。当安装程序遇到这种情况时,它将删除 gparted-common,并且由于 gparted 依赖于 gparted-commongparted 将自动被删除。
因此,除非你知道自己在做什么,否则最好接受此页面上推荐的默认设置。

The Cubic Packages Page

选项页面

在下一页中,您将在标题栏中看到三个选项卡:

  1. 内核选项卡
  2. 预置选项卡
  3. 引导选项卡

选项页面 - 内核选项卡

内核选项卡列出了所有可用于启动新的Live ISO的内核,包括您已安装到自定义Linux系统的内核。您可以选择使用其中一个作为新的Live ISO的引导内核。在此选项卡上接受推荐的默认设置是一个好主意。

(注意:在此页面上,您选择用于自定义Linux系统内部的内核,也不选择将由新的Live ISO安装到计算机上的默认内核;相反,这是用于引导新的Live ISO的内核)。

ISO引导文件(在引导选项卡上列出)将自动更新为您选择的内核文件(vmlinuz和initrd)。即使原始ISO文件扩展名错误,Cubic也会自动更正文件扩展名(initrd.lz、initrd.gz等)。

The Cubic Options Page Kernel Tab

选项页面 - Preseed选项卡
Preseed选项卡允许您选择性地创建、编辑或删除Preseed文件。

The Cubic Options Page Preseed Tab

选项页面 - 引导选项卡

引导选项卡允许您选择性地更新在启动定制的Live ISO时使用的引导参数。这些文件会自动更新以反映正确的内核文件(vmlinuz和initrd)。在此选项卡上接受推荐的默认设置是一个好主意。

(注意:在此页面上,您不会更新用于启动定制的Linux系统的Grub引导加载程序文件;相反,这是用于引导新的Live ISO的Grub引导加载程序)。

The Cubic Options Page Boot Tab

压缩页面

压缩页面允许您选择用于压缩自定义Linux文件系统的算法(lz4、lzo、gzip、zstd、lzma或xz)。

图表左上方列出的算法速度更快,使用的CPU资源较少,但生成的文件较大。图表右下方列出的算法速度较慢,使用的CPU资源较多,但生成的文件较小。

对于大多数用户来说,使用默认算法gzip是可以的。

The Cubic Compression Page

生成页面

点击“下一步”按钮,Cubic将自动将您的定制内容打包到一个新的*.iso磁盘映像中。每个步骤的进度和结果都会显示出来。请注意,“压缩定制的Linux文件系统”步骤可能需要很长时间,这取决于所选的算法和您的系统硬件。(您可能希望在此步骤期间打开系统监视器以跟踪CPU利用率)。

在此过程中的任何时候,您可以点击“返回”按钮立即返回到终端页面,并进行可能忽略的其他更改或定制。生成的ISO没有实际大小限制。

生成新的定制磁盘映像后,Cubic还将生成一个MD5校验和文件,可用于验证您的定制*.iso文件。

The Cubic Generate Page

完成页面 点击“完成”按钮,将显示有关自定义磁盘映像的信息。
如果您想删除所有工作项目文件(以节省磁盘空间),请勾选“删除所有项目文件...”复选框。否则,您将能够在将来继续自定义此项目。

The Cubic Finish Page

点击关闭按钮退出Cubic。
最后,使用您喜欢的光盘刻录程序,例如Brasero,将*.iso镜像刻录到CD或DVD上,或者使用USB镜像写入工具,例如Startup Disk Creatormkusb,创建可启动的USB。
使用MD5校验和
如果您正在分发自定义的Linux系统,则可以使用相应的MD5校验和文件来验证其是否未被篡改。例如,请确保两个文件位于同一目录中,并键入以下内容...
md5sum --check ubuntu-20.04.0-2021.03.04-desktop-amd64.md5

ubuntu-20.04.0-2021.03.04-desktop-amd64.iso: OK

进行更改

现有项目的项目页面

启动Cubic,并在开始页面上选择一个现有的项目目录。点击下一步按钮,您将看到您的Cubic项目信息。只需点击标题栏中的自定义按钮,即可直接转到终端页面,继续定制您的项目以进行其他更改。

The Cubic Project Page Showing an Existing Project

删除项目页面 您还可以通过点击标题栏中的删除按钮来删除现有项目。所有项目工作文件将被删除,您将无法自定义或对该项目进行其他更改。如果您不希望生成的 *.iso 映像和 *.md5 文件被删除,请取消选择页面底部的“删除...”复选框。

The Cubic Delete Project Page


“_Outside the chroot environment_” 是什么意思?是在 cubic 之外执行命令吗? - Gabriel Sandoval
这意味着在您的本地计算机上打开一个终端窗口,并键入上述命令。(从技术上讲,您也可以在chroot环境中键入此命令,而无需使用sudo,它将产生相同的效果)。为避免混淆,我建议在Cubic的chroot终端窗口中执行此命令。另外,请注意,在从16.10(或更早版本)系统运行Cubic时自定义Ubuntu 17.10 ISO才会出现resolv.conf问题;当在17.10中运行Cubic自定义17.10时,不会出现此问题。 - Enterprise
由于Wayland在以root权限运行图形应用程序时存在安全限制,Cubic仅适用于Xorg会话。 - Enterprise
我需要多少空闲空间才能在Cubic中编辑Lubuntu 16.04.2 LTS i386 ISO呢?可能需要超过4.1 GiB,对吗? - na-no.
@Bajiru,你至少需要5090 MB的空间。这不包括你可能添加的其他软件包或文件。我的计算方法如下:921MB(lubuntu-17.10-desktop-amd64.iso)+ 3387MB(未压缩的工作文件)+ 782MB(新的lubuntu iso)= 5090 MB。Cubic使用最大压缩,这就是为什么新的iso比计算中的原始iso要小的原因。Cubic不支持Lubuntu的32位版本;请只使用64位版本。此外,如果你在低配置的机器上进行操作,请准备好解压和压缩步骤需要一段时间,并且会占用你的CPU资源。 - Enterprise
@PJSingh 好的,谢谢,我会尝试释放一些空间。但是我认为它会在我的32位安装上工作,因为它已经安装了软件 - 只是不让我继续。请查看我的帖子:https://askubuntu.com/q/985971/646645 - na-no.
@PJSingh 嗨,谢谢你详细的回答。我想在Lubuntu中添加自己的软件,并用它创建ISO文件。这个软件是使用Electron、Node和Python编写的。我会在chroot环境中安装Node、Python和其他所有依赖项。我想知道我应该把我的代码放在哪里,以便它被包含在ISO文件中。另外,假设我的代码和依赖项大约有1-1.5GB,而Lubuntu的ISO文件是1.7GB,最终的ISO文件大小会是多少?它会小于4.5GB吗? - Sunny
1chroot内的文件结构将被复制到您的新系统中(大多数情况下)。放置自定义应用程序的好地方是/opt,第三方应用程序通常安装在此处。您还可以将应用程序放置在/usr/share/中,其他Linux应用程序也会放置在此处。请记得在/usr/share/applications下创建一个启动器(使用*.desktop扩展名)。如果有一些所有新用户都应该拥有的文件,请将这些文件放在/etc/skel下(所有新用户的“骨架”家庭文件夹结构)。要为所有新用户设置环境变量,请编辑/etc/skel/中的.bashrc或.profile文件。 - Enterprise
关于ISO大小,Cubic以前有4GB的限制,但是在最新版本中不再有这个限制。只要你的CPU足够强大,可以在合理的时间内压缩你的自定义文件,并且你要安装的计算机的BIOS/UEFI可以引导大于4GB的ISO,那么你就不会遇到任何问题。 - Enterprise
感谢您的迅速回复。我将把ISO文件刻录到DVD上,而DVD的容量大约为4.5GB,所以我想确认一下生成的ISO文件大小是否小于4.5GB。 - Sunny
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 081525E2B4F1283B 这个命令具体是做什么的?它似乎与你有关。 - stackprotector
如果你在代理后面,请使用sudo -E apt-add-repository ppa:cubic-wizard/release命令,并加上选项-E - stackprotector
@PJSingh 这是我见过的关于Cubic最详细的教程。我有一个问题 - 如何设置在启动活动镜像时运行命令?我有几个shell脚本,我希望在活动用户登录时运行它们。所以,我将所有脚本复制到/etc/skel,并设置了重启的定时任务。但由于某种原因,脚本没有被执行。另外,有没有办法从活动镜像的启动中删除初始的“尝试Ubuntu/安装Ubuntu”屏幕呢? - n0pe
@n00dles,看起来你有几个不同的问题。在AskUbuntu上分别提出这些问题是有道理的。在标题中,你应该提到你想在Cubic中完成这个操作,因为我见过其他ISO定制的问题被标记为旧答案的重复,而这些答案并没有具体解释如何使用这个工具来解决问题。 - Enterprise
@PJSingh 我刚刚创建了一个问题。请给予建议 --> https://askubuntu.com/q/1344336/1287755 - n0pe
你用什么程序来进行那些带有阴影的截图? - 0xB00B

安装:
  1. sudo apt-add-repository ppa:cubic-wizard/release
  2. sudo apt-get update
  3. sudo apt-get install cubic
创建ISO镜像:

enter image description here

enter image description here

enter image description here

enter image description here


我在哪里可以找到 Preseed 文件的语法或样例 Preseed?例如,我正在寻找一种在安装的目标系统上填充用户帐户的方法。 - kriss

只是在顶部的伟大答案中添加。

为了使resolv.conf在我(撰写时间)在17.10和18.04上运行,我正在使用以下内容:

mkdir /run/systemd/resolve/
echo "nameserver 127.0.1.1
search network" | tee /run/systemd/resolve/resolv.conf
ln -sr /run/systemd/resolve/resolv.conf /run/systemd/resolve/stub-resolv.conf

希望能帮到其他人。


正在修复最新的Cubic版本。可以忽略这个回答。 - Ark74