Home Cd rom How to Create a Custom Linux Mint or Ubuntu ISO

How to Create a Custom Linux Mint or Ubuntu ISO


Installing Linux Mint is not a big deal.

These are the things to do after installing Linux Mint that can seem tedious.

And if you have to do the same thing on multiple systems, it gets frustrating.

Imagine having multiple computers in your home, lab, or institution. And all should have similar setups and applications.

Now imagine this. You download Linux (Mint), create a live USB and install it on all systems. And then you have to do the same setup and install the same set of apps on each of them.

What if I told you there was a way to save time doing these repetitive tasks? How about creating a modified ISO and putting that custom Linux Mint on the live USB? This way, it installs the same custom Linux distribution on all systems.

There is a handy graphical tool called Cubic that allows you to pre-configure your installations in the simplest way possible.

Let me explain its features and how you can use it to customize Linux Mint 21 ISO.

Note that Cubic should work with other distributions like Ubuntu, Fedora, etc. I tested it with Mint but you can try following the steps for other distros.

Cubic: the easiest way to create custom ISO images

Cubic (VSpersonalized ubuntil ISO VSreator) is a graphical tool designed to customize Ubuntu-based distributions.

It lends you to the ISO’s chroot environment where you’ll make significant changes, and it also lets you choose the packages separately for minimal and normal installation.

But before getting to the procedure, let’s take a look at some features of Cubic.

Main features of Cubic:

  • Easy to use graphical interface.
  • Allows you to separately select packages for minimal and normal installation.
  • It has three tabs for specific reasons:
    1. Kernel tab: If you have opted to install multiple kernels, you can specify the boot kernel from here.
    2. Pressed Tab: From here you can create, edit, and delete pressed files. By using pressed files, you can skip the questions typically asked during installation, because pressed files will automate the process!
    3. Boot Tab: If you want to change the boot settings, this is where you can change the modified ISO boot from.
  • Offers different types of compression formats to compress modified ISO files.
  • Comes with QEMU (open source machine emulator and virtualization) for testing modified ISOs.

Sounds too promising, right? So let’s continue with the installation process.

Installing Cubic in Ubuntu-Based Distributions

Cubic is not available in Ubuntu’s default repository, so you need to add PPA to install software not available in default repository:

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

Now let’s update the repository and install Cubic:

sudo apt update && sudo apt install cubic

And that’s all!

So now let’s get to how you can use Cubic to customize the ISO.

How to Use Cubic to Create Custom ISO Images

For this guide I will be using Linux Mint 21 ISO. To make this guide more relevant, I will do the following:

  • Removed unnecessary packages, making it a minimal ISO of Linux Mint.
  • Update the remaining packages to the latest version.
  • Add new background images.
  • Install the latest Linux kernel (6.0).

You can make your own modification according to your taste.

1. Add/Create project directory

select project directory in cube

When you open Cubic, it will ask you to choose the project directory. This is nothing but where you want all the files related to creating custom ISO images.

Here I created a new subdirectory in my HOME directory. Make sure you have a separate directory for each Cubic project you create. Once you are done selecting the project directory, click the Next button.

2. Choose the original ISO image

Here you need to choose the original ISO image you want to work with.

choose original iso

As you can see, I went with Linux Mint 21, and it picked up all the other info automatically.

3. Work with chroot environment

Once you select the ISO, it will extract the ISO image and you will enter a chroot environment.

screenshot of 2022 10 21 14 13 26

This will behave like a normal terminal and it’s also where I’m going to do most of the stuff related to customizations.

Deleting packages

It’s up to you how many packages you want to remove or you can also skip the package removal section. To remove a package, you don’t need to use the sudo you usually use because removing packages requires superuser privileges.

So suppose you want to remove Thunderbird; then the following command should do the job:

apt purge thunderbird

But as I told you earlier, I’m going for a minimal desktop, I’ll remove most extra GUI apps, including Libreoffice. And if you want to do the same:

apt purge drawing gnome-calculator hexchat hypnotix libreoffice* onboard redshift redshift-gtk rhythmbox sticky thingy thunderbird warpinator webapp-manager
removal of packages

Yes, it’s as simple as that!

Update existing packages

If you want to have the most recent packages in your next Ubuntu installation, here is the step to follow:

sudo apt update && sudo apt upgrade
update to latest packages

Adding background images

Let’s start by changing the current working directory to /usr/share/backgrounds:

cd /usr/share/backgrounds

Since Cubic allows users to copy files by drag and drop into the current working directory (/usr/share/backgrounds in our case), I’m going to use copy my wallpapers (which I downloaded locally).

copy imaegs by drag and drop

This should be the case if you want to change the background from the file manager, but if you want them listed in the change background dialog, you’ll need to add them each in an XML file located in /usr/share/gnome-background properties.

Added Linux 6.0 kernel

In this section, I will download the .deb package of kernel headers and modules, and then install them using the dpkg command.

Use the given 4 commands one by one and it will download kernel modules and headers:

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.0/amd64/linux-headers-6.0.0-060000_6.0.0-060000.202210022231_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.0/amd64/linux-headers-6.0.0-060000-generic_6.0.0-060000.202210022231_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.0/amd64/linux-image-unsigned-6.0.0-060000-generic_6.0.0-060000.202210022231_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.0/amd64/linux-modules-6.0.0-060000-generic_6.0.0-060000.202210022231_amd64.deb

Once you have completed the downloads, you can use the dpkg command to install them:

dpkg -i *.deb
install linux 6.0 kernel in ubuntu

4. Select the packages to remove from a minimal and normal installation

With Cubic, you can even specify the list of software for minimal and normal installation.

select packages for minimal and normal installation

This is the place where you can be creative because you will have 2 lists of software that you can use for different purposes.

For example, you can use the normal installation option for desktop use and the minimal installation should be used for more minimal setups such as servers.

Since I have already removed packages, there is not much left for me to do in this section.

5. Select boot kernel

This section will bring the list of Linux kernels you have.

choose boot kernel

If you wonder why it shows 3 options, let me tell you how:

  • 5.15.0-41 was pre-installed.
  • 5.15.0-52 was installed when I updated existing packages.
  • 6.0 was manually installed by me.

I’m going here with the Linux 6.0 kernel!

6. Choose the ISO compression type

This is the last step of the configuration where you have to choose the compression algorithm.

choose iso compression algorithm

You don’t need to know each type of compression as it has already given the graph by which you can choose the amount of compression.

And I go with the default one gzip option.

Once you are done choosing the type of compression, click the Generate button and your ISO will be created!

7. Testing the ISO file with the built-in QEMU emulator

Once the Cubic has finished creating the ISO you requested, it lets you test the ISO file. To test the file, click on the Test bottom located in the upper left corner:

click test button to start qemu emulator

And he launched QEMU:

run qemu

And I ran into a problem while trying to update the repositories saying: Please use apt-cdrom to have this CD-ROM recognized by APT.

How to solve “please use apt-cdrom for this CD-ROM to be recognized by APT”

please use apt cdrom for this cd rom to be recognized by apt

To solve this problem, you just need to disable the installation disk (CD-ROM) from the software resources.

Open software resources in Linux Mint and if you are using Ubuntu you will need to use the Software and Updates tool.

disable cd rom

Once you disable the CD-ROM, it should work like any general ISO you download from the official page!

all repositories are working fine as expected

It was quick. Right?

Last words

This was my take on how you can easily create custom ISO images of Ubuntu or other Linux distributions using Cubic with its practical usage.

If it’s something you could use, give it a try. Let me know in the comments if you get stuck, and I’ll do my best to help you out.