How To Customize Ubuntu Or Linux Mint Live ISO With Cubic

Cubic, or Custom Ubuntu ISO Creator, is a GUI that can be used to create a custom bootable Ubuntu Live CD (ISO). While the application is targeted at Ubuntu, it also works on Linux Mint / is able to create a custom Linux Mint ISO. This article includes step by step instructions for how to create your custom Ubuntu or Linux Mint ISO using Cubic.

The application comes with an integrated command line chroot environment, and it unpacks and packs the ISO for you, while also populating some "intelligent defaults to simplify the customization process", is mentioned on its web page.

Cubic Custom Ubuntu or Linux Mint ISO creator

While Cubic uses a graphical user interface, all the actual Ubuntu or Linux Mint ISO customizations must be performed from the command line (while it's possible to run GUI applications from a Chroot, I couldn't get this to work with Cubic's Chroot). So you'll need to be familiar with at least installing software from the command line to make your own custom Ubuntu or Linux Mint ISO. This obviously depends on what tweaks and modifications you want to include in your customized ISO.

As far as UEFI support goes, Cubic uses files from your host machine to create the EFI ISO. Therefore, you need to create the custom Ubuntu or Linux Mint ISO while using a host system that uses EFI to be able to create an EFI-enabled custom ISO. See Launchpad for details.

I tried Cubic on my Ubuntu 18.04 system to create both a custom Ubuntu 18.04.1 and a Linux Mint 19 ISO and the software worked without any issues.

Installing and using Cubic to create a custom Linux Mint or Ubuntu ISO


Install Cubic

Add the Cubic PPA and install the software on your Ubuntu or Linux Mint system using these commands:

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

To use Cubic to create a custom Ubuntu or Linux Mint ISO, follow these steps.

1. Launch Cubic from your desktop menu and select a directory for your new project.

Simply create a new empty folder and select it from Cubic. This is the directory where Cubic will extract the ISO and also where it will save the final, customized Ubuntu / Linux Mint Live ISO file.

Cubic Custom Ubuntu or Linux Mint ISO creator

Once you're done, click Next.

2. Select the ISO you want to customize.

This can be Ubuntu, Linux Mint (including the latest versions: Ubuntu 18.04.1 or Linux Mint 19), any Ubuntu or Mint flavor, and probably other Ubuntu-based Linux distributions.

Cubic Custom Ubuntu or Linux Mint ISO creator

I only tried Cubic with Ubuntu or Linux Mint, so I'm not entirely sure it can create custom ISOs for other Ubuntu-based Linux distributions, but at least in theory I don't see why it wouldn't work.

If you're selecting a folder where you've already unpacked an ISO using Cubic, the application will ask you if you want to create a disk image from the existing project, continue customizing the existing project, or delete it:

Cubic Custom Ubuntu or Linux Mint ISO creator

After loading the ISO, Cubic will let you change some custom ISO settings, like entering a release name, disk name, volume ID, output directory and filename, and so on. Change these as you wish.

Once you're done, click Next.

Cubic will now extract the compressed Linux file system from the ISO and copy some files from the original disk image.

3. On the next screen, Cubic displays an embedded terminal window with a chroot environment. This is where you can customize the ISO.

Custom Ubuntu ISO creator chroot

From this command line chroot, customize the ISO to suit your needs. Install extra packages (applications, libraries, kernel images, etc.), remove any installed packages, add or remove PPAs or other third-party repositories, download external packages and install them on the custom Linux Mint or Ubuntu ISO image, change configuration files and anything else you'd like.

What you should know:

  • You can copy files from the host computer to the custom ISO by dragging the files and dropping them on top of the Cubic (chroot) window.
  • For editing files you need to use a command line text editor. You can use nano, which is installed by default, or install some other command line text editor. To save a file using Nano text editor, use Ctrl + O, then press the Enter key. You can exit Nano by pressing Ctrl + X.
  • There's no need to use sudo, you're already logged in as root in the chroot environment

Ubuntu only: By default, Ubuntu enables only the main and restricted repositories on the Live CD ISO. As a result, you won't be able to install packages found in the universe and multiverse repository for your custom Ubuntu ISO, or at least that was the case for me, using Ubuntu 18.04 to create a custom Ubuntu 18.04.1 ISO. So to be able to install some packages, you'll also need to enable the universe and multiverse repositories. Here is how to do that.

In the Cubic chroot, type:

nano /etc/apt/sources.list

After each line (there should only be 3 lines), add a space and then add this: universe multiverse, like in this screenshot:

Custom Ubuntu ISO creator chroot

To save the changes made to the sources.list file, press Ctrl + O and Enter, and then Ctrl + X to exit Nano command line text editor.

Now run apt update and you should be able to install software that's available in the Ubuntu universe and multiverse repositories:

Custom Ubuntu ISO creator chroot

This tweak is not needed for Linux Mint, because it already has all the default repositories enabled.

Once you're done making your changes, click the Next button.

4. Choose which Linux kernel to use and packages from a typical install to remove.

Custom Ubuntu ISO Creator Cubic

On the next screen you can choose which Linux kernel to use (only one in my case - screenshot above), in case you've installed some extra kernel packages on the customized ISO.

You can also select packages to remove after a typical install or minimal install (the latter is only available for Ubuntu; there's no minimal ISO for Linux Mint, etc.):

Custom Ubuntu ISO Creator Cubic

For most cases it's recommended leaving these options to their default values.

Click Next and the ISO generation process should begin. Click Finish after it's done

5. And... it's done!

In the final step Cubic lists the path where it saved the generated custom ISO file (by default it's saved in the folder you've selected in step 1), the release and disk name, and so on.

Custom Ubuntu ISO Creator Cubic

You'll also find an option to delete all project files except for the generated ISO file and its MD5 checksum file.

The custom Ubuntu or Linux Mint Live ISO should now be ready. You can burn a copy of the ISO image to a CD or DVD, or use a bootable USB creation tool (like Ubuntu's Startup Disk Creator or bootiso) to make a bootable USB from your new custom ISO.

In case you get an error similar to the one below when trying to boot an USB for which you've used a custom ISO created with Cubic, on an EFI system (fix credits):

isohybrid: Warning: more than 1024 cylinders: 2215 isohybrid: Not all BIOSes will be able to boot this device

You'll need to install syslinux-utils (we'll need the isohybrid command from this package):

sudo apt install syslinux-utils

And then use this command:

sudo isohybrid /path/to/custom_iso.iso

Replacing /path/to/custom_iso.iso with the path to the ISO generated by Cubic. You can now create a bootable USB from this ISO and it should work on EFI systems. You still need to use a host system that uses EFI to be able to create a custom Ubuntu or Linux Mint ISO with EFI support!

You might also want to read:


4 comments:

  1. Do you think I can modify grub.conf with this? I need a very specific kernel parameter to be passed at boot to get my monitor to work. Unfortunately, whenever I (rarely) boot the USB installer, I have to dig around for the scrap of paper with the settings. :)

    ReplyDelete
    Replies
    1. Modifying the /etc/default/grub file using Cubic applies the changes only to the installed system (the changes will be there after you use the bootable USB to install the system). I don't know about modifying live session Grub configuration, in case that's what you're asking, I guess maybe some other file needs to be modified but I'm not sure.

      Delete
    2. If you want to add parameters like "nomodeset" to the ISO live session, I found a way but you won't get a Grub menu and instead, it will boot directly to whatever is set as default (1st line in the menu entry below). To do this: after an ISO is unpacked by Cubic, go to the Cubic working folder and inside the custom-live-iso/isolinux folder, open isolinux.cfg as root with a text editor. Also open txt.cfg with a text editor and copy a menu entry, like this one for example:

      default live
      label live
      menu label ^Try Ubuntu without installing
      kernel /casper/vmlinuz
      append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz nomodeset quiet splash ---

      And paste this in isolinux.cfg, completely replacing the isolinux.cfg file contents (remove or comment out what's already in isolinux.cfg). I already added "nomodeset" to it but you can add other parameters as well. Next, use Cubic to pack the ISO (open Cubic, select the same working path and on the next screen select "Create disk image from existing project" at the top).

      After it finishes building the new ISO, it should contain the customized boot parameters for the live session.

      Delete
  2. Nice Software, beautiful and easy to use.
    Great Job, CUBIC

    ReplyDelete